kafka的Acks和Retries、幂等性

kafka的Acks和Retries,保证数据的可靠性传输,针对生产者

Acks
acks = 1 : leader把数据写入磁盘后,不等follower完全确认,就做出响应;如果leader宕机,会造成数据丢失

acks = 0: 生产者不等待任何确认,直接响应

acks = all: leader会等待至少一个follower完全确认,才做出响应;即使leader宕机,数据也不会丢失

Retries: 重试次数

acks = all 和 retries同时使用,会导致某些数据重复

幂等性: 保证同一个分区下,数据的完整性(不会丢失、不会重复)
幂等要和acks = all, retries > 0,一起使用

幂等,exactly one(正好一个)

Kafka中如何实现幂等
每一个生产者,初始一个Product ID , Broker会记录 PID 和 序列号(自增),当下一个消息的序号> PID中的序列号,则通过; 否则就认为是重复的

你可能感兴趣的:(kafka)