gpt4 book ai didi

apache-kafka - Kafka Producer,多数据中心故障转移支持

转载 作者:行者123 更新时间:2023-12-04 16:03:50 26 4
gpt4 key购买 nike

我有两个不同的 kafka 集群,它们位于不同的数据中心 - DC1 和 DC2。如何组织两个数据中心之间的卡夫卡生产者故障转移?如果主 kafka 集群 (DC1) 变得不可用,我希望生产者切换到故障转移 kafka 集群 (DC2) 并继续发布到它?一旦主集群可用,生产者也应该能够切换回主集群。任何好的模式、现有的库、方法、代码示例?

最佳答案

您的生产者发布到的 Kafka 主题的每个分区都有一个单独的领导者,通常分布在集群中的多个代理上,因此生产者同时连接到许多“主要”代理。如果其中任何一个失败,另一个同步副本 (ISR) 将被选为领导者并自动接管。您无需在客户端应用程序中执行任何操作即可重新连接到新的领导者、重试任何失败的请求并继续。

如果这是针对多数据中心 (MDC) 故障转移,那么事情会变得更加复杂,具体取决于客户端应用程序是否也死机,或者它们是否继续运行并且只需要它们的集群连接来进行故障转移。偏移量不会跨多个 Kafka 集群保留,因此虽然生产者更简单,但消费者需要在故障转移时调用 GetOffsetsForTimes()。

有关 MDC 故障转移模式和最佳实践的精彩文章,请参阅此处的 MDC 白皮书:https://www.confluent.io/white-paper/disaster-recovery-for-multi-datacenter-apache-kafka-deployments/

由于您只询问了生产者,您的应用程序可以检测主集群是否已关闭(比如一定次数的重试),然后它可以从辅助集群连接到另一个代理列表,而不是尝试重新连接。或者,您可以将 brokerlist 主机的 dns 名称重定向到辅助集群。

关于apache-kafka - Kafka Producer,多数据中心故障转移支持,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49616556/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com