使用 Python Qpid/Proton/Messenger(),如何过滤来自 Azure 事件中心的消息?
Posted
技术标签:
【中文标题】使用 Python Qpid/Proton/Messenger(),如何过滤来自 Azure 事件中心的消息?【英文标题】:Using Python Qpid/Proton/Messenger(), how do I filter messages from Azure Event Hubs? 【发布时间】:2017-06-09 14:09:45 【问题描述】:这个要点展示了如何使用 Messenger() 从 Azure 事件中心接收消息。效果很好。
https://gist.github.com/tomconte/e2a4667185a9bf674f59
但是,使用此技术会在事件中心中生成所有消息。我想阅读自偏移量或时间戳以来的消息(不在乎哪个)。我可以在 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】:根据我的理解,我认为您想读取以 EventHub 上的偏移量或时间戳开头的事件数据。我查看了适用于 C#/Java 的 EventHub SDK 的所有类和方法,然后没有任何方法支持这种使用 EventHub 上的分区中的事件数据的用法。 Apache Qpid是Java/C/Python支持AMQP协议的库,EventHub支持AMQP,但不代表EventHub支持Qpid的所有方法。
有两种解决方案可供您解决。
-
在 EventHub 上接收所有消息,并为您过滤这些不受欢迎的消息。
Using Azure Stream Analytics to create an output pipeline 用于将消息输出到其他存储,例如 Table Storage、DocumentDB,然后您可以使用您需要的偏移量/时间戳从其他存储中检索这些数据。
【讨论】:
以上是关于使用 Python Qpid/Proton/Messenger(),如何过滤来自 Azure 事件中心的消息?的主要内容,如果未能解决你的问题,请参考以下文章
Python基础 -- Python环境的安装pip的使用终端运行python文件Pycharm的安装和使用Pycharm基本设置:设置Python文件默认格式