2012-01-24 11 views
5

में पबसब उदाहरण मासट्रांसिट में पब/उप प्रोजेक्ट नमूना के माध्यम से पढ़ने के बाद, उसने मुझे अपने सिर को खरोंच कर दिया।MassTransit

नमूना में, ग्राहक अनुप्रयोग ग्राहक आवेदन के लिए एक फर्जी उपयोगकर्ता के पासवर्ड को अपडेट करने का अनुरोध प्रकाशित करता है। यह नमूना कोड ठीक काम करता है, और इस परियोजना की उछाल वाली गेंद का पालन करना आसान है।

HOWEVER--

एक वास्तविक दुनिया वातावरण में, पब/उप (मेरी समझ में) के उद्देश्य के प्रकाशकों ग्राहकों की एक बड़ी संख्या के साथ बातचीत की एक छोटी संख्या है। किसी भी प्रकार के सीआरयूडी ऑपरेशन करने वाले ग्राहक के मामले में, संचार पैटर्न को एक से अधिक ग्राहकों को संदेश को संभालने से रोकना नहीं चाहिए? उदाहरण के लिए, बीस ग्राहक एक ही डेटाबेस रिकॉर्ड को अपडेट करने का प्रयास करने के लिए वांछनीय से कम होंगे।

क्या यह सिर्फ एक गुमराह नमूना परियोजना का मामला है?

यदि सीआरयूडी संचालन के लिए पब/उप का उपयोग किया जा सकता है, तो आप केवल एक ग्राहक को ऑपरेशन करने की अनुमति देने के लिए ढांचे को कैसे कॉन्फ़िगर करते हैं?

क्या मैं बस पब/उप के उद्देश्य पर कुछ बुनियादी जानकारी खो रहा हूं?

प्रदान की किसी भी स्पष्टीकरण के लिए धन्यवाद ...

डेविड

उत्तर

4

परिदृश्य आप का उल्लेख आमतौर पर 'के रूप में प्रतिस्पर्धा उपभोक्ताओं की में जाना जाता है, और पब/उप की काफी विशिष्ट है।

यदि प्रत्येक उपभोक्ता के पास यह स्वयं का अद्वितीय कतार नाम है, तो प्रत्येक उपभोक्ता को संदेशों की अपनी प्रति प्राप्त होगी।

वैकल्पिक रूप से, उपभोक्ता व्यवहार प्रतिस्पर्धा, अगर उपभोक्ताओं को ही कतार नाम का हिस्सा प्राप्त करने के लिए, वहाँ प्रत्येक संदेश (ताकि प्रत्येक संदेश केवल एक बार प्राप्त हो जाएगा)

+2

धन्यवाद। मेरी समस्याओं का 9 0% अभी तक सही शब्दावली जानने से नहीं आया है। –

2

के लिए उपभोक्ताओं के बीच प्रतिस्पर्धा हो जाएगा आप n हो सकता है किसी भी पब/उप प्रणाली में ग्राहकों के लिए-टू-एन, कई से कुछ, या कुछ से अधिक प्रकाशक। यह वास्तव में एक बात है कि आप कितने कलाकारों को किसी दिए गए संदेश का जवाब देना चाहते हैं।

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

सामान्य रूप से संदेश डिस्कनेक्ट सिस्टम के साथ काम करने के बारे में अधिक है। आपकी विशिष्ट दुनिया उपभोक्ताओं और प्रकाशकों की संरचना के बारे में अधिक है। मैंने मासट्रांसिट के कार्यान्वयन को देखा है, जहां अधिकांश मार्ग जहां स्थिर हैं और यह वास्तव में बिल्कुल पब/उप नहीं था लेकिन सिस्टम के ज्ञात स्थलाकृति के साथ बहुत सारे भेजता है। वास्तव में अवधारणाओं को समझना, मुझे पता है कि सबसे अच्छी किताब Enterprise Service Bus: Theory in Practice है।

मुझे आशा है कि इससे मदद मिलती है!

संपादित करें: हमारे documentation को भी देखें, कुछ अवधारणाएं वहां छूती हैं।

+0

धन्यवाद ट्रैविस। मुझे लगता है कि मैं जो हासिल करने की कोशिश कर रहा हूं वह आपके सिस्टम की ज्ञात स्थलाकृति के आधार पर है। –