适用于AMQP的优秀Python库

Meh*_*Meh 26 python amqp rabbitmq

你能推荐用于访问AMQP(RabbitMQ)的Python库吗?从我的研究pika似乎是首选.

dgo*_*sen 23

我自己的研究让我相信使用正确的库将是Kombu,因为这也是Celery(由@SteveMc提到)转变为.我也在使用RabbitMQ并成功使用Kombu和默认的amqplib后端.

Kombu还支持同一API背后的其他传输.如果您需要替换AMQP或添加类似redis的东西,则非常有用.虽然没试过.

旁注:Kombu目前不支持最新的鼠兔释放(如果你出于某种原因依赖它).目前只支持5.2.0,这让我回过头来.


Ste*_*eMc 19

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

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

  • 我刚刚发现芹菜为每个任务创建一个队列,这是一个令人失望的弱点http://celeryproject.org/docs/userguide/tasks.html#amqp-result-backend (6认同)
  • 鼠兔上存在很多问题,例如发布大消息失败,心跳超时失败; (4认同)