用于 AMQP 的优秀 Python 库 [已关闭]

问题描述 投票:0回答:4

您能推荐使用什么Python库来访问AMQP(RabbitMQ)吗?根据我的研究,

pika
似乎是首选。

python rabbitmq amqp
4个回答
26
投票

我自己的研究使我相信正确使用的库是Kombu,因为这也是 Celery(@SteveMc 提到的)已经过渡到的库。我也在使用 RabbitMQ 并成功使用 Kombu 和默认的 amqplib 后端。

Kombu 还支持同一 API 背后的其他传输。如果您需要替换 AMQP 或添加像 redis 这样的东西,这很有用。不过还没试过。

旁注:Kombu 目前不支持最新的鼠兔版本(如果您出于某种原因依赖它)。目前仅支持 5.2.0,这让我很困扰。


22
投票

Pika 是 RabbitMQ 推荐的库,还提到了 py-ampqlib。根据您使用 Rabbit 的目的,您可能还需要查看 Celery(专用于分布式队列的客户端库)。

同样,根据使用情况,您可能还想查看 Apache 的 qpid,它是 RabbitMQ 的完整基于 AMPQ 的客户端-服务器替代方案。 qpid 吸引我们的一件事是它似乎对服务器崩溃具有更好的鲁棒性(队列以分布式方式持久化)。


3
投票

在查看了所有这些库之后,我现在确信正确的答案不是它们。相反,在您选择的任何库上构建一个抽象层作为垫片,因为您必然会遇到必须更改库的情况。

但请记住,如果您坚持使用相同版本的 AMQP 协议,这些库确实可以互操作。由于正在测试不同的库,我们有部分原型应用程序运行 pika、kombu 和 py-amqplib。

阅读这篇关于 用 pika 替换 amqplib 的博客,了解为什么这是一个好主意。


2
投票
我目前正在让我们的 Python 应用程序使用 SSL。我最初并没有开发这个应用程序(我也不是 Python 开发人员),所以我对此了解不多,但我们似乎在 Twisted

中使用了AMQP Client。

QPid也有一个。再说一次,我不知道质量。

© www.soinside.com 2019 - 2024. All rights reserved.