取得领先
VMware 提供培训和认证,以加速您的进步。
了解更多RabbitMQ 是一个强大的消息代理,基于 高级消息队列协议 (AMQP)。在 之前的文章中,我们研究了如何构建 Python 股票行情程序。我们比较了使用 RabbitMQ 的 pika 和 py-amqplib,以及如何在两者之间轻松转换,只需进行最小的更改。
在本文中,我们将展示如何使用 pika 被 Spring Python 轻松使用。 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。 如果将来需要,可以很容易地迁移到另一个库。