c# - Kafka Confluent 库中 poll 和 consume 的区别

标签 c# apache-kafka kafka-consumer-api confluent-platform

github 示例 page对于 Confluent Kafka 库列出了两种方法,即 poll 和 consume。两者有什么区别。

我确实看过 Confluent Kafka 库中的 Consumer 实现 here ,并感觉它们在功能上是相同的,只是在它们返回的内容上有所不同。

Poll() 调用 consume() 以查看是否有消息准备好被拾取,如果是,则调用 OnMessage 事件。而消费,将消息保存在它的一个参数中,并返回一个 bool 值。我觉得区别在于实现,功能上它们是一样的 https://github.com/confluentinc/confluent-kafka-dotnet/blob/master/src/Confluent.Kafka/Consumer.cs

最佳答案

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

PollConsume 相同,只是暴露不同语义的消息。 Consume 将在 out 参数中返回消息,而 Poll 返回 null 并将触发 OnMessage 事件。

编辑:在 v1 中只剩下 Consume 调用,不再有混淆。

关于c# - Kafka Confluent 库中 poll 和 consume 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50036052/

相关文章:

apache-kafka - 卡夫卡流 : one record to multiple records

c# - 在 Windows 服务中异步运行外部进程

带有 ref 参数的 c# 静态方法 - 一个好主意?

c# - WPF Combobox isEditable 绑定(bind)条目到列表

apache-kafka - 计算存储在 kafka 主题中的消息数

java - 我的 KafkaSpout 不使用 HDP 中来自 Kafka Brokers 的消息

docker - 如何在 Cloud Foundry 中暴露 Kafka 和 Zookeeper 端口

apache-kafka - 向 Kafka 发送消息时是否需要 key ?

java - jaas.conf 中未选取 KafkaClient 部分

c# - 如何将(和 Marshall)CityHash std::pair<uint64,uint64> 从 C# 转换为 C++,反之亦然