Java 使Kafka ConcurrentMessageListenerContainer批量工作
在我的应用程序中,为了不使用@KafkaListener注释,我创建了自己的自定义侦听器。我配置为在一个记录到一个记录库中侦听消息。这是有效的。现在,我想将我的自定义侦听器转换为批量侦听消息。我是否应该将ConsumerConfig.MAX_POLL_RECORDS_CONFIG配置为每次轮询要处理的消息量?我还将我的确认模式更改为批处理。这就是我需要做的吗 我知道ConcurrentKafkaListenerContainerFactory具有属性“setBatchListener(true)”,但就我对Kafka文档的理解而言,这种工厂配置仅与@KafkaListener注释一起使用Java 使Kafka ConcurrentMessageListenerContainer批量工作,java,apache-kafka,kafka-consumer-api,spring-kafka,Java,Apache Kafka,Kafka Consumer Api,Spring Kafka,在我的应用程序中,为了不使用@KafkaListener注释,我创建了自己的自定义侦听器。我配置为在一个记录到一个记录库中侦听消息。这是有效的。现在,我想将我的自定义侦听器转换为批量侦听消息。我是否应该将ConsumerConfig.MAX_POLL_RECORDS_CONFIG配置为每次轮询要处理的消息量?我还将我的确认模式更改为批处理。这就是我需要做的吗 我知道ConcurrentKafkaListenerContainerFactory具有属性“setBatchListener(true)
任何帮助都将不胜感激。只需将您的侦听器更改为实现
BatchMessageListener
或其子接口之一即可。容器将自动检测其类型
看
@KafkaListener
代码使用工厂标志来确定要创建哪种类型的侦听器适配器。最大轮询记录是一个限制,而不是一个硬数字;您可能仍然需要增加poll timeoutPerfect。谢谢你@GaryRussell,这就是我正在做的。除了ConsumerConfig.MAX\u poll\u RECORDS\u CONFIG之外,是否还有其他方法设置轮询大小?这是一个最大值;您将获得最多该数量的记录;没有MIN\u POLL\u RECORDS\u CONFIG
-您只能使用和大致控制最小值。