领先一步
VMware 提供培训和认证,助您加速进步。
了解更多RabbitMQ 是一个强大的消息代理,基于 高级消息队列协议 (AMQP)。在之前的帖子中,我们研究了如何构建一个 Python 股票行情程序。我们比较了使用 RabbitMQ 的 pika 和 py-amqplib,以及如何轻松地在两者之间切换,只需进行最少的更改。
在本文中,我们将展示如何轻松地通过 Spring Python 使用 pika。Spring Python 是 Spring 概念在 Python 语言中的一种实现。它包含了许多功能,例如 依赖注入。如果我们选择用 Python 构建一个类似 Spring 的应用程序,那么利用 pika 将会非常容易。
任何 Spring 应用程序的核心都是一组蓝图或应用程序上下文。对于 Spring Python 和 Spring Java 来说,这是相同的。
正如我确信你已经注意到的,这个上下文不是用 XML 编写的。而是用纯 Python 编写的。这与 Spring Java Config(后来已并入 Spring 核心框架)非常相似。这定义了一个发布者和一个订阅者。下图显示了两个终端窗口。背景窗口显示正在运行的行情分析器应用程序,输出股票行情。如果你仔细看,你会注意到最后一个参数是一个消息,标识符是 290。前景窗口显示了订阅股票行情的经纪公司。它刚刚收到了消息 290,然后打印出了其当前净资产。
[caption id="attachment_5659" align="alignnone" width="784" caption="在 Spring Python 中运行的行情分析器和经纪公司"]
[/caption]
由于我们使用 Spring Python 来注入基于 pika 的 RabbitMQ 客户端,我们可以轻松地将其切换为其他客户端。正如上一篇博文中所指出的,这有助于我们避免锁定,而是根据重要因素选择解决方案:技术优势、供应商支持和业务需求。Pika 已被证明是一个活跃的项目,并得到了开发 RabbitMQ 代理的同一团队的支持。从 py-amqplib 迁移到它很容易,并且支持我们正在使用的任何工具,包括我们刚刚看到的 Spring Python。将来如有需要,迁移到另一个库也将很容易。