配了三个broker后,停一个,为什么有的consumer就会收不到消息了?也就是说集群容灾没生效?你需要检查以下几件事:
1. 三个broker id 正确配置
这个不多说.
2. 各业务topic的各partition是否配置了三个replica
如要重新刷partition的replica配置,见:kafka速记
3. __consumer_offsets的各partition是否配置了三个replica
这个可以在各broker的server.properties里设置成:
offsets.topic.replication.factor=3
transaction.state.log.replication.factor=3
transaction.state.log.min.isr=3
如果__consumer_offsets已经存在了,也可以后期刷replica。kafka速记里面也有具体的做法。