我有一个具有以下配置的 Kafka 消费者。
num.stream.threads=10 最大投票记录=90
消费者是使用 10 个线程的主题中的 90 条记录,还是使用者中的 10*90=900 条消息。
max.poll.records
在对 poll(( 的单次调用中返回的最大记录数。
Kafka Streams 配置条目StreamsConfig.NUM_STREAM_THREADS_CONFIG指示要为此应用程序实例生成的流线程数。
StreamThread 是一个实际的 Java 线程,具有自己独特的 Kafka 使用者和生产者实例。
每个 StreamThread 都被分配了要执行的任务。Kafka Streams 应用程序的容量由该应用程序整体运行的实例中可用的 StreamThread 实例总数定义。
KafkaStreamsinstance 启动时会触发所有 StreamThreads 启动。 然后,每个 StreamThread 使用自己的 KafkaConsumer 来订阅所有源主题。
由于每个线程都是一个单独的 Kafka 使用者实例,因此每个线程将消耗 90 条消息,即总共 900 条消息。
来源 : https://medium.com/@andy.bryant/kafka-streams-work-allocation-4f31c24753cc