2012-02-06 22 views
8

अपाचे कैमल के लिए नया होने के नाते, मैं हाल ही में घटकों की अपनी लंबी सूची की समीक्षा कर रहा था और SEDA queue घटकों के लिए उनके समर्थन पर ठोकर खाई थी।साधारण कतार बनाम SEDA कतार

पृष्ठ ने मुझे बहुत समझ नहीं आया, इसलिए मैंने "सेडा कतार" शब्द के लिए कुछ ऑनलाइन खोज की और विकिपीडिया लेख here प्राप्त किया।

उस लेख को पढ़ने के बाद, मैं यह नहीं बता सकता कि एक SEDA कतार और सामान्य, "साधारण" कतार के बीच क्या अंतर है! दोनों एसिंक्रोनस कतारों के उपयोग के माध्यम से decoupling सिस्टम की धारणा को गले लगाते हैं।

लेख से, "SEDA" बस एक आर्किटेक्चर की तरह लगता है जिसमें प्रत्येक घटक के बीच एक कतार लगाई जाती है। क्या ये सही है?

लेकिन अगर यह सिर्फ एक आर्किटेक्चर है, तो "SEDA" क्यूई एक विशेष अपाचे कैमल घटक क्यों है?

+3

SEDA एक निष्पादक सेवा (कतार और थ्रेड पूल) जैसे कतार से जुड़ा हुआ धागा इंगित करता है शायद यही इसका अर्थ है। –

+0

मुझे नहीं पता कि दस्तावेज को अद्यतन किया गया था क्योंकि इस सवाल से पूछा गया था, लेकिन यह मूल रूप से कहता है कि पहली पंक्ति में: "सेडा: घटक एसिंक्रोनस सेडा व्यवहार प्रदान करता है, ताकि ब्लॉकिंगक्यूयू पर संदेशों का आदान-प्रदान किया जा सके और उपभोक्ताओं को _in निर्माता से एक अलग थ्रेड_। " – DavidS

उत्तर

4

सेडा कतार नियमित कतार की तरह हैं (और जैसा कि पीटर ने ऊपर कहा था, ऊंट में उनके पास घटक के हिस्से के रूप में उनके साथ जुड़े थ्रेड पूल हैं)। SEDA एक वास्तुकला है। ऊंट में SEDA घटक आपकी प्रक्रिया में इन-मेमोरी कतार का उपयोग करता है और अपाचे ऊंट, अर्थात् जेएमएस घटक में अन्य कतार घटक से उन्हें अलग करने के लिए एक अलग घटक होता है।

1

SEDA एक ऊंट मार्ग के भीतर घटकों का decoupling प्रदान करता है। या उस मामले के लिए एक ही प्रक्रिया में। । मतलब यह आपको अन्य घटकों के लिए एसिंक कॉल करने में मदद करता है ... इसकी स्मृति मेमोरी अवरोधक में है। दूसरी ओर JMS पर पूरी व्यवस्था के decoupling के लिए प्रयोग किया जाता है .. JMS एक बाहरी दलाल शामिल होगा .. SEDA सिर्फ उपभोक्ता घटक

3

SEDA से एक अलग थ्रेड बनाने willl एक संक्षिप्त कि मंचन घटना के लिए खड़ा है संचालित वास्तुकला इसे संदेश प्रसंस्करण के विभिन्न चरणों के बीच प्रवाह को नियंत्रित करने के लिए एक तंत्र के रूप में डिज़ाइन किया गया है। विचार एक समग्र प्रक्रिया से संदेश आउटपुट की फ्रीक्वेंसी को सुगम बनाना है ताकि यह इनपुट से मेल खा सके, यह एक बिंदु के उपभोक्ता धागे को बाकग्राउंड में लंबे समय से चलने वाले संचालन के काम को ऑफ़लोड करने की अनुमति देता है, जिससे संदेशों को उपभोग करने के लिए उन्हें मुक्त कर दिया जाता है। परिवहन से। जब एक एक्सचेंज को सेडा में पास किया जाता है: एंडपॉइंट, यह ब्लॉकिंगक्यूयू में होता है। सूची ऊंट संदर्भ के भीतर मौजूद है, जिसका अर्थ है कि केवल उन मार्गों को जो एक ही संदर्भ में हैं, इस प्रकार के अंतराल से जुड़ सकते हैं। कतार डिफ़ॉल्ट रूप से असंबद्ध है, हालांकि उपभोक्ता के यूआरआई पर आकार विशेषता सेट करके इसे बदला जा सकता है।

डिफ़ॉल्ट रूप से, एंडपॉइंट को सौंपा गया एक थ्रेड सूची से एक्सचेंजों को पढ़ता है और उन्हें मार्ग के माध्यम से संसाधित करता है। जैसा कि प्रक्रिया के उदाहरण में देखा गया है, यह सुनिश्चित करने के लिए कि समय-समय पर उस सूची से एक्सचेंजों को संसाधित किया जा रहा है, यह सुनिश्चित करने के लिए समवर्ती कॉन्स्युमर की संख्या में वृद्धि करना संभव है।

एसईडीए पैटर्न इनऑनली संदेशों को संसाधित करने के लिए सबसे उपयुक्त है, जहां एक मार्ग अगले चरण से निपटने के लिए प्रसंस्करण समाप्त करता है और दूसरे को हाथ से बंद कर देता है। सेडा से प्रतिक्रिया मांगना संभव है: जब इसे संदेश एक्सचेंज पैटर्न इनओट

संदर्भ में कॉल करके एंडपॉइंट कॉल करना संभव है। अपाचे कैमल डेवलपर की कुकबुक

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