kafka producer ack
初始化producer时,通过配置参数request.required.acks来确定。
-
0
producer不同步等待消息发送响应。
latency最低但durability最差。
当主节点故障时,消息可能会因发送失败而丢失。类似rpc里的oneway。 -
1
producer发消息后同步等leader broker收到消息的响应(刷盘策略可指定,默认是异步)。
此时durability得到提升,因为消息会不断的复制到follower机器上。
但如果leader broker挂掉,那么未被follower复制的消息,还是会丢失。 -
-1 即 all
producer发消息后,除了leader broker确认收到消息,同时要同步等follower副本确认收到消息。
具体需要确认的副本个数,由min.insync.replicas指定的值来确定。 此时durability是最高的,但吞吐量是最低的。