使用 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使用cookie登陆网页

Python基础 -- Python环境的安装pip的使用终端运行python文件Pycharm的安装和使用Pycharm基本设置:设置Python文件默认格式

在python使用SSL(HTTPS)

python 爬虫使用方法分享——安装python

python基础之从认识python到python的使用

python文档翻译之使用python解释器