Kafka Confluent库中轮询和消费之间的区别

use*_*121 5 c# apache-kafka kafka-consumer-api confluent-kafka

Confluent Kafka库的github示例页面列出了两种方法,即轮询和消耗。两者有什么区别。

我确实在这里的Confluent Kafka库中查看了Consumer的实现,觉得它们在功能上是相同的,只是返回的内容不同。

Poll()调用consumer()来查看是否有准备接收的消息,如果是,则调用OnMessage事件。而使用,将消息保存在其参数之一中,然后返回布尔值。我觉得实现上有所不同,并且在功能上它们是相同的 https://github.com/confluentinc/confluent-kafka-dotnet/blob/master/src/Confluent.Kafka/Consumer.cs

Vad*_*kan 5

你是对的。 https://github.com/confluentinc/confluent-kafka-dotnet/blob/3f48e8944242abf631ea8d2cd5698f6e149e0731/src/Confluent.Kafka/Consumer.cs#L1147

Poll与 相同Consume,只是公开具有不同语义的消息。Consume将在out参数中返回消息,而Poll返回 null 并将触发OnMessage事件。

编辑:在 v1 中只剩下Consume呼叫,没有更多的混乱。

  • 仅供参考:更新的版本(例如 1.0 测试版)不再具有带 OnMessage 事件的 Poll 函数——这一切都只是通过 Consume 函数实现的。 (3认同)