使用Python Qpid / Proton / Messenger(),如何过滤来自Azure事件中心的消息?

时间:2017-01-24 16:54:16

标签: python azure qpid

这个要点展示了如何使用Messenger()从Azure事件中心接收消息。它很棒。

https://gist.github.com/tomconte/e2a4667185a9bf674f59

但是,使用此技术会生成Event Hub中的所有消息。我想读取消息,因为偏移或时间戳(不关心哪些)。我可以在Qpid文档中看到如何设置这些要求,但在使用Messenger()时却没有。

以下是Qpid文档中的相关部分: https://qpid.apache.org/releases/qpid-proton-0.16.0/proton/python/api/index.html

以及展示如何使用它的示例: qpid.apache.org/releases/qpid-proton-0.16.0/proton/python/examples/selected_recv.py.html

问题:是否有可能,如果可能的话?

1 个答案:

答案 0 :(得分:0)

根据我的理解,我想你想要读取以EventHub上的偏移量或时间戳开头的事件数据。我回顾了所有课程和用于C#/ Java的EventHub SDK的方法,然后没有任何方法支持这种用法来消耗EventHub上的分区的事件数据。 Apache Qpid是一个支持Java / C / Python的AMQP协议的库,而EventHub支持AMQP,但它并不意味着EventHub支持Qpid的所有方法。

有两种解决方案可供您解决。

  1. 接收EventHub上的所有消息,并为您过滤掉这些消息。
  2. Using Azure Stream Analytics to create an output pipeline用于将消息输出到其他存储,例如Table Storage,DocumentDB,然后您可以使用您需要的偏移量/时间戳从其他存储中检索这些数据。