如题,我在生产者端每 0.5 秒发送一个消息,消息大约 4KB 一个
在消费者端配置了下面两个参数,以保证消费者每 10 秒能够回调一次
fetch-min-bytes = Integer.MAX_VALUE (当一次拉取请求的数据小于这个值,就会等待直到满足这个参数,这里我设到最大值)
fetch-max-wait-ms: 10000 (如果等待超过这个值就直接返回,这里设为 10 秒)
同时我是用批量消费的方式进行的,每次回调都会打印一次时间间隔观察实际消费情况,发现消费者在每 10 秒的时候总会拉取两次,但我希望它只拉取一次
KafkaConsumer--->==:10s size:6
KafkaConsumer--->==:0s size:14
KafkaConsumer--->==:9s size:7
KafkaConsumer--->==:0s size:13
所以比较疑惑是触发了哪个参数导致它会多回调一次
btw,我尝试过把下面这些参数都调到最大,但都无济于事
send.buffer.bytes = Integer.MAX_VALUE
receive.buffer.bytes = Integer.MAX_VALUE
max.partition.fetch.bytes Integer.MAX_VALUE
fetch.max.bytes = Integer.MAX_VALUE
max.poll.records = Integer.MAX_VALUE
有没有熟悉 kafka 的大佬帮忙解答一二