您能推荐用于访问AMQP(RabbitMQ)的Python库吗?从我的研究pika
似乎是首选。
答案 0 :(得分:23)
我自己的研究让我相信正确使用的库将是Kombu,因为这也是Celery(由@SteveMc提到)转换到的库。我也在使用RabbitMQ并成功使用Kombu和默认的amqplib后端。
Kombu还支持同一API背后的other transports。如果您需要替换AMQP或添加类似redis的东西,则非常有用。虽然没试过。
旁注:Kombu目前不支持最新的鼠兔释放(如果您出于某种原因依赖它)。目前只支持5.2.0,这让我有点回头。
答案 1 :(得分:19)
Pika是RabbitMQ推荐的库,并且还提到了py-ampqlib。根据您使用Rabbit的内容,您可能还需要查看Celery(专用于分布式排队的客户端库)。
同样,根据使用情况,您可能还需要查看Apache的qpid,这是一个完整的基于AMPQ的客户端 - 服务器替代RabbitMQ。吸引我们使用qpid的一件事是,它似乎在服务器崩溃方面具有更好的稳健性(队列以分布式方式持久存在)。
答案 2 :(得分:2)
我目前正在使我们的Python应用程序使用SSL。我最初没有开发这个应用程序(我也不是Python开发人员),所以我对它不太了解,但我们似乎使用了AMQP Client in Twisted。
QPid也有一个。再一次,我不知道质量。
答案 3 :(得分:2)
看了所有这些图书馆之后,我现在确信正确答案都不是。相反,在你选择的任何库中构建一个抽象层作为填充层,因为你必然会遇到必须更改库的情况。
但请记住,如果您坚持使用相同版本的AMQP协议,这些库可以互操作。由于正在测试不同的库,我们有一些原型应用程序的部分运行pika,kombu和py-amqplib。
阅读关于replacing amqplib with pika的博客,了解为什么这是一个好主意。