Kafka主题的多个消费者

时间:2016-09-26 18:32:35

标签: apache-kafka

我已经实现了类似于本文所述方式的kafka消费者:http://howtoprogram.xyz/2016/05/29/create-multi-threaded-apache-kafka-consumer/

它的实现方式意味着一个分区只有一个消费者线程。所以我想要10个消费者线程,然后我需要10个主题分区。

多线程消费者还有其他工作方法吗?

我也看过这篇文章:https://cwiki.apache.org/confluence/display/KAFKA/Consumer+Group+Example

然而,在我的环境中测试此示例时,我遇到了异常topic-1395414642817-47bb4df2 can't rebalance after 4 retries

1 个答案:

答案 0 :(得分:1)

  

它的实现方式意味着一个分区只有一个消费者线程。所以我想要10个消费者线程,然后我需要10个主题分区。

我假设你想拥有比分区更多的消费者线程? Kafka不支持此功能。在Kafka中,每个消费者都会监控其进度(即它读取分区的内容 - 称为偏移)本身。如果你想要更多的消费者线程而不是分区,那些线程会以某种方式相互交谈以“分离”数据。此模式是非标准的,不受支持。它也不会很好地扩展,因为如果你添加更多的消费者,同步开销会很高。

每个分区只有一个消费者线程使Kafka可以扩展。最佳做法是对主题进行过度划分,以便在消费者线程数量方面获得更大的灵活性。