gpt4 book ai didi

apache-kafka - Kafka - 同一组/主题上的多个消费者(只有一个活跃)

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

是否可以让应用程序的多个副本监听同一个 Kafka 组/主题,以便一次只有一个正在读取它,但如果主要应用程序崩溃/停止读取,其他应用程序将开始工作?

我需要使应用程序高度可用,但不能容忍通过主动运行多个副本将应用程序另一端的数据存储的流量加倍。

仅供引用 - 从技术上讲,我使用的是 MapR 流,但它遵守 Kafka API 和功能,以防有人知道 MapR 流特定的功能可以帮助解决这种情况。

最佳答案

有可能的。如果多个消费者在同一个消费者组中,当该组订阅一个主题时,kafka 会为您的消费者做一个分区分配工作:一个分区只能被同一组中的一个消费者消费。

所以你可以将你的主题设置为只有一个分区,那么只有一个消费者来消费消息,其他人将处于空闲状态。一旦消费者关闭,它将触发组重新平衡操作:kafka 将再次进行分区分配。然后在你的情况下,一个新的消费者将继续这项工作。它将处理来自旧消费者提交的最后提交偏移量的消息。

如果您的案例支持并行处理,您可以让多个进程(应用程序)执行相同的工作并将主题设置为多个分区。它们将被分配使用不同的分区并处理不同的消息。因此,它将加快您的流程,并且还可以容忍故障转移。如上所述,如果某些消费者发生故障,kafka 会为您处理,它将他们的分区分配给其他正在工作的消费者。所以一切都会好起来的。

关于apache-kafka - Kafka - 同一组/主题上的多个消费者(只有一个活跃),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46057433/

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