【问题标题】:Vert.x kafka consumers are pausing between fetching recordsVert.x kafka 消费者在获取记录之间暂停
【发布时间】:2021-03-26 13:43:57
【问题描述】:

我看到,即使 kafka 主题有很多消息(数百万)排队,vert.x 消费者也只获取 500 条消息(默认获取量),然后将其传递给处理程序.但是在消息被处理并提交后,消费者只是停止并等待大约 35 秒,直到它获取另一批消息。

我希望消费者会继续获取,直到它设法赶上分区然后暂停。我该如何做到这一点?

使用以下代码设置消费者:

kafkaConsumer.subscribe(topic, result -> {
            if (result.succeeded()) {
                log.info("Kafka consumer successfully subscribed to topic {}", topic);
            } else {
                log.error("Kafka consumer failed to subscribe to topic {}", topic);
            }
            promise.handle(result);
        });

消费者配置如下:

group.id = somegroup
auto.offset.reset=latest
enable.auto.commit=false
max.poll.interval.ms=300000
max.poll.records=500
session.timeout.ms=10000
heartbeat.interval.ms=3000

我使用的是 vert.x 3.9.2 而 Kafka 是 2.4.1

【问题讨论】:

    标签: vert.x


    【解决方案1】:

    延迟是由多种原因造成的。最臭名昭著的原因是批量提取中的每条消息都是手动按顺序提交的。使用自动提交可以加快速度,我相信提交批量偏移会加快速度。

    【讨论】:

      猜你喜欢
      • 2016-09-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-21
      • 2022-01-20
      • 1970-01-01
      • 2017-09-23
      • 1970-01-01
      相关资源
      最近更新 更多