2010-01-23 18 views
8

हम जिस प्रणाली का निर्माण कर रहे हैं वह बाह्य फ़ीड के माध्यम से डेटा प्राप्त कर रहा है। हमारा काम इस डेटा को कई सेवाओं में वितरित करना, गणनाओं को चलाने और अन्यत्र परिणामों को आगे बढ़ाने के लिए है - ठेठ प्रकाशक-ग्राहक स्थिति। हमें जो चाहिए वह बहुत कम विलंबता संदेश है। हमें एमएसएमक्यू जैसे संदेशों को जारी रखने की आवश्यकता नहीं है।खरगोश एमक्यू हाई-स्पीड क्षणिक संदेश प्रदर्शन

क्या खरगोश एमक नरम रीयलटाइम संदेश वितरण के लिए पर्याप्त तेज़ है? क्या कोई मानक हैं? क्या TIBCO Rendezvous के बजाय इसका उपयोग करना अच्छा विचार है? क्या कोई अन्य ओपन सोर्स सॉफ्ट रीयल टाइम मैसेजिंग विकल्प हैं?

धन्यवाद।

उत्तर

14

(मैं एक RabbitMQ डेवलपर हूँ।)

खरगोश, जब हल्के से भरी हुई है, आम तौर सुप्तावस्था 100-400 माइक्रोसेकंड के आदेश पर होगा, अपने नेटवर्क कार्ड और CPU गति जैसी चीजों पर निर्भर करता है। एक बार लोडिंग थोड़ा भारी हो जाने के बाद, आंतरिक बफरिंग प्रकट होने लगती है और विलंबता थोड़ी बढ़ जाती है। बैंडविड्थ उपयोग (संदेश-प्रति-सेकंड, बाइट्स-प्रति-सेकेंड) तक उच्च होने लगने तक आप 1 एमएमएस लेटेंसी की सुरक्षित रूप से उम्मीद कर सकते हैं। स्वाभाविक रूप से दृढ़ता से पेश होने के बाद लेटेंसी भी बढ़ेगी।

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

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

+0

उत्तर के लिए धन्यवाद। क्या आप जानते हैं कि संदेश-प्रति-सेकंड, बाइट-प्रति-सेकेंड के लिए संख्याएं कितनी उच्च मानी जाती हैं? – Kimi

4

आपको प्रति सीपीयू प्रति सेकंड हजारों संदेश प्राप्त करने में सक्षम होना चाहिए। उदाहरण के लिए हमारे मानक परीक्षणों में से एक जावा क्लाइंट से प्रति सेकंड 25k संदेश को क्लाउड कोर सीओटीएस डेबियन बॉक्स पर चलने वाले सर्वर पर और क्लाइंट पर वापस चलाता है। क्लाइंट और सर्वर एक ही बॉक्स पर चल रहे हैं, इसलिए सर्वर पर प्रति सेकेंड संसाधित 50k संदेश और क्लाइंट पर प्रति सेकेंड संसाधित 50k संदेश हैं। सर्वर को अधिक कोर के साथ समर्पित बॉक्स पर सर्वर चलाकर आप उच्च दर प्राप्त कर सकते हैं। बाइट्स/सेकंड के आधार पर दरों के लिए कृपया rabbitmq-चर्चा मेलिंग सूची पर पूछें।

एलेक्सिस

2

सबसे अच्छा समाधान मैं अपने सिस्टम के बारे में सोच सकते हैं ZeroMQ है।

इसमें दृढ़ता नहीं है, आपने कहा कि आपको इसकी आवश्यकता नहीं है और यह उपयोग करने के लिए बहुत तेज़ और सरल है।

यह एक AMQP कार्यान्वयन नहीं है (यह आप भी जरूरत नहीं है लगता है कि), लेकिन यह this guide पर कहते हैं:

ØMQ (ZeroMQ, 0MQ, zmq) किसी एम्बेड नेटवर्किंग पुस्तकालय की तरह दिखता है, लेकिन कार्य करता है की तरह एक समरूपता ढांचा। यह आपको सॉकेट देता है जो विभिन्न संदेशों जैसे इन-प्रोसेस, इंटर-प्रोसेस, टीसीपी और मल्टीकास्ट में पूरे संदेश लेता है। आप प्रशंसकों, पब-सब, कार्य वितरण, और अनुरोध-उत्तर जैसे पैटर्न के साथ सॉकेट एन-टू-एन कनेक्ट कर सकते हैं।यह क्लस्टर्ड उत्पादों के लिए कपड़े होने के लिए पर्याप्त तेज़ है। इसका एसिंक्रोनस I/O मॉडल आपको स्केल करने योग्य मल्टीकोर एप्लिकेशन देता है, जो एसिंक्रोनस संदेश-प्रोसेसिंग कार्यों के रूप में बनाया गया है। इसमें भाषा एपीआई का स्कोर है और अधिकांश ऑपरेटिंग सिस्टम पर चलता है।

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