Producer Configs 配置
属性 | 描述 | 类型 | 默认值 |
---|---|---|---|
bootstrap.servers | 用于建立与kafka集群的连接,这个list仅仅影响用于初始化的hosts,来发现全部的servers。 格式:host1:port1,host2:port2,…,数量尽量不止一个,以防其中一个down了 |
list | |
acks | Server完成 producer request 前需要确认的数量。acks=0 时,producer不会等待确认,直接添加到socket等待发送;acks=1 时,等待leader写到local log就行;acks=all 或acks=-1 时,等待isr中所有副本确认(注意:确认都是 broker 接收到消息放入内存就直接返回确认,不是需要等待数据写入磁盘后才返回确认,这也是kafka快的原因) |
string | 1 |
buffer.memory | Producer可以用来缓存数据的内存大小。该值实际为RecordAccumulator类中的BufferPool,即Producer所管理的最大内存。 如果数据产生速度大于向broker发送的速度,producer会阻塞 max.block.ms ,超时则抛出异常 |
long | 33554432 |
compression.type | Producer用于压缩数据的压缩类型,取值:none, gzip, snappy, or lz4 |
string | none |
batch.size | Producer可以将发往同一个Partition的数据做成一个Produce Request发送请求,即Batch批处理,以减少请求次数,该值即为每次批处理的大小。 另外每个Request请求包含多个Batch,每个Batch对应一个Partition,且一个Request发送的目的Broker均为这些partition的leader副本。 若将该值设为0,则不会进行批处理 |
int | 16384 |
linger.ms | Producer默认会把两次发送时间间隔内收集到的所有Requests进行一次聚合然后再发送,以此提高吞吐量,而linger.ms则更进一步,这个参数为每次发送增加一些delay,以此来聚合更多的Message。 官网解释翻译:producer会将request传输之间到达的所有records聚合到一个批请求。通常这个值发生在欠 |