Bootstrap

Kafka参数调优(一)-生产者Producer

一、Producer参数说明

1、request.required.acks

Kafka producer的ack有3中机制,初始化producer时的producerconfig可以通过配置request.required.acks不同的值来实现。

  • 0:这意味着生产者producer不等待来自broker同步完成的确认继续发送下一条(批)消息。此选项提供最低的延迟但最弱的耐久性保证(当服务器发生故障时某些数据会丢失,如leader已死,但producer并不知情,发出去的信息broker就收不到)。

  • 1:这意味着producer在leader已成功收到的数据并得到确认后发送下一条message。此选项提供了更好的耐久性为客户等待服务器确认请求成功(被写入死亡leader但尚未复制将失去了唯一的消息)。

  • -1:这意味着producer在follower副本确认接收到数据后才算一次发送完成。 此选项提供最好的耐久性,我们保证没有信息将丢失,只要至少一个同步副本保持存活。

三种机制,性能依次递减 (producer吞吐量降低),数据健壮性则依次递增。

2、producer.type

producer还分为同步和异步模式,由属性producer.type指定,默认是sync,即同步发送模式。

三、压测测试情况:

1、最开始的压测情况(线程池的等待队列长度为:10000,reqRequiredAcks为1,将kafka的producer.type为同步):TPS 14000左右 RT 14ms

2、线程池的等待队列长度为:10000,reqRequiredAcks为1,将kafka的producer.type设置为异步:TPS 30000左右 RT 16ms
在这里插入图片描述
3、线程池的等待队列长度为:10000,将kafka的producer.type设置为异步、reqRequiredAcks设置为0;TPS 30000左右 RT >16ms
在这里插入图片描述
4、将线程池的等待队列长度设置为:20000,将kafka的producer.type设置为异步、reqRequiredAcks设置为0;TPS 30000左右 RT 40ms
在这里插入图片描述

;