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