2013-11-21 10 views
36

उन amqp क्लाइंट पुस्तकालयों के बीच अंतर क्या हैं? सबसे ज्यादा अनुशंसित कौन सा है? प्रमुख अंतर क्या हैं?amqp बनाम amqplib - जो Node.js amqp क्लाइंट लाइब्रेरी बेहतर है?

+0

"कौन सा सबसे अधिक अनुशंसित है" एक व्यापक प्रश्न है। हालांकि, दो अन्य अच्छे हैं। –

उत्तर

43

मैं amqp.node और bramqp को नोड-एमक्यूपी पर अनुशंसा करता हूं। नोड-एएमक्यूपी में बहुत सारी बग है और इसे खराब तरीके से बनाए रखा जाता है, और यह "चैनल" अवधारणा को छुपाता है जो खरगोश सर्वर के लिए बहुत सी समस्याएं पेश करता है (क्योंकि वे कभी बंद नहीं होते हैं)।

+0

मैं ब्रैमप और एमकप्लिब के साथ काम कर रहा हूं, और ब्रैमक पॉइंट इस समय तक एक पूर्ण लाइब्रेरी समाधान हो सकता है। मुझे amqp कमांड के 'प्रत्यक्ष' उपयोग को "हैंडल" ऑब्जेक्ट थ्रूग करना पसंद है, इसलिए आपके लिए बिंदु;) धन्यवाद दोस्त! –

+4

पॉइंटिंग नोड-एएमपीपी छिपाने के लिए +1 "चैनल" अवधारणा है जिसे मैं 2 दिनों से खोज रहा था। – ajay

+0

मैं दूसरा कर सकता हूं कि नोड-एएमकपी एक खराब मॉड्यूल है। वर्तमान में amqplib का उपयोग कर रहे हैं और अब तक खुश हैं। – afreeland

2

मैं node-amqp

npm install amqp 

उपयोग किया गया है यह RabbitMQ द्वारा सिफारिश की एक जिसके कारण मैं इसे प्रयोग कर रहे है। जो कुछ मैं कर रहा हूं, उससे यह मॉड्यूल मैंने देखा है कि अन्य पुस्तकालयों की तुलना में अधिक शुष्क और पठनीय है।

+0

क्या आप नोड-एएमपीपी में चैनल बना सकते हैं? – ajay

+1

ध्यान दें कि आपका लिंक 2010 में पोस्ट किया गया था। – Catfish

42

मैं वह आदमी हूं जिसने ब्रैमप लाइब्रेरी लिखी है। इसलिए मैं शुरुआत से स्वीकार करने जा रहा हूं कि मैं थोड़ी पक्षपातपूर्ण हो सकता हूं। : पी

मेरी राय में, जब तक आप कल्पना को जानते हैं, bramqp ठीक काम करना चाहिए। अन्यथा, का उपयोग amqp.node


निम्नलिखित AMQP node.js. के लिए उपलब्ध पुस्तकालय हैं

amqplib/amqp.node - वादा शैली, अभी भी अद्यतन, सुंदर स्थिर और आसान

bramqp लग रहा है - AMQP कार्यों के लिए एक पूर्ण निम्न स्तर पहुँच प्रदान करता है,

amqp-coffee बाहर शुरू करने के लिए अनुशंसित नहीं - AMQP के समान coffeescript कार्यान्वयन/नोड AMQP

amqp/node-amqp - लोकप्रिय, फिक्स्ड एपीआई, अक्सर अद्यतन नहीं कुछ अजीब कीड़े, स्थिर लेकिन सीमित


निम्नलिखित पुस्तकालयों, पिछले पुस्तकालयों में से एक का उपयोग करते हुए एक आसान उपलब्ध कराने इंटरफ़ेस या जोड़ने सुविधाओं का उपयोग करने

rabbit.js का उपयोग करता amqplib/amqp.node

wascally का उपयोग करता amqplib/amqp.node

amq amqplib/amqp.node का उपयोग करता

amqpea का उपयोग करता bramqp

easy-amqp

rabbus wascally का उपयोग करता


मैं भी node-amqp10 अलग से जोड़ने के लिए, के रूप में यह 1.0 सर्वर AMQP से जुड़ सकते हैं जा रहा हूँ AMQP/नोड AMQP उपयोग करता है।

यदि कोई और है जो मुझे जोड़ना है, तो बस मुझे बताएं।

+1

पूरी तरह से सहमत हैं, ब्रैमकप दिखता है और अधिक मजबूत और सीधा दिखता है, लेकिन इसका उपयोग शुरू करने और समझने के लिए थोड़ा और प्रयास करने की आवश्यकता है। अन्य पुस्तकालयों में प्रत्येक के पास स्वयं के तरीकों और तकनीकों के लिए ही है या केवल amqp के कुछ funtions की कमी है। क्या इस बार ब्रैमकप को चुनने का मेरा कारण है –

+1

अच्छे पुस्तकालयों में से एक के निर्माता से उपयोगी तुलना। नोड-एएमपीपी लाइब्रेरी का उपयोग करते हुए नोड और खरगोश एमक्यू पर कई चर्चाएं हैं। मुझे यह भी स्थापित किया गया था कि बाद में बेहतर संसाधन प्रबंधन के लिए एकल टीसीपी कनेक्शन पर चैनलों का उपयोग पाया गया। लेकिन नोड-एएमपीपी में इसकी हैंडलिंग नहीं मिल सका। जैसा कि ऊपर, कार्ल द्वारा इंगित किया गया है, और अब आप amqp.node का उपयोग करने की योजना बना रहे हैं क्योंकि अब नया है लेकिन निश्चित रूप से ब्रैम्पक का पता लगाता है जब खरगोश एमक्यू पर बेहतर नियंत्रण होता है। – ajay

0

बस खुद rabbitmq सीखना शुरू किया। मैंने अन्य ब्लॉगों से पाया है कि ampq।नोड अच्छी तरह से स्वीकार किया जाता है। एक और जिसे मैंने पाया है (परीक्षण नहीं किया गया) अवैध रूप से है। https://github.com/LeanKit-Labs/wascally

2

मैंने थोड़ी देर के लिए दोनों का उपयोग किया। पहली नज़र में, ऐसा लगता है कि नोड-एएमक्यूपी (एमएमपीपी) अधिक पर्याप्त है लेकिन वास्तव में इसमें बहुत सारी बग हैं और कोई भी उन्हें ठीक नहीं कर रहा है। उदाहरण के लिए,

  1. RabbitMQ के MQTT और STOMP एडाप्टर AMQP उपयोग करने वाले ग्राहकों के साथ उन 2 प्रोटोकॉल का उपयोग ग्राहकों के बीच संचार की अनुमति चाहिए, लेकिन नोड AMQP सिर्फ MQTT या STOMP द्वारा भेजे गए संदेशों को पार्स करने में विफल रहता है, जबकि amqp.node (amqplib) कर सकते हैं।
  2. नोड-एएमक्यूपी (एमएमपीपी) ने ऑटो-रीकनेक्टिंग लागू की है और इसलिए आकस्मिक डिस्कनेक्शन पर अपवाद नहीं फेंकते हैं। इसका मतलब है कि आपको अंतर्निहित रीकनेक्टिंग का उपयोग करने के लिए मजबूर किया जाएगा, आप डिस्कनेक्शन का पता नहीं लगा सकते हैं और इसे स्वयं संभाल सकते हैं। हालांकि, इसकी पुन: कनेक्टिंग हमेशा कनेक्शन की संख्या को दोगुना करती है। यह अंततः क्लाइंट और सर्वर दोनों को समाप्त कर देगा। मैं amqp.node (amqplib) के साथ अपने स्वयं के पुनः कनेक्टिंग फ़ंक्शन को कोड करना चाहता हूं।

मैंने www.robomq.io द्वारा प्रदान किए गए ब्रोकर के साथ इसका परीक्षण किया, यह एक अच्छा है इसलिए दोष पुस्तकालय का होना चाहिए। हालांकि Node.js में एक परिपूर्ण लाइब्रेरी को कार्यान्वित करना कठिन है।

वैसे, आप https://github.com/robomq/robomq.io/tree/master/sdk/AMQP/Node.js पर 5 परिदृश्यों में amqp.node (amqplib) का उपयोग करके उदाहरण कोड का पूरा सेट पा सकते हैं और http://robomq.readthedocs.org/en/latest/one-one/#nodejs पर दस्तावेज़।

0

https://github.com/guidesmiths/rascal#rascal भी उल्लेख के लायक है। यह amqplib के शीर्ष पर बनाया गया है, और इसमें ऑटो रिकनेक्शन लॉजिक, कॉन्फ़िगरेशन आधारित सदस्यता/प्रकाशन और टीडीडी के लिए अच्छा समर्थन जैसे उपयोगी विशेषताओं का एक सेट है।

संबंधित मुद्दे