Spring Kafka消费者 - 并发监听器与云中的非并发监听器

时间:2017-09-26 01:55:37

标签: apache-kafka cloudfoundry kafka-consumer-api pivotal-cloud-foundry spring-kafka

我使用Spring Kafka创建了一个Kafka消费者,并将其部署在云代工厂中。该主题有10个分区。我计划将应用程序扩展到10个实例,以便每个实例可以使用来自一个分区的消息。 Spring Kafka也支持并发消息监听器容器,我想支持从每个分区创建超过1个线程。因此,例如,如果我有5个消费者实例,则每个消费者实例可能有2个线程从分区消耗。由于我无论如何计划为每个分区创建1个应用程序实例,使用并发使用者是否有任何优势?

由于我的优先事项是快速处理主题中的消息,我认为为每个分区提供1个应用实例将为每个分区中的消息提供足够的资源进行处理。

1 个答案:

答案 0 :(得分:1)

这是正确的,您只需要在同一个消费者群体中拥有10个单线程消费者。由于您只有10个分区,Kafka中的重新平衡机制将在10个实例之间分配它们。

该容器中的并发性是不必要的。请考虑使用KafkaMessageListenerContainer代替。