不同速度的消费者

nbnkbykc  于 2021-06-07  发布在  Kafka
关注(0)|答案(1)|浏览(418)

我对Kafka有个概念上的问题。
我们有许多机器作为一个主题的消费者,有许多分区。这些机器运行在不同的硬件设置上,并且将有比其他机器具有更高吞吐量的用户。
现在消费者和一个或多个分区之间存在直接关联。
如何防止一个分区(慢速使用者)比其他分区(快速使用者)更快地累积未使用的消息,从而导致分区不平衡。
我的一个想法是定期强制重新平衡,但这通常会再次将相同的消费者分配到相同的队列。如果他们被随机分配的话,我的问题就解决了。
如果有任何提示我都会很感激的。
谢谢,来自柏林的问候,丹尼斯

uubf1zoe

uubf1zoe1#

您不必为生产者使用默认分区器,也不必在使用者中使用动态分区分配。您可以有一个高速分区池和一个单独的低速分区池,并手动(或随机)为每个分区池分配消息和使用者。
“…不使用subscribe订阅主题,只需调用assign(collection)和要使用的分区的完整列表。

String topic = "foo";
 TopicPartition partition0 = new TopicPartition(topic, 0);
 TopicPartition partition1 = new TopicPartition(topic, 1);
 consumer.assign(Arrays.asList(partition0, partition1));

"

相关问题