Den*_*nis 5 apache-kafka kafka-consumer-api
我对 Kafka 有概念上的问题。
我们有许多机器充当具有许多分区的一个主题的消费者。这些机器在不同的硬件设置上运行,并且会有比其他机器具有更高吞吐量的消费者。
现在消费者和一个或多个分区之间存在直接关联。
如何防止一个分区(慢消费者)比其他分区(快速消费者)更快地累积未消耗的消息,从而导致分区不平衡。
我的一个想法是定期强制重新平衡,但似乎这通常会再次将相同的消费者分配到相同的队列。如果他们被随机重新分配,那将解决我的问题。
我很感激这方面的任何提示。
谢谢你,来自柏林的问候,丹尼斯
您不必为生产者使用默认分区程序,也不必在消费者中使用动态分区分配。您可以拥有一个高速分区池和一个单独的低速分区池,并手动(或随机)将消息和使用者分配给每个分区池。
“...您无需使用 subscribe 来订阅主题,只需使用您想要使用的分区的完整列表调用 allocate(Collection) 即可。
String topic = "foo";
TopicPartition partition0 = new TopicPartition(topic, 0);
TopicPartition partition1 = new TopicPartition(topic, 1);
consumer.assign(Arrays.asList(partition0, partition1));
Run Code Online (Sandbox Code Playgroud)
”
| 归档时间: |
|
| 查看次数: |
1329 次 |
| 最近记录: |