0
当代理中没有数据要提取时,消费者会一直处于紧密的循环状态直到数据到达。因此,我想找到一种方法告诉消费者等待,直到经纪人有一些数据。我使用Kafka 0.9 java客户端如何在卡夫卡消费者中阻止拉取请求
当代理中没有数据要提取时,消费者会一直处于紧密的循环状态直到数据到达。因此,我想找到一种方法告诉消费者等待,直到经纪人有一些数据。我使用Kafka 0.9 java客户端如何在卡夫卡消费者中阻止拉取请求
因此,基本上Kafka是基于Pull的客户端,它会继续查询服务器以确定是否有新消息,要么可以有更高的轮询间隔,要么可以使用获取概念.max.wait.ms和fetch.min.bytes,这是文档中关于fetch.min.bytes的说明 - 服务器为获取请求返回的最小数据量。如果数据不足,请求会在回复请求之前等待那么多的数据累积。
使用此属性fetch.min.bytes和fetch.max.wait.ms意味着消费者必须知道将消耗的最小字节量以及等待的时间。但是我正在寻找阻止消费者的东西,直到数据到达,但经纪人会通知消费者。然而,正如拉基系统那样,这些属性在这种情况下似乎是合适的 –