首页 > 解决方案 > Kafka 消费者是在 poll() 上旋转还是被代理的广播/信号唤醒?

问题描述

如果我poll()从一个consumer声明while True:中,我看到那poll()是阻塞的。如果消费者是最新的来自主题的消息(offset = OFFSET_END)消费者是如何进行阻塞的poll()

消费者是否默认遵循发布/订阅心态,在这种心态中它会休眠并等待来自代理的发布和广播/信号?

还是消费者不断地旋转自己检查主题?

如果这很重要,我正在使用 confluent python 客户端。

谢谢!

标签: apache-kafkakafka-consumer-api

解决方案


kafka 消费者基本上是长轮询循环,由调用 poll() 的用户线程(异步)驱动。

整个协议是请求响应的,并且完全由客户端驱动。没有经纪人发起的“推动”形式。

fetch.max.wait.ms 控制任何单个代理在响应之前将等待多长时间(如果没有数据),而用户线程的阻塞由 poll() 的参数控制


推荐阅读