我想构建一个HA Kafka群集,群集需要跨越2个可用区域。
我希望能够继续阅读和写入某个主题,即使AZ中的所有经纪人都已关闭。
如果我在每个AZ中至少有2个代理,复制因子为3,最小ISR为2且acks设置为All,那么我认为当领导者之外的另一个经纪人也会回应时,生产者写入将被激活写。机架感知算法是否强制ISR必须位于其他AZ中?文档只提到复制品,而不是ISR。
这是否可以让我在失去AZ的情况下继续阅读和写作?如果没有,那么实现这一目标需要什么?
答案 0 :(得分:0)
如果你想要一个真正的HA Kafka集群,你需要从HA Zookeeper集合开始,这通常意味着3个可用区,因为(与Kafka经纪人不同)Zookeeper节点需要一个法定数量(大多数原始节点)才能运行,你可以当一半节点关闭时,我们占多数。
Zookeeper很重要的原因是一个合适的HA Kafka集群不应该只在失败后允许读写,而且还允许新主题创建和新的领导者选举,这两者都需要Zookeeper才能运行。