Spring 卡夫卡消费者数量';重新平衡后,美国客户减少
我注意到,经过一段时间(例如两天),consumergroup并发性比我配置的更低 我使用spring boot,下面是我的代码示例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
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