首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >一个Kafka-Cluster能被切成两半吗?

一个Kafka-Cluster能被切成两半吗?
EN

Stack Overflow用户
提问于 2019-02-11 04:02:36
回答 1查看 316关注 0票数 0

场景:您在不同的DC中有一个Kafka-Cluster,但它们被配置为一个集群。所以没有通过MirrorMaker或liket hat的镜像。区议会与其他区议会相距不远。但它们在物理上是分开的。

现在,如果这两个DC之间的连接断开,您必须如何确保群集在两端都是故障保护的?因此,在双方中,生产者和消费者仍然应该工作。

我猜:两端都需要多个Zookeepers和多个Kafka节点。

但这就足够了吗?重新连接后,集群会自行恢复吗?

提前谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-02-11 20:43:20

我假设您的数据中心“与其他数据中心相距不远”基本上就是可用区(AZ)。

将一个集群分散到多个AZ上是很常见的。然而,通常不希望或不可能让每个“切片”都能独立存在。

迫在眉睫的问题是Zookeeper,它的设计防止了大脑分裂的情况。因此,如果ZK集群被拆分,只有一个“切片”(充其量)将继续工作。因此,处于非工作ZK集群一侧的代理将不起作用。

那么,让双方都继续工作是可能的。当您再次加入两边时会发生什么?

由于客户分别向每一方写入数据,因此数据可能会出现分歧。现在你可能有相同的分区,不同的消息对应于相同的偏移量,没有办法解决冲突,因为这两个选项都是“有效的”。

我希望这说明了为什么这不是一个可能的解决方案。在实践中,如果AZ离线,它将不起作用,直到它恢复在线。

连接到脱机AZ的客户端应该重新连接到另一个AZ (使用多个引导服务器),并且应该将故障AZ中的客户端重新配置到另一个AZ中。

如果配置正确,Kafka可以在AZ宕机中幸存下来(即使在实践中,最好有3个AZ),并保持所有资源可用。同样在此场景中,当出现故障的AZ返回时,集群将自动恢复到良好状态。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54620458

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档