apache-kafka - Kafka 消费者是在 poll() 上旋转还是被代理的广播/信号唤醒?
问题描述
如果我poll()
从一个consumer
声明while True:
中,我看到那poll()
是阻塞的。如果消费者是最新的来自主题的消息(offset = OFFSET_END
)消费者是如何进行阻塞的poll()
?
消费者是否默认遵循发布/订阅心态,在这种心态中它会休眠并等待来自代理的发布和广播/信号?
还是消费者不断地旋转自己检查主题?
如果这很重要,我正在使用 confluent python 客户端。
谢谢!
解决方案
kafka 消费者基本上是长轮询循环,由调用 poll() 的用户线程(异步)驱动。
整个协议是请求响应的,并且完全由客户端驱动。没有经纪人发起的“推动”形式。
fetch.max.wait.ms 控制任何单个代理在响应之前将等待多长时间(如果没有数据),而用户线程的阻塞由 poll() 的参数控制
推荐阅读
- powershell - 如何在powershell中将字符串变量的编码更改为UTF8
- django - Django password_reset url 和 password_reset_confirm
- javascript - 函数返回未定义的结果
- excel - 表的大小会影响索引匹配的性能吗?
- asp.net - MVC ASP NET Core,使用 ActionLinks 保持路由 URL
- python - Unicode 格式
- python - 如何摆脱matplotlib保存的图形中的边距?
- sql - SQL Server 临时表 - 如何输入不是“现在”的行?
- mysql - MariaDB 相当于 Oracle WHENEVER SQLERROR
- azure - 查看 Hive 查询中使用的节点数