AMQP

2011-02-17 16 views
24

के लिए अच्छी पायथन लाइब्रेरी क्या आप AMQP (RabbitMQ) तक पहुंचने के लिए उपयोग करने के लिए पाइथन पुस्तकालय की सिफारिश कर सकते हैं? मेरे शोध से pika पसंदीदा माना जाता है।AMQP

उत्तर

18

पिका खरगोश एमक्यू अनुशंसित पुस्तकालय है, और py-ampqlib का भी उल्लेख किया गया है। आप किस चीज का उपयोग कर रहे हैं उसके आधार पर, आप Celery (वितरित क्यूइंग के लिए समर्पित क्लाइंट लाइब्रेरी) को भी देखना चाहेंगे।

फिर, उपयोग के आधार पर, आप अपाचे के qpid पर भी देखना चाहेंगे जो कि RabbitMQ के लिए एक पूर्ण एएमपीक्यू-आधारित क्लाइंट-सर्वर विकल्प है। एक चीज जिसने हमें क्यूपिड को आकर्षित किया था, यह था कि सर्वर क्रैश पर बेहतर मजबूती होती है (कतार एक वितरित फैशन में बनी रहती है)।

+6

मुझे पता चला कि अजवाइन प्रति कार्य एक कतार बनाता है जो एक निराशाजनक कमजोरी है http://celeryproject.org/docs/userguide/tasks.html#amqp-result-backend –

+0

हमें यह कोई समस्या नहीं मिली है ; हमारे उपयोग कार्यों को जल्दी से उपभोग किया जाता है (हम शायद ही कभी कुछ सेकंड से अधिक समय तक बैठे होने की अपेक्षा करते हैं)। यह कार्यान्वयन-विशिष्ट भी हो सकता है - वे विशेष रूप से वहां RabbitMQ का उल्लेख करते हैं। मुझे यह जानने में दिलचस्पी होगी कि क्या यह आपको कठिनाइयों का कारण बन रहा है। – SteveMc

+0

ने कभी भी अजवाइन की कोशिश नहीं की क्योंकि यह समग्र एएमक्यूपी आर्किटेक्चर के साथ फिट नहीं लग रहा था। संदेश कतार केवल श्रमिकों के पूल में कार्यों को वितरित करने के लिए नहीं है। –

1

मैं वर्तमान में हमारे पायथन ऐप का उपयोग SSL बनाने के बीच में हूं। मैंने मूल रूप से इस एप्लिकेशन को विकसित नहीं किया था (न ही मैं एक पाइथन डेवलपर हूं), इसलिए मुझे इसके बारे में बहुत कुछ पता नहीं है, लेकिन हम AMQP Client in Twisted का उपयोग करते हैं।

QPid में भी एक है। फिर, मुझे गुणवत्ता नहीं पता।

+0

मैंने संक्षेप में txAMQP को देखा लेकिन विकास – dgorissen

22

मेरे स्वयं के शोध ने मुझे विश्वास दिलाया कि उपयोग करने के लिए सही लाइब्रेरी Kombu होगी, क्योंकि यह भी है कि सेलरी (@SteveMc द्वारा उल्लिखित) में संक्रमण हुआ है। मैं RabbitMQ का भी उपयोग कर रहा हूं और डिफ़ॉल्ट रूप से डिफ़ॉल्ट amqplib बैकएंड के साथ Kombu का उपयोग किया है।

कोम्बू उसी API के पीछे other transports का भी समर्थन करता है। उपयोगी अगर आपको एएमक्यूपी को प्रतिस्थापित करने की आवश्यकता है या मिश्रण में रेडिस की तरह कुछ जोड़ना है। हालांकि कोशिश नहीं की है।

सिडेनोट: कोम्बू वर्तमान में नवीनतम पिका रिलीज का समर्थन नहीं करता है (क्या आप इसे किसी कारण से भरोसा करते हैं)। वर्तमान में केवल 5.2.0 समर्थित है, यह मुझे थोड़ी देर पहले थोड़ा सा है।

+0

को स्थिर कर दिया गया है, आपको अब यह प्रतिक्रिया अपडेट करनी चाहिए कि, जिस मुद्दे से आप लिंक करते हैं, उसके अनुसार आपने अपनी गलती की खोज की है और यह किम्बू नहीं था जो टूट गया था। –

+1

@ ब्रैंडन क्रेग रोड्स: किया :) – dgorissen

2

इन सभी पुस्तकालयों को ध्यान में रखते हुए, अब मुझे आश्वस्त है कि सही उत्तर उनमें से कोई नहीं है। इसके बजाए, जो भी लाइब्रेरी आप चुनते हैं उस पर एक झुकाव के रूप में एक अमूर्त परत बनाएं क्योंकि आप ऐसी स्थिति में भागने के लिए बाध्य हैं जहां आपको पुस्तकालयों को बदलना है।

लेकिन याद रखें, कि यदि आप एएमक्यूपी प्रोटोकॉल के समान संस्करण में चिपके रहते हैं, तो ये पुस्तकालय इंटरऑपरेट करते हैं। विभिन्न पुस्तकालयों का परीक्षण किया जा रहा है, हमारे पास एक प्रोटोटाइप अनुप्रयोग के भाग थे जो पिका, कोम्बू और पी-अम्प्लिब चल रहे थे।

इस ब्लॉग को replacing amqplib with pika के बारे में यह समझने के लिए पढ़ें कि यह एक अच्छा विचार क्यों है।