gpt4 book ai didi

java - 卡夫卡 : Java client that blocks read and doesn't poll

转载 作者:行者123 更新时间:2023-11-29 04:51:50 25 4
gpt4 key购买 nike

我想知道是否有一个 java 客户端代码是一个 Kafka 消费者,它能够通过推送通知/阻塞读取而不是当前轮询来读取数据:

 final KafkaConsumer<String, String> consumer = new KafkaConsumer<String, String>(props);
consumer.subscribe(Arrays.asList("test"));
new Thread(){
@Override
public void run()
{
while (true)
{
ConsumerRecords<String, String> records = consumer.poll(100); //poll
for (ConsumerRecord<String, String> record : records)
{
System.out.printf("offset = %d, key = %s, value = %s", record.offset(), record.key(),
record.value());
System.out.println();
callback.onMessage(record.value());
}
}
}
}.start();

最佳答案

如果我对您的问题的理解正确,您希望在数据可用时将数据推送给消费者,而不是让消费者负责检查新数据并提取数据。

https://kafka.apache.org/08/design.html 上,他们讨论了推送与拉取以及在 Kafka 中做出的选择,其中生产者将消息推送到代理并消费者从经纪人那里拉。他们还提到了他们为防止基于拉动的方法的缺点所做的尝试。如果您需要推送式发布/订阅消息系统,您可能需要查看链接中也提到的 Scribe 或 Flume :)

关于java - 卡夫卡 : Java client that blocks read and doesn't poll,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35177223/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com