gpt4 book ai didi

apache-kafka - Kafka 如何处理运行速度比其他消费者慢的消费者?

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

假设我有 20 个分区和 5 个 worker 。每个分区都分配了一个工作人员。但是,一个 worker 的运行速度比其他机器慢。它仍在处理(也就是说,不是慢消费者描述的 here ),但处理速度是其他机器的 60%。这可能是因为工作线程正在 AWS EC2 上运行速度较慢的 VM、损坏的磁盘或 CPU 或诸如此类。 Kafka 是否以某种方式优雅地处理重新平衡,以便为慢速 worker 提供更少的分区?

最佳答案

Kafka 并不真正关心消息的消耗速度。它甚至不涉及有多少消费者或每条消息被读取多少次。 Kafka 只是将消息提交到分区并在配置的时间将它们老化。

确保消息被均匀和及时地读取是消费者组的责任。在您的情况下,您有两个问题:一组分区的读取滞后,然后处理来自这些分区的消息滞后。

对于来自主题的消息的实际消费,您必须使用 Kafka 元数据 API 来跟踪每个消费者面临的相对负载,无论是通过倾斜分区还是因为消费者以不同的速度运行。您要么必须将分区重新分配给消费者,以减少慢速消费者的工作量,要么将消费者随机重新分配给分区,希望随着时间的推移最终平衡工作负载。

为了更好地平衡消息的处理,您应该从消息的处理中分离出消息的读取 - 类似于 Storm 流模型。您仍然必须以编程方式将积压监控到处理逻辑中,但您可以将工作移动到更快的节点以平衡工作。

关于apache-kafka - Kafka 如何处理运行速度比其他消费者慢的消费者?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34089313/

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