Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring 卡夫卡消费者数量';重新平衡后,美国客户减少_Spring_Apache Kafka_Kafka Consumer Api_Spring Kafka - Fatal编程技术网

Spring 卡夫卡消费者数量';重新平衡后,美国客户减少

Spring 卡夫卡消费者数量';重新平衡后,美国客户减少,spring,apache-kafka,kafka-consumer-api,spring-kafka,Spring,Apache Kafka,Kafka Consumer Api,Spring Kafka,我注意到,经过一段时间(例如两天),consumergroup并发性比我配置的更低 我使用spring boot,下面是我的代码示例 factory.setConcurrency(10); 当我在声明kafka consumer之后使用以下kafka命令时,它正好显示10个不同的consumer客户端 bin/kafka-consumer-groups.sh --describe --group samplaConsumer --bootstrap-server localhost:9092

我注意到,经过一段时间(例如两天),consumergroup并发性比我配置的更低

我使用spring boot,下面是我的代码示例

factory.setConcurrency(10);
当我在声明kafka consumer之后使用以下kafka命令时,它正好显示10个不同的consumer客户端

bin/kafka-consumer-groups.sh --describe --group samplaConsumer --bootstrap-server localhost:9092
一段时间后,当我运行upper命令时,客户机会变得更低,例如6个不同的客户机,并管理这10个分区


如何解决此问题,以便在重新平衡后或无论客户端数量保持不变时,我发现如果消费者客户端处理轮询数据的时间超过
max.poll.interval.ms
,则消费者认为失败,并且组将重新平衡

max.poll.interval.ms
使用使用者组管理时调用poll()之间的最大延迟。这为消费者在获取更多记录之前可以空闲的时间量设置了上限。如果在此超时过期之前未调用poll(),则认为使用者失败,组将重新平衡,以便将分区重新分配给其他成员

我发现,如果这种情况经常发生,消费者客户端认为已经死亡,并且不再发生再平衡,那么消费者并发客户端的数量就会减少

我找到的一个解决方案是,我可以减少
max.poll.records
的数量,这样处理记录所花费的时间就比
max.poll.interval.ms
要少

props.put(ConsumerConfig.MAX_POLL_RECORDS_CONFIG, 50); // default is 200