首页 > 图灵资讯 > java面试题>正文
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忽略小的纪元来避免脑裂:两个节点同时认为自己是当前的控制器。