当前位置: 首页 > 图灵资讯 > java面试题> javaKafka面试题-一致性和幂等性如何确保?

javaKafka面试题-一致性和幂等性如何确保?

来源:图灵教育
时间:2024-05-26 13:26:04
保证在消息重发的时候,消费者不会重复处理。即使在消费者收到重复消息的时候,重复处理,也要保证最终结果的一致性。所谓幂等性,数学概念就是:f(f(x)) = f(x)

如何实现?

添加唯一ID,类似于数据库的主键,用于唯一标记一个消息。

ProducerID:#在每个新的Producer初始化时,会被分配一个唯一的PIDSequencEnumber:#对于每个PID发送数据的每个Topic都对应一个从0开始单调递增的SN值


如何选举

1.使用 Zookeeper 的分布式锁选举控制器,并在节点加入集群或退出集群时通知控制器。

2.控制器负责在节点加入或离开集群时进行分区Leader选举。

3.控制器使用epoch忽略小的纪元来避免脑裂:两个节点同时认为自己是当前的控制器。