Apache Camel Kafka Consumer 提供了名为“consumerStreams”和“consumersCount”的 URI 选项。
需要了解差异和使用场景以及它如何适应多分区Kafka主题消息消费
最佳答案
consumerCount
控制 Camel 端点创建了多少消费者实例。因此,如果您的主题中有 3 个分区并且您的 consumerCount 为 3,那么您可以一次使用 3 条消息(每个分区 1 条)。 此设置完全符合您对文档 的期望consumerStreams
是一个完全不同的设置,恕我直言,一个误导性的名字和一个误导性的文档。
目前文档( https://github.com/apache/camel/blob/master/components/camel-kafka/src/main/docs/kafka-component.adoc )说:
consumerStreams: Number of concurrent consumers on the consumer
但源代码揭示了它的真正目的:
consumerStreams
配置可用于 的线程数所有消费者继续运行。在内部,Kafka 端点为每个消费者创建一个 Runnable。 ( consumerCount = 3
) 表示 3 个 Runnable。这些可运行文件由 ThreadPoolExecutorService
执行由 consumerStreams
缩放环境。由于单个消费者线程是长时间运行的任务
consumerStreams
的唯一目的可以处理重新连接或阻塞的线程。 consumerStreams
的更高值不会导致更多的并行化。 最好命名为consumerThreadPoolSize
或类似的东西。
关于apache-camel - 目的和区别 b/w Apache camel Kafka 消费者 URI 选项 consumerStreams 与 consumerCount,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35920716/