场景:两个数据中心 East DC(数据中心) 和 West DC 都具有相同的数据流,并作为彼此的备份。
- North DC* 需要来自East DC或West DC的连续数据。
在我的搜索过程中,出现了一些名字,比如MirrorMaker 2,U replicator和custom build Kakfa connect。
我想到使用 * MirrorMaker 2(MM 2)* 来实现这个目的,最初数据将从 East DC 推送,假设 East DC 在上午11:00失败,那么 * MM 2 * 将切换到 West DC 并在上午11:00推送数据。
第一次设计这样的解决方案,所以只是想确认一下我使用MM 2或备用的方向。
任何建议/分享过去的经验可以帮助,谢谢
1条答案
按热度按时间s5a0g9ez1#
如果您的东群集出现故障,则不会从 * 任何 * 镜像解决方案向西(或向北)推送任何数据。
不清楚“switch”的含义。在这种情况下,任何配置为使用east集群的客户端都将停止工作,因为它们不知道任何关于west或north的信息(Kafka客户端一次只能配置到一个集群)。镜像解决方案与外部客户端配置/服务发现无关。
如果它们被更新到了west(有停机时间),而east群集又重新联机,那么您需要再次停机才能将它们切换回east。但是,在完成西-东镜像之前可能不应该这样做。在这种情况下,我不完全确定任何“更新的east消费者”如何知道哪些数据已经从west群集处理。
如果生产者只存在于东部和西部,而消费者只存在于北部,那么这就是一个“扇入”的Kafka模式,如果东部/西部集群/镜像重新启动,你需要注意大量的消费者负载。
由于这些原因,我发现Kafka集群镜像不是主动-主动复制的防弹解决方案。
我想这就是为什么人们倾向于Apache Pulsar或Confluent“集群链接”解决方案的原因。