1

这是每 1 秒进行一次高级消费者轮询。会话超时 10 秒。心跳间隔3秒。我期待消费者在会话超时后自动重新连接。这是 librdkakfka 的预期行为,其中消费者可以在循环中愚蠢地调用“consume”,并且任何像这样的网络断开都应该由库自动处理。

我注意到当集群关闭并恢复时,消费者能够自动重新连接。而在这种情况下,由于本地网络问题,心跳请求没有通过并断开连接。生产者没有这个问题,当网络问题在一分钟内解决时,他们能够毫无问题地生产到集群。

从日志

LOG-5-REQTMOUT: [thrd:GroupCoordinator]: GroupCoordinator/25: Timed out HeartbeatRequest in flight(10377 毫秒后,超时 #0) LOG-4-REQTMOUT: [thrd:GroupCoordinator]: GroupCoordinator/25: Timed out 1 in- flight, 0 retry-queued, 0 out-queue, 0 part-sent requests ERROR (Local: Timed out): GroupCoordinator: 1 request(s) timeout: disconnect (after 3498718ms in state UP) RebalanceCb: Local: Revoke partitions: LOG-4-COMMITFAIL:[thrd:main]:x/x 分区的偏移提交(取消分配)失败:本地:等待协调器:错误(本地:代理传输失败):ssl://xxxx:p:接收失败:SSL 传输错误:连接超时(在状态 UP 3514121 毫秒后)错误(本地:所有代理连接已关闭):11/11 代理已关闭 LOG-4-REQTMOUT:[thrd:GroupCoordinator]:GroupCoordinator/25:飞行中超时 0,0 个重试队列,2 个出队列,0 个部分发送的请求

4

1 回答 1

1

将 librdkafka 升级到 1.3.0 后得到解决

于 2020-07-03T04:54:40.543 回答