在Camel Kafka中创建并发的Kafka消费者



我使用的是camel-kafka版本2.14.3。以下是卡夫卡URI:

<from uri="kafka:{brokerlist}?topic={topic-name}&amp;zookeeperHost={zookeeperHost}&amp;zookeeperPort={zookeeperPort}&amp;groupId={groupId-name}&amp;consumerStreams=2" />

注意,我在URI选项中使用了consumerStream=2。但是,当我一次向主题topic-name发布多条消息(全部发布到同一分区(时,kafka使用者会依次接收这些消息。如何并行接收这些消息?

我正在寻找一个如下的解决方案:

<from uri="ibm_bean_name:queue_name?concurrentConsumers=2" /> 

是我用来同时从ibm MQ 读取的

分区是Kafka的并行单元。每个分区将被分配给给定使用者组中的单个使用者。你说你正在生产一个单独的分区。这意味着所有消息都将发送给一个消费者,而不管组中有多少消费者。如果您希望消息发送到不同的消费者,则需要生成到不同的分区。

如果您有N个分区,那么在同一消费者组中最多可以有N个消费者,每个消费者都从一个分区中读取。当使用者少于分区时,一些使用者将从多个分区中读取。此外,如果使用者比分区多,那么一些使用者将处于非活动状态,并且根本不会收到任何消息。

如果每个分区有一个使用者,那么一些分区可能会接收到更多的消息,这就是为什么一些使用者可能空闲,而另一些使用者可能仍在处理一些消息。请注意,消息并不总是以循环方式插入主题分区,因为具有相同键的消息被放置在同一分区中。