मेरे पास ओएसजीआई कंटेनर में तैनात कई बंडल (ए, बी, और सी) हैं, जिनमें प्रत्येक CamelContext
और कुछ मार्ग हैं। मेरे पास CamelContext
के साथ एक मार्ग (निगरानी डेटा एकत्र करने के लिए) और InterceptStrategy
बीन के साथ एक और बंडल (एम) है। मैं InterceptStrategy
एम से बीन को अन्य बंडलों को संशोधित किए बिना कंटेनर (यानी ए, बी, और सी में) के सभी अन्य CamelContext
एस पर स्वचालित रूप से लागू करना चाहता हूं।ओएसजीआई कंटेनर में ऊंट: सभी ऊंट संदर्भों के लिए InterceptStrategy लागू करें
आखिरकार, लक्ष्य को स्पष्ट रूप से रूट करने के लिए ए, बी, या सी में कोई भी बदलाव किए बिना एम में रूट में प्रत्येक CamelContext
से डेटा को वायरटैप करना है। क्या यह दृष्टिकोण या एक समान दृष्टिकोण करने योग्य है?
CamelContext
एस के सभी स्प्रिंग एक्सएमएल का उपयोग करके कॉन्फ़िगर किए गए हैं।
अद्यतन: अतिरिक्त संदर्भ
बंडल ए, बी, और सी डाटा प्रोसेसिंग के लिए जिम्मेदार मुख्य उत्पाद होते हैं। बंडल एम में एक वैकल्पिक निगरानी उपकरण है, जो ए, बी, और सी के माध्यम से बहने वाले डेटा के कुछ मानकों को मापने के लिए डिज़ाइन किया गया है। वर्तमान में, वैकल्पिक टूल को जोड़ने के लिए ए, बी, और सी में मार्गों को बदलने की आवश्यकता है ताकि अतिरिक्त Processor
एस को समृद्ध किया जा सके। Exchange
निगरानी डेटा के साथ और <to />
एंडपॉइंट्स से पहले निगरानी डेटा पढ़ने के लिए।
लक्ष्य बंडल एम में ए, बी, और सी के साथ पहले से ही सत्यापित-कार्यरत प्रणाली में ड्रॉप करने में सक्षम होना है; और मौजूदा और काम करने वाले बंडलों के लिए कॉन्फ़िगरेशन को संशोधित किए बिना मौजूदा मार्गों पर स्वचालित रूप से लागू होते हैं। यह है, इसका समर्थन करने के लिए ए, बी, और सी में संशोधन करने के लिए स्वीकार्य है, जब तक कि परिवर्तन ए, बी, और सी को चलाने के लिए एम पर भरोसा नहीं करते हैं (यानी, एबीसी अभी भी एम के बिना चलाना चाहिए)।
यदि इंटरसेप्टरों का उपयोग करने से ऐसा करने का बेहतर माध्यम है, तो मैं इसके लिए खुला हूं। प्राथमिक लक्ष्य हैं:
- एम से decoupled (विशेष रूप से विकास के दौरान)
- सुनिश्चित ए, बी के साथ एम एकीकृत एक रखें, बी, और सी, और सी
- एम करने की अनुमति दें संभव के रूप में आसान है मैन्युअल रूप से ए, बी, या सी
को ढूंढने में मदद करता है, मुझे आपके द्वारा प्रस्तुत किए गए विचार पसंद हैं, लेकिन एक ऐसा मुद्दा है जो मेरे विवरण से स्पष्ट नहीं था: निगरानी कोड के कुछ चरणों की आवश्यकता है 'ए',' बी', और 'सी' में मार्गों में समकालिक रूप से निष्पादित किया जाना चाहिए (क्योंकि वे, उदाहरण के लिए, 'एक्सचेंज' पर गुण सेट करते हैं), इसलिए संदेशों को एक अतुलनीय कतार में निर्देशित करना अपर्याप्त है। मैं देखता हूं कि ऊंट 2.16.0 में डायरेक्ट-वीएम घटक एक मौजूदा उपभोक्ता स्थिति को संभालने में सक्षम होगा, जो इस मुद्दे को हल करेगा। क्या आप कैमेल 2.12.0 में उपलब्ध किसी भी समान तंत्र के बारे में जानते हैं जो सिंक्रोनस-लेकिन-वैकल्पिक रूटिंग के लिए अनुमति देगा? – VeeArr
नहीं, कोई भी ऊंट संदर्भों में काम नहीं करेगा, जब तक आप इंटरसेप्टर में किसी वेब सेवा कॉल की तरह कुछ उपयोग नहीं करना चाहते हैं और कोई श्रोता नहीं होने पर किसी भी अपवाद को निगलें .. – stringy05