Ama*_*nha 4 apache-kafka kafka-consumer-api spring-kafka
我一直读到Kafka只将一个消费者实例(线程)分配给一个分区。我最近遇到了ConcurrentKafkaListenerContainerFactory并正在阅读它,有些方面似乎与我之前所知道的相矛盾。
假设我们有一个消费者实例(pod/机器),在其中我使用ConcurrentKafkaListenerContainerFactory ,并发级别设置为 3 3。我有一个包含三个分区的 Kafka 主题。将并发级别设置为三时,我知道我的@KafkaListener 方法将从主题的所有三个分区读取消息。
这是否意味着即使只有一个消费者实例,我们也能够并行消费来自三个分区的消息。
这可以作为替代方案来提高 Kafka 主题的消费率而不增加分区数量吗?我知道的唯一其他方法是创建一个线程池并将收到的消息提交给它。我们可以使用 ConcurrentKafkaListenerContainerFactory 作为此过程的替代品吗,因为这听起来确实更容易实现。
根据您的配置创建实例ConcurrentKafkaListenerContainer
数量KafkaConsumer
。这\xe2\x80\x99就是如何并行读取不同分区的方法。
不要\xe2\x80\x99t 混合KafkaConsumer
对象与一般消费者实体定义混合。换句话说,根据 Apache Kafka 定义,您的消费者应用程序绝对不是 Kafka Consumer 对象。这不是第一次听说人们将他们的应用程序称为 \xe2\x80\x9cKafka Consumer\xe2\x80\x9d\xe2\x80\xa6 您读过哪些文档让您这么认为?
在其文档中查看有关 Spring for Apache Kafka 并发性的更多信息:https://docs.spring.io/spring-kafka/docs/current/reference/html/#message-listener-container
\n 归档时间: |
|
查看次数: |
1248 次 |
最近记录: |