首页 > 解决方案 > 如何设置 Kafka acorss Multi DC

问题描述

场景:目前,我们有一个主集群,我们有生产者和消费者,它们按预期工作。我们必须在另一个数据中心实施辅助 Kafka DR 集群。我有几个想法,但不知道如何进行?

问题:如果主集群/代理出现故障,如何自动将生产者从主集群切换到辅助集群?

任何示例代码都会有所帮助。

标签: javaapache-kafkakafka-producer-apiproducer-consumer

解决方案


您可以在生产者面前使用负载均衡器。如果主代理不可用,负载均衡器可以切换到辅助集群。

您还可以在没有负载平衡器的情况下实施故障转移。

作为下一步,您必须在代码中配置一个异常处理,指示您自己重新连接。所以生产者仍然可以摄取。

消费者可以订阅超级主题(几个主题)。这可以通过正则表达式来完成。

对于 HA 场景,您需要 2 个 Kafka 集群和 Mirrormaker 2.0。

故障转移发生在客户端生产者/消费者。

对于您的问题:如果您有 3 个代理并配置了 2 个 ISR,则最多 1 个代理可能会失败。如果 2 个代理失败,则不再保证高可用性。这意味着您可以构建一个异常处理来拦截可用副本不足的错误,并在此基础上执行重新连接。

如果您将场景与负载均衡器一起使用,请确保在 passtrough-.xml 中配置了负载均衡器。这样,可以减少代码量。


推荐阅读