2010-02-14 12 views
9

हम सी ++ कोड लिख रहे हैं जिसके लिए संदेश की आवश्यकता है। क्या कोई फ्री/ओपन-सोर्स और स्थिर एएमक्यूपी सर्वर उपलब्ध है जिसमें इसके साथ समान रूप से स्थिर सी ++ क्लाइंट लाइब्रेरी है। हमें उपयोगकर्ताओं को हमारे कोड का पायथन इंटरफ़ेस भी प्रदान करने की आवश्यकता है (विचार सी ++ में अधिकतम सामान करना है और पाइथन में एपीआई का पर्दाफाश करना है)।AMQP C++ कार्यान्वयन

इसे प्राप्त करने का सबसे अच्छा तरीका क्या हो सकता है।

+0

हाय, यह करने के लिए इतनी धीमी गति से जवाब देना होने के लिए खेद है। हमने अभी पाया है। खरगोश एमक्यू सी क्लाइंट लेने और सी ++ में इसके लिए एक इंटरफ़ेस प्रदान करने में रुचि है जो सी ++ मुहावरे का पालन करता है। इस पर रॉबिटएमक्यू मेलिंग सूची पर चर्चा की गई है, जो कि यदि आपके कोई प्रश्न हैं तो मैं अनुशंसा करता हूं। एक मसौदा इंटरफेस प्रस्तावित किया गया है। लेकिन, सी क्लाइंट का उपयोग क्यों न करें? कृपया संपर्क में रहें और हमें बताएं। आप [email protected] ईमेल कर सकते हैं या rabbitmq-चर्चा पर पोस्ट कर सकते हैं। चीयर्स एलेक्सिस – alexis

उत्तर

1

एएमक्यूपी समझने के लिए काफी जटिल हो सकता है - मैं सुझाव देता हूं कि आपकी संचार परत को कोड करने के लिए Protocol Buffers का उपयोग करें, यह दोनों पायथन और सी ++ उत्पन्न करता है। यदि आपकी ज़रूरतें बहुत जटिल हैं तो मैं ICE का सुझाव दूंगा क्योंकि यह हर प्रोग्रामिंग भाषा का समर्थन करता है जिसे आप सोच सकते हैं, और मेरा मानना ​​है कि यह प्रोटोकॉल बफर प्रारूप को भी संभालता है।

- संपादन -

आप AMQP उपयोग करने जा रहे हैं, तो आप Zero MQ पर गौर करना चाहिए। इसमें एएमक्यूपी का सी ++ कार्यान्वयन है। हालांकि वे इसे शुद्ध-सी कार्यान्वयन के लिए पोर्ट कर रहे हैं।

+0

धन्यवाद हसन, परियोजना है कि मैं पहले से ही पर काम कर रहा हूँ जावा क्लाइंट API (खरगोश MQ) के साथ AMQP का उपयोग करता है तो हम मध्यस्थ के रूप उपयोग AMQP जारी रखना चाहते हैं, हालांकि मैं एक अच्छा सी ढूँढने में सक्षम ++ ग्राहक नहीं कर रहा हूँ किसी भी ओपन सोर्स एएमक्यूपी के लिए कार्यान्वयन। –

+0

प्रोटोकॉल बफर के लिए कोई लेनदेन कतार तत्व है? मैंने सोचा कि यह पूरी तरह से एक serialization तंत्र था? –

+0

इसमें कोई लेनदेन कतार नहीं है। –

2

Apache QPid यहां प्रासंगिक प्रतीत होता है। एक सी ++ ब्रोकर/क्लाइंट लाइब्रेरी here है।

ध्यान दें कि चूंकि आप प्रोटोकॉल (एएमक्यूपी) प्रोग्रामिंग कर रहे हैं, आपके ब्रोकर/क्लाइंट को उसी भाषा में में होना आवश्यक नहीं है। जैसे मैं Scala और C# क्लाइंट्स का उपयोग कर रहा हूं RabbitMQ (एक Erlang ब्रोकर) से बात कर रहा हूँ।

+0

धन्यवाद ब्रायन, मुझे मिल गया, इसलिए मैं अपना प्रश्न सही करता हूं, क्या एक एएमक्यूपी ब्रोकर है जिसमें अच्छी स्थिर सी ++ क्लाइंट लाइब्रेरी सपोर्ट है। –

+0

मैं क्यूपीआईडी ​​की स्थिरता पर टिप्पणी नहीं कर सकता, मुझे डर है। मैं ब्रोकर स्थिरता के बारे में अधिक चिंतित हूं, क्योंकि इसे स्वतंत्र रूप से चलाने और विश्वसनीय कतार/वितरण आदि का प्रबंधन करना है। RabbitMQ अच्छी तरह से काम करता प्रतीत होता है। मुझे संदेह है कि काम करना आपके विशेष परिदृश्य में क्यूपीआईडी ​​/ खरगोश एमक्यू चलाने के लिए है और देखें कि यह कैसे किराया करता है। –

8

भविष्य के संदर्भ के लिए, Apache Qpid पर एक नज़र डालें - इसमें सी ++ क्लाइंट लाइब्रेरी है और यह बहुत अच्छा है। आपके उपयोग-मामले की समस्या यह है कि खरगोश एएमक्यूपी 0-8 लागू करता है और क्यूपिड सी ++ क्लाइंट एएमक्यूपी 0-10 वार्तालाप करता है।

0

मुझे पता है कि यह थोड़ा देर हो चुकी है, मैं पूछताछ के समान स्थिति में हूं।

मैं IceStorm और उपरोक्त प्रति अपाचे क्यूपीड देख रहा हूं।

वर्तमान में मेरे पास खरगोश एमक्यू है लेकिन सी ++ के साथ एकीकृत करना इतना आसान नहीं है।

मुझे लगता है कि यदि आपके पास क्लाइंट और सर्वर कोड दोनों पर नियंत्रण है, और आपको एएमक्यूपी "मानक" और आइसस्टॉर्म की आवश्यकता नहीं है, तो आप जीपीएल लाइसेंस (या लाइसेंस खरीदने के लिए तैयार हैं) शून्य सी से) .. IceStorm वहाँ सबसे स्थिर और पार भाषा समाधान लगता है।