apache-camel - 目的和区别 b/w Apache camel Kafka 消费者 URI 选项 consumerStreams 与 consumerCount

标签 apache-camel apache-kafka

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/

相关文章:

apache-kafka - 将消息加入 Kafka Stream 后从流中清除消息

java - 如何在测试基于 CamelSpringTestSupport 的测试期间设置属性值

java - 使用 apache camel 和 Kafka 时如何处理背压?

java - Camel文件组件: create a file and if already exist,移动它并用时间戳重命名它

java - 如何设置厘米:title via camel-cmis?

apache-kafka - 我在哪里定义 topic.metadata.refresh.interval.ms?

Windows 10 上的 java.lang.NoClassDefFoundError : Could not initialize class org. Rocksdb.Options

java - Camel - RabbitMQ Spring 启动

apache-spark - 如何在 Spark Streaming 中启用背压(使用 pyspark)

apache-kafka - 使用 react 器 Kafka 从主题读取消息并将消息批量写入 REST 端点