Kafka生产者-重要参数

1.acks

决定分区中有多少副本收到这条消息,生产者才会认为这条消息成功写入

有三种类型的值(String):

  • acks=1,默认值,只要leader写入成功即返回成功响应(折中方案)
  • acks=0,不需要等待服务端响应,可以达到最大吞吐量(其他配置相同条件下)
  • acks=-1或all,等待ISR中所有副本成功写入消息才能返回成功响应,可靠性最高

2.max.request.size

单条消息的最大值,默认值为1048576B,即1MB,会涉及到其他参数

3.retries和retry.backoff.ms

retries配置生产者重试次数,默认值为0

retry.backoff.ms默认值为100,设定两次重试之间的时间间隔,避免无效的频繁重试

4.compression.type

指定消息压缩方式,默认值为"none",还可以配置"gzip"、"snappy"和"lz4",使用时间换空间的方式,如果对时延有一定要求,不推荐对消息进行压缩

5.connections.max.idel.ms

空连接超时限制

6.linger.ms

指定生产者发送ProducerBatch之前等待ProducerRecord加入ProducerBatch的时间,默认为0,增大该参数会增加消息延迟,但是能提升一定的吞吐量

7.receive.buffer.bytes

设置socket接收消息缓冲区的大小,默认值为32768B,即32KB,如果设置为-1,使用操作系统的默认值

8.send.buffer.bytes

设置socket发送消息缓冲区的大小,默认值为131072B,即128KB,如果设置为-1,使用操作系统的默认值

9.request.timeout.ms

设置Producer等待请求响应的最长时间,默认值为30000(ms)

该参数需要比broker端参数replica.lag.time.max.ms的值大,可以减少因客户端重试而引起的消息重复的概率

posted @ 2020-07-27 22:07  马晟  阅读(668)  评论(0编辑  收藏  举报