high
acks
该选项控制着已发送消息的持久性。
acks=0:⽣产者不等待 broker 的任何消息确认。只要将消息放到了 socket 的缓冲区,就认
为消息已发送。不能保证服务器是否收到该消息,retries 设置也不起作⽤,因为客户端不关⼼
消息是否发送失败。客户端收到的消息偏移量永远是-1。
acks=1:leader 将记录写到它本地⽇志,就响应客户端确认消息,⽽不等待 follower 副本
的确认。如果 leader 确认了消息就宕机,则可能会丢失消息,因为 follower 副本可能还没来
得及同步该消息。
acks=all:leader 等待所有同步的副本确认该消息。保证了只要有⼀个同步副本存在,消息
就不会丢失。这是最强的可⽤性保证。等价于 acks=-1。默认值为 1,字符串。可选值:[all,
-1, 0, 1]
high
compression.type
⽣产者⽣成数据的压缩格式。默认是 none(没有压缩)。允许的值:none,gzip,snappy
和 lz4。压缩是对整个消息批次来讲的。消息批的效率也影响压缩的⽐例。消息批越⼤,压
缩效率越好。字符串类型的值。默认是 none。
high
retries
设置该属性为⼀个⼤于 1 的值,将在消息发送失败的时候重新发送消息。该重试与客户端
收到异常重新发送并⽆⼆⾄。允许重试但是不设置 max.in.flight.requests.per.connection 为 1,
存在消息乱序的可能,因为如果两个批次发送到同⼀个分区,第⼀个失败了重试,第⼆个成
功了,则第⼀个消息批在第⼆个消息批后。int 类型的值,默认:0,可选值:[0,...,2147483647]
high