gpt4 book ai didi

apache-kafka - 如何从Kafka中的两个不同集群进行消费?

转载 作者:行者123 更新时间:2023-12-02 20:53:11 24 4
gpt4 key购买 nike

我有两个 kafka 集群 A 和 B,B 是 A 的副本。仅当 A 关闭时我才想使用来自集群 B 的消息,反之亦然。然而,使用来自两个集群的消息会导致重复消息。那么有什么方法可以配置我的 kafka 消费者仅从一个集群接收消息。

谢谢--

最佳答案

So is there any way I can configure my kafka consumer to receive messages from only one cluster.

是:一个 Kafka 消费者实例将始终仅从一个 Kafka 集群接收消息。也就是说,没有内置选项可以使用相同的消费者实例从 2 个以上集群进行读取。但我认为您正在寻找不同的东西,请参见下文。

I would like to consume messages from cluster B only if A is down and viceversa. Nevertheless consuming messages from both the clusters would result in duplicate messages.

Kafka 的消费者 API 中没有内置的故障转移支持,例如“如果集群 A 发生故障,则切换到集群 B”。如果您需要此类行为(如您的情况),则需要在使用 Kafka Consumer API 的应用程序中执行此操作。

例如,您可以创建一个使用者实例以从集群 A 读取数据,监视该实例和/或该集群以确定是否需要故障转移到集群 B,并且(如果需要)通过创建另一个使用者来执行到 B 的故障转移如果 A 失败,则从 B 读取实例。

但是,有一些问题使得这种故障转移行为比我的简化示例更加复杂。一个困难是在切换到 B 时知道集群 A 中的哪些消息已被读取:这很棘手,因为通常集群之间的消息偏移量不同,因此确定消息(在 B 中)的“副本”是否已被读取(来自 A)并非微不足道。

注意:有时您可以在以下情况下简化此类应用程序/此类故障转移逻辑:消息处理是幂等的(即重复消息/消息的重复处理不会改变处理结果)。

关于apache-kafka - 如何从Kafka中的两个不同集群进行消费?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41457254/

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