我正在寻找kafka来实现一个低延迟的消息队列,并且我一直在阅读关于消费者长轮询的文章。但是,没有关于如何实际使用长轮询的示例,或者需要设置哪些选项才能启用它。如何使用kafka java api启用长轮询?
发布于 2013-11-11 04:40:59
您不必每次都启用它,因为这是kafka消费者的默认行为。您需要在配置中设置的是fetch.wait.max.ms
。
要实现您想要的目标,有两个重要的值:
fetch.min.bytes
:在向消费者client.fetch.max.wait.ms
:发送响应之前,代理将等待填充此数量的数据。除非具有足够的数据来填充响应(fetch.message.min.bytes
),否则,在向消费者客户端发送响应之前,代理将等待此时间。
一旦达到这两个值中的任何一个,就会向消费者发送响应。获取请求的最长可能时间始终为fetch.max.wait.ms
。
在Kafka Consumer Configs中查找更多配置选项
kafka用户邮件列表对于这样的问题也是一个很好的选择。
https://stackoverflow.com/questions/19588090
复制相似问题