java - 如何设置 Kafka acorss Multi DC
问题描述
场景:目前,我们有一个主集群,我们有生产者和消费者,它们按预期工作。我们必须在另一个数据中心实施辅助 Kafka DR 集群。我有几个想法,但不知道如何进行?
问题:如果主集群/代理出现故障,如何自动将生产者从主集群切换到辅助集群?
任何示例代码都会有所帮助。
解决方案
您可以在生产者面前使用负载均衡器。如果主代理不可用,负载均衡器可以切换到辅助集群。
您还可以在没有负载平衡器的情况下实施故障转移。
作为下一步,您必须在代码中配置一个异常处理,指示您自己重新连接。所以生产者仍然可以摄取。
消费者可以订阅超级主题(几个主题)。这可以通过正则表达式来完成。
对于 HA 场景,您需要 2 个 Kafka 集群和 Mirrormaker 2.0。
故障转移发生在客户端生产者/消费者。
对于您的问题:如果您有 3 个代理并配置了 2 个 ISR,则最多 1 个代理可能会失败。如果 2 个代理失败,则不再保证高可用性。这意味着您可以构建一个异常处理来拦截可用副本不足的错误,并在此基础上执行重新连接。
如果您将场景与负载均衡器一起使用,请确保在 passtrough-.xml 中配置了负载均衡器。这样,可以减少代码量。
推荐阅读
- jquery - 日期选择器的查询版本
- node.js - 节点 8 突然 EADDRINUSE 错误
- mysql - 关于 MySQL 存储过程
- javascript - 模拟器卡在从 10.0.2.2:8081 加载,有什么问题?
- ios - UIVideoEditorController 总是在保存时压缩视频
- javascript - GraphQL 突变只返回一个结果
- amazon-web-services - 反过来能否完全提供 AWS Cloudwatch?
- sql - 来自同一个表的多个内部联接
- objective-c - popUpMenuPositioningItem:atLocation:inView: 双屏失败
- python - 基于对 reset_index 进行的计算创建列时出现意外行为