我想构建一个HA Kafka集群,该集群需要跨越2个可用区。
我希望能够继续读写一个主题,即使AZ中的所有代理都宕机了。
如果我在每个AZ中至少有2个代理,复制因子为3,最小ISR为2,acks设置为All,那么我认为当除领导者之外的另一个代理也acks写入时,生产者写入将被确认。机架感知算法是否强制要求ISR必须位于另一个可用区?文档只提到了副本,没有提到ISR。
这将使我能够在失去AZ的情况下继续阅读和写作吗?如果不是,那么需要什么来实现这个目标呢?
发布于 2017-09-30 14:42:08
如果你想要一个真正的HA Kafka集群,你需要从HA Zookeeper集成开始,这通常意味着3个可用区,因为(与Kafka代理不同) Zookeeper节点需要一个quorum (大多数原始节点)才能运行,并且当你的一半节点关闭时,你不可能拥有大多数节点。
Zookeeper之所以重要,是因为一个合适的HA Kafka集群不仅应该允许故障后的读写,还应该允许新的主题创建和新的领导人选举,这两者都需要Zookeeper能够运行。
https://stackoverflow.com/questions/46478382
复制相似问题