如何解决Kafka 生产者将消息发布到辅助集群
建议的集群设置说明
- 2 个数据中心,每个数据中心有 5 个节点 Kafka 集群
- 集群具有相同的主题和相同的生产者/消费者实例
- 跨集群没有数据复制。所以集群 1 和集群 2 中的数据是不同的
- 不需要消息关联性。 [如果生产者 1 开始向集群 2 发布消息,反之亦然] 在功能上没有任何区别]
我们想要实现的是,假设生产者 1 向集群 1 异步发布消息,但收到否定确认(在所有重试超时发生后)。这在生产者回调方法中很容易检测到
在收到此故障时,我们使用另一个供生产者使用的 KafkaTemplate(具有集群 2 的详细信息)。现在生产者尝试将相同的消息发布到集群 2 [它也适用于其他方式,如果生产者 2 无法在本地发布,它将向集群 1 发送消息]
我们在这里得到的好处是
- 消息不会丢失并自动发布到其他集群
- 由于每个消息都会发生此活动,因此一旦集群 1 备份,生产者 1 就可以自动向集群 1 发送消息
我们看到的一个缺点是,我们通过在元数据获取超时或否定确认的异常处理块中生成到辅助集群来自己处理故障转移逻辑
我在网上找不到任何显示类似设置的地方。这种方法有什么根本性的问题吗
解决方法
当然;只需配置 2 组基础设施 bean - 生产者和消费者工厂、容器工厂、模板。
您不能为此使用 Boot 的自动配置,但您可以自己定义 bean。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。