spring 即使在增加此配置后,云流 kafka 批处理也不会每 15 分钟消耗一次消息,'fetch.max.wait.ms'
spring cloud stream kafka batch does not consume messages in every 15 minutes even after increasing this config, 'fetch.max.wait.ms'
我想每 15 分钟以批处理模式消费消息。
为此,我设置了这些属性,
spring.cloud.stream.kafka.binder.consumer-properties.max.poll.records=5000000
spring.cloud.stream.kafka.binder.consumer-properties.fetch.max.wait.ms=900000
spring.cloud.stream.kafka.binder.consumer-properties.fetch.min.bytes=500000000
当我在 10000
到 30000
之间设置此 属性 spring.cloud.stream.kafka.binder.consumer-properties.fetch.max.wait.ms
10 秒或 30 秒时,消费消息工作正常。
但是,如果我将 fetch.max.wait.ms
增加到 1 分钟或更长时间,即使等待时间结束,它也不会消耗消息。
我知道默认值为 500 毫秒,但如果我增加它会不会有问题??
以及如何获得所需的行为(消费者在再次消费该批次之前等待 10-15 分钟)??
我可以使用 max.poll.interval.ms
吗?
通过设置这些属性,我能够每 15 分钟使用一次消息。
spring.cloud.stream.kafka.binder.consumer-properties.max.poll.interval.ms=1000000
和
使用容器 属性.
设置轮询之间的空闲时间
@Bean
public ListenerContainerCustomizer<AbstractMessageListenerContainer<?,
?>> customizer() {
return (container, dest, group) ->
container.getContainerProperties().setIdleBetweenPolls(idlePollTimeout);
}
我想每 15 分钟以批处理模式消费消息。 为此,我设置了这些属性,
spring.cloud.stream.kafka.binder.consumer-properties.max.poll.records=5000000
spring.cloud.stream.kafka.binder.consumer-properties.fetch.max.wait.ms=900000
spring.cloud.stream.kafka.binder.consumer-properties.fetch.min.bytes=500000000
当我在 10000
到 30000
之间设置此 属性 spring.cloud.stream.kafka.binder.consumer-properties.fetch.max.wait.ms
10 秒或 30 秒时,消费消息工作正常。
但是,如果我将 fetch.max.wait.ms
增加到 1 分钟或更长时间,即使等待时间结束,它也不会消耗消息。
我知道默认值为 500 毫秒,但如果我增加它会不会有问题??
以及如何获得所需的行为(消费者在再次消费该批次之前等待 10-15 分钟)??
我可以使用 max.poll.interval.ms
吗?
通过设置这些属性,我能够每 15 分钟使用一次消息。
spring.cloud.stream.kafka.binder.consumer-properties.max.poll.interval.ms=1000000
和
使用容器 属性.
设置轮询之间的空闲时间 @Bean
public ListenerContainerCustomizer<AbstractMessageListenerContainer<?,
?>> customizer() {
return (container, dest, group) ->
container.getContainerProperties().setIdleBetweenPolls(idlePollTimeout);
}