您能推薦用於訪問AMQP(RabbitMQ)的Python庫嗎?從我的研究pika
似乎是首選。用於AMQP的良好Python庫
24
A
回答
18
皮卡是RabbitMQ推薦的圖書館,並且py-ampqlib也被提及。根據您使用的是Rabbit,您可能還需要查看Celery(專用於分佈式排隊的客戶端庫)。
同樣,根據使用情況,您可能還想看看Apache的qpid,這是一個完全基於AMPQ的客戶端服務器,替代RabbitMQ。吸引我們參與qpid的一件事是,它似乎在服務器崩潰時具有更好的健壯性(隊列以分佈式方式持久存在)。
1
我目前正在使我們的Python應用程序使用SSL。我最初並沒有開發這個應用程序(我也不是Python開發人員),所以我對它不太瞭解,但我們似乎使用AMQP Client in Twisted。
QPid也有一個。再次,我不知道質量。
22
我自己的研究讓我相信,正確的庫使用將是Kombu,因爲這也是芹菜(由@SteveMc提到)已經過渡到。我也使用RabbitMQ,併成功使用Kombu與默認的amqplib後端。
Kombu在相同的API後面也支持other transports。如果您需要更換AMQP或添加諸如redis之類的東西,那麼這很有用。雖然沒有嘗試過。
旁註:Kombu目前不支持最新的pika發佈(因爲某些原因,您應該依賴它)。目前只支持5.2.0,這有點讓我回想起來。
2
看過所有這些圖書館後,我現在確信沒有一個是正確的答案。相反,建立一個抽象層作爲你選擇的任何庫的基礎,因爲你一定會遇到必須改變庫的情況。
但是請記住,如果您堅持使用相同版本的AMQP協議,這些庫可以互操作。由於不同的庫正在測試,我們有部分原型應用程序運行pika,kombu和py-amqplib。
閱讀這個博客約replacing amqplib with pika爲什麼這是一個好主意的感覺。
相關問題
- 1. 用於設計mmo的良好python庫?基於演員設計
- 2. 用於BlackBerry的良好LDAP庫?
- 3. 用於C的良好SMTP + SSL/TLS庫?
- 4. 用於SOAP的良好C++庫
- 5. 用於.NET的良好Tiff庫
- 6. 用於TCP重組的良好庫
- 7. 用於生成音頻文件的良好python庫?
- 8. 用於構建TCP服務器的良好Python網絡庫?
- 9. 用於HTML的良好IDE
- 10. 良好的PHP Rest Api庫
- 11. PHP的良好變形庫?
- 12. 良好的PHP驗證庫
- 13. 良好的類STL庫C
- 14. 良好的javascript圖庫
- 15. R或Python中用於分析網絡/圖形數據的良好庫
- 16. 用於使用TDD和MVC3的良好庫
- 17. 用於在Java中配對的密碼學的良好庫
- 18. 用於學習重構的良好的開源代碼庫
- 19. 的Python + Q(KDB) - 該工具易於使用和維護良好
- 20. amqp vs amqplib - 哪個Node.js amqp客戶端庫更好?
- 21. 適用於Android的良好ORM工具?
- 22. 用於代碼片段的良好WSYIWIG
- 23. 用於XAML的良好RAD工具
- 24. 用於調試Codeigniter的良好PHP IDE?
- 25. 任何用於顯示大型位圖的良好C++庫
- 26. 適用於FL SDK和VST的良好C++ GUI庫
- 27. 用於HTTPS連接的良好C++庫?證書由證書autority
- 28. 用於快速流/批處理三角(Atan)的良好.NET庫?
- 29. 用於C#的良好線性編程庫?
- 30. 用於視頻處理的良好庫/技術
我剛剛發現,芹菜創建一個隊列每個任務這是一個令人失望的弱點http://celeryproject.org/docs/userguide/tasks.html#amqp-result-backend – 2011-04-26 07:29:10
我們還沒有發現這是一個問題;我們的使用任務很快就會消耗殆盡(我們很少期望任何事情都會持續幾秒鐘)。它也可能是特定於實現的 - 它們在那裏特別提到了RabbitMQ。我有興趣知道它是否會給你造成困難。 – SteveMc 2011-04-26 19:24:50
從未嘗試芹菜,因爲它似乎不適合整體AMQP架構。消息隊列不僅用於將任務分配給工作人員池。 – 2011-04-27 00:54:30