2010-02-17 16 views
17

साथ ActiveMQ वितरित मैं लक्ष्य एक छोटे से प्रोटोटाइप प्रणाली है कि कुछ इस तरह काम करता है बनाने के लिए साथ, ActiveMQ और कैमल सीखने की प्रक्रिया में हूँ:कैमल

alt text http://www.paulstovell.com/get/stackoverflow-questions/Queues.png (big)

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

मार्गों के माध्यम से संदेशों को एक कतार से दूसरे स्थानांतरित करने के लिए अपाचे कैमल प्राप्त करना काफी आसान है, अगर वे एक ही ActiveMQ उदाहरण पर हैं। तो यह सदस्यता कतारों के प्रबंधन के लिए काम करता है।

अगली चुनौती एक ActiveMQ इंस्टेंस से संदेशों को दूसरे पर धक्का दे रही है, और यह थोड़ा सा है जहां मुझे यकीन नहीं है कि आगे क्या देखना है।

  1. विभिन्न ActiveMQ प्रतिष्ठानों के बीच मार्ग को कैमल कर सकते हैं? (मैं यह नहीं समझ सकता कि जेएमआई एंडपॉइंट यूआरआई क्या होगा यदि वे अलग-अलग मशीनों पर हों)।
  2. मुझे लगता है कि ActiveMQ में store and forward क्षमताएं हैं। क्या ऑर्डर और शिपिंग/चालान के बीच संदेशों को स्थानांतरित करने के लिए मैं इसका उपयोग करूंगा?
  3. या यह Apache ServiceMix है जो हल करने के लिए है?

उत्तर

19

यह एक बिल्कुल स्पष्ट अतुल्यकालिक, घटना चालित अनुप्रयोग है कि ActiveMQ और ऊंट के लिए अच्छी तरह से अनुकूल है है।

वास्तव में आप करते हैं संदेश को एक ActiveMQ इंस्टेंस से दूसरे में स्पष्ट रूप से स्थानांतरित न करें। जिस तरह से यह काम करता है वह network of brokers के रूप में जाना जाता है। आपके मामले में, आपके पास तीन ब्रोकर होंगे: ActiveMQ-purple, ActiveMQ-green और ActiveMQ-blue। ActiveMQ-purple creates ActiveMQ-green और ActiveMQ-blue के साथ एक यूनी-दिशात्मक ब्रोकर नेटवर्क। यह ActiveMQ-बैंगनी को उपभोक्ता मांग के आधार पर ActiveMQ-green और ActiveMQ-Blue पर स्टोर-एंड-फ़ॉरवर्ड संदेशों को स्टोर करने की अनुमति देता है।

ऑर्डर ऐप ActiveMQ-बैंगनी पर ऑर्डर कतार पर ऑर्डर स्वीकार करता है। आदेश ऐप यह निर्धारित करने के लिए कि क्या यह एक चालान संदेश या शिपिंग संदेश है, संदेश का उपभोग करने और संसाधित करने के लिए ऊंट का उपयोग करता है। ऊंट संदेशों को इनवॉइसिंग कतार या ActiveMQ-बैंगनी पर शिपिंग कतार में रूट करता है।

उपभोक्ता मांग चालान ऐप और शिपिंग ऐप से आती है। चालान, सक्रिय एमक्यू-हरे पर चालान कतार से संदेशों का उपभोग करने के लिए ऊंट का उपयोग करता है। शिपिंग ऐप ActiveMQ-Blue पर शिपिंग कतार से संदेशों का उपभोग करने के लिए ऊंट का उपयोग करता है। ब्रोकर नेटवर्क की वजह से और ActiveMQ-green.invoicing कतार और ActiveMQ-blue.shipping कतार पर उपभोक्ता मांग के कारण, संदेशों को ActiveMQ-बैंगनी से उचित ब्रोकर और कतार में अग्रेषित किया जाएगा। विशिष्ट ब्रोकर को संदेशों को स्पष्ट रूप से रूट करने की कोई आवश्यकता नहीं है।

मुझे आशा है कि यह आपके प्रश्नों का उत्तर देगा। यदि आपके पास अब है तो मुझे बताएं।

ब्रूस

1

हम्मम्म, मैंने केवल सर्वश्रेष्ठ पर डब किया है, और उचित समय के लिए नहीं, लेकिन मैं कोशिश करूँगा और कुछ ऑफर करूंगा।

एक्टिवएमक्यू विभिन्न प्रतिष्ठानों के बीच मार्ग बना सकता है और मेरे ज्ञान के लिए मानक यूआरआई का उपयोग करता है, इसलिए मुझे यकीन नहीं है कि समस्या क्या है। मुझे लगता है कि टीसीपी का उपयोग करके आप ठीक होंगे। सर्विसमिक्स का उपयोग करना (आप इसे बाद में उल्लेख करते हैं) आप केवल एक कनेक्शन निर्दिष्ट करेंगे फैक्टरी & फिर उसमें यूआरआई प्रदान करें। यह लिंक कुछ उदाहरण दिखाता है http://servicemix.apache.org/servicemix-jms-new-endpoints.html

ऊंट के पास टिकाऊ सब्सक्राइबर के लिए समर्थन है यदि आप (http://camel.apache.org/durable-subscriber.html) के बाद थे? यह पैटर्न यह सुनिश्चित करेगा कि जब संदेश तैयार हो जाए तो ग्राहक ऑफ़लाइन है, तब तक यह तब तक आयोजित किया जाएगा जब तक ग्राहक वापस ऑनलाइन न हो। यह भी ServiceMix द्वारा समर्थित है (जैसा कि ऊपर दिए गए लिंक देख सकते हैं और 'subscriptionDurable' के लिए देखो।

+0

बढ़िया है, धन्यवाद, यह मुझे कुछ दिशा देता है! –

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

  • कोई संबंधित समस्या नहीं^_^