不完全首领选举,kafka默认是激活的,这个我没有动,我想问的是,当kafka集群节点全部宕机后,为什么kafka客户端只会重连宕机前的leader,,而没有与其他节点尝试重连,如果在恢复kafka集群时,刚好之前宕机的leader服务器无法及时恢复,,而此时,kafka集群已经可用,但是,kafka客户端不会重连其他节点,就导致了应用程序仍然不可用,,,kafka客户端在重连时明显进行了区别对待,,,
在我看来,为了kafka集群的容错性和高可用,kafka客户端在全部节点宕机之后都应该进行尝试重连,以最快的速度保证当kafka集群可用时,生产者和消费者也能正常使用,但是,kafka客户端明显没有这样去处理,,,而是一直重连全部宕机前的leader,,而且是强制性的,,也没有给用户选择的余地
不完全首领选举,kafka默认是激活的,这个我没有动,我想问的是,当kafka集群节点全部宕机后,为什么kafka客户端只会重连宕机前的leader,,而没有与其他节点尝试重连,如果在恢复kafka集群时,刚好之前宕机的leader服务器无法及时恢复,,而此时,kafka集群已经可用,但是,kafka客户端不会重连其他节点,就导致了应用程序仍然不可用,,,kafka客户端在重连时明显进行了区别对待,,,
https://blog.csdn.net/yht874690625/article/details/88311161
首先要明确一点,当SpringBoot整合kafka后,
kafka.consumer.enable.auto.commit=false 意思是让spring自动去提交offset
kafka.consumer.enable.auto.commit=true 意识是让kafka去自动提交offset
解决办法:
在kafkaconsumer的配置类里加入以下即可:yaml文件配置不够吧,程序里面需要手动设置一下