nServiceBus बनाम मास ट्रांजिट बनाम राइनो सर्विस बस बनाम अन्य?


104

बस कुछ त्वरित स्पाइक में एक मैसेजिंग सिस्टम का उपयोग करके फाइलों को संसाधित करने के लिए एक अच्छी तरह से डिकॉउल्ड वर्क फ्लो सिस्टम में हैं।

उपर्युक्त रूपरेखाओं में से प्रत्येक का उपयोग करते हुए लोगों ने क्या पाया है? WCF बाइंडिंग और / या गैर-MSCQ समाधान के साथ इन बनाम हाथ से लुढ़के MSMQ सिस्टम का उपयोग करने के क्या फायदे हैं ??

जवाबों:


71

मैं हाथ से लुढ़का हुआ समाधानों से दूर रहने की सलाह देता हूं क्योंकि कुछ कठिन सामानों का एक गुच्छा होता है जिन्हें सही तरीके से प्राप्त करने की आवश्यकता होती है - जैसे लेन-देन कैसे संभाला जाता है, अपवाद कैसे रोलबैक का कारण बनता है, कैसे रोलिंग को अंतहीन रूप से रोकना है (जहर संदेश), लंबे समय तक चलने वाले वर्कफ़्लो के साथ कैसे एकीकृत किया जाए ताकि राज्य प्रबंधन की सीमाएं और अधिक हो सकें।

आप शायद कुछ प्रकार के टिकाऊ / लेन-देन संदेश भेजने वाले बुनियादी ढाँचे को चाहते हैं, इसलिए MSMQ का उपयोग नहीं करने पर आप Microsoft प्लेटफ़ॉर्म पर सर्विस ब्रोकर, या ActiveMQ जैसे कुछ अन्य विकल्प से बचे रहेंगे। MSMQ को सेवा ब्रोकर के विपरीत पहले से ही सभी विंडोज मशीनों पर स्थापित होने का लाभ है, जो नहीं है।

NServiceBus, Mass Transit, और Rhino Service Bus के बीच चयन करने के संदर्भ में - यह Stackoverflow जवाब NServiceBus की तुलना करते हुए MassTransit शुरू करने के लिए एक अच्छी जगह होगी।

हमारे 3.1 रिलीज में, हम NSB स्टूडियो की शुरुआत कर रहे हैं - विजुअल स्टूडियो इंटीग्रेटेड मॉडलिंग टूल्स का एक सेट जो आपको अपने सिस्टम को एब्सट्रैक्शन के उच्च स्तर पर मॉडल करने में सक्षम बनाता है और आपके लिए NServiceBus के बहुत सारे कॉन्फ़िगरेशन और इनिशियलाइज़ेशन स्वचालित रूप से किए जाते हैं। मैं कहता हूँ कि यह वास्तव में NServiceBus के पक्ष में तराजू का सुझाव देता है।

उम्मीद है की वो मदद करदे।

अस्वीकरण: मैं NServiceBus का लेखक हूं।


25
राइनो सर्विस बस बहुत कैसल केंद्रित है। यदि आप अपने एप्लिकेशन आर्किटेक्चर के मुख्य भाग के रूप में कैसल के साथ परिचित / सहज नहीं हैं, तो आपको इसके साथ कुछ कठिनाई हो सकती है। NServiceBus और मास ट्रांजिट या अधिक कंटेनर अज्ञेयवादी। NServiceBus एक "एप्लिकेशन सर्वर" के साथ आता है जो आपके कोड को होस्ट करने के साथ-साथ सक्रिय इंफ्रास्ट्रक्चर कार्यान्वयन (जैसे-इन-मेमोरी, MSMQ, और DB) को संभालता है क्योंकि आप अपने सिस्टम को देव से टेस्ट करने के लिए ट्रांसफ़ॉर्म करते हैं। यह आपके संदेश हैंडलिंग लॉजिक और लंबे समय से चल रही प्रक्रियाओं के लिए इकाई परीक्षण सुविधाओं के साथ भी आता है। मुझे विश्वास नहीं है कि MassTransit में ये हैं।
उदी दहन

35
यह शायद ध्यान देने योग्य है कि उदी NServiceBus का AUTHOR है, और इसलिए उनकी राय यहाँ थोड़ा पक्षपाती हो सकती है। :) ने कहा कि, मैं पूरी तरह सहमत हूं, और एनएसईआरबस के उपयोग की वकालत उन्हीं कारणों से करेगा, जो उसने किए हैं।
स्केब

8
@skb: सहमत! उदी, आपको वास्तव में nservicebus प्रश्नों का उत्तर देते समय किसी प्रकार का अस्वीकरण देना चाहिए, विशेष रूप से इस तरह के लोगों को!
एंडी

14
मुझे अभी भी इस तथ्य की आदत है कि लोग अब NServiceBus की खोज कर रहे हैं, जो नहीं जानते कि मैंने इसे बनाया है
उदी दहन

5
@UdiDahan: nServiceBus "ओपन सोर्स" कैसे है? इसका उपयोग करने के लिए लाइसेंस के बिना स्रोत कोड को प्रकाशित करना खुले स्रोत की भावना के लिए कुछ भी नहीं करता है, जो साझा कर रहा है। मैं एक जीवित विक्रय सॉफ़्टवेयर (मैं ऐसा ही करता हूं) अर्जित करने के आपके अधिकार का पूरी तरह से समर्थन करता हूं, लेकिन मुझे लगता है कि यदि आप समाधान (पोस्ट 2.0) को खुले स्रोत के रूप में नहीं लेते तो यह अधिक सटीक होगा।
एरिक जे

52

NServiceBus एक अच्छा उत्पाद है लेकिन लाइसेंस की समस्याओं से सावधान रहें। लेखकों की इच्छानुसार इसे लाइसेंसिंग नीति में बदलने की प्रवृत्ति है। पुरानी लाइसेंस जानकारी पर उदाहरण के लिए एक नज़र डालें

ऐसा हो सकता है कि परियोजना के विकास के बीच में आपको पता चलेगा कि आपको एनएसईआरबस के लिए बहुत पैसा देना है।

इसके अलावा मुक्त संस्करण में प्रदर्शन सीमाएं हैं।

मासट्रांसिट बिल्कुल मुफ्त खुला स्रोत है, इसकी कोई सीमा नहीं है, और अपाचे 2.0 लाइसेंस के तहत है।

मैंने राइनो सर्विस बस का उपयोग नहीं किया है ।


1
वास्तव में हम संस्करण 3.1 के साथ एक नया लाइसेंस प्रदान करेंगे, जो आपको इसे कई मशीनों पर मुफ्त में चलाने की अनुमति देगा (हालांकि थ्रूपुट के निचले स्तर पर)।
उदी दहन

11
मासट्रांसिट आपका आदमी है। यह निःशुल्क है; कोई लाइसेंस प्रतिबंध नहीं। यदि आप एक प्रवाह डिजाइनर के बिना कर सकते हैं और अपना स्वयं का रोल कर सकते हैं तो आप इसे हरा नहीं सकते। यह RabbitMQ के शीर्ष पर भी बैठ सकता है और MSMQ में सामुदायिक Azure प्लग इन है। MassTranit + RabbitMQ ने खुद को एक उत्कृष्ट स्थिर वातावरण साबित किया है और बहुत तेज़ी से आपको अपने उपभोक्ताओं / उत्पादकों को ऊपर और चलाने की सुविधा मिलती है।
बिग्टो सेप

3
इसके अलावा EasyNetQ (खरगोश के चारों ओर सरल आवरण) पर विचार करें। सुप्रिटेड यूडीआई 4 अच्छे विकल्पों 2 nServiceBus के सुझावों के साथ चर्चा पर अधिक नहीं तौलना है? मेरा मतलब। शुरुआती चरणों में संदेश यात्रा पर लोक मदद करें। वहाँ कई अच्छे सरल (मुक्त) तरीके 2 शुरू हो जाते हैं; जब तक आप इसे आसान और आदर्श रूप से मुक्त करते हैं, तब तक वास्तव में कोई फर्क नहीं पड़ता; (खेलने के लिए स्वतंत्र, और वास्तविक के लिए लागू करने के लिए स्वतंत्र, और बाद में बदलने के लिए स्वतंत्र) एक बार जब आप बढ़ रहे हैं तो आप अपनी खुद की चिंताओं की सूची विकसित करेंगे; उस बिंदु पर एक अधिक परिपक्व उत्पाद एक आसान निर्णय हो सकता है, आसान लागत औचित्य के साथ, जैसे nservicebus।
स्नोकोड

MassTransit 4.0 के रूप में MSMQ अब समर्थित नहीं है ( masstransit-project.com/MassTransit )
MyGGaN

25

राइनो बनाम NServicebus की स्थिति के लिए एक अद्यतन:

http://www.infoq.com/news/2012/04/nservicebus3-0

InfoQ to Ayende: आपने पूर्व में .NET स्वयं के लिए एक सर्विस बस लिखी है, अर्थात् राइनो सर्विस बस। क्या राइनो सर्विस बस के उपयोगकर्ताओं को अब पुनर्विचार करना चाहिए और NServiceBus में जाना चाहिए?

Ayende: मैंने 2008 के आसपास राइनो सर्विस बस का निर्माण किया। मैंने इसे ज्यादातर इसलिए बनाया क्योंकि मैं उस समय अन्य सर्विस बसों की स्थिति से खुश नहीं था। मेरी सेवा बस का निर्माण करते समय मेरी अलग-अलग चिंताएँ और दिशाएँ थीं, लेकिन वह 4 साल पहले थी। उस समय में, मुझे लगता है कि NServiceBus ने उत्पाद के उपयोग को आसान बनाने और बॉक्स विकास की कहानी से बहुत बेहतर होने में काफी प्रगति की। यदि मैं आज सेवा बसों के साथ शुरू कर रहा था, तो मुझे बहुत संदेह है कि मैं अपना निर्माण करूंगा।


9

MSMQ आधारित किसी भी चीज़ का एक संभावित con अधिकतम संदेश आकार पर प्रतिबंध है। IIRC यह लगभग 4MB है, जिसे आप आसानी से चला सकते हैं यदि आप बड़ी फ़ाइलों के साथ काम कर रहे हैं और संदेश के भीतर फ़ाइल सामग्री संग्रहीत कर रहे हैं।


7
दिलचस्प बात यह है कि अधिकांश क्लाउड-आधारित कतारें 100KB के पेलोड का भी समर्थन नहीं करती हैं, इसलिए यह कुछ ऐसी चीजें हैं जिन्हें भविष्य में कई ऐप द्वारा ध्यान में रखा जाना चाहिए।
उदी दहन

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

4
यह NServiceBus के साथ कोई समस्या नहीं है क्योंकि उनके पास डेटा बस की अवधारणा है, जो पारदर्शी रूप से आकार सीमाओं के आसपास काम करती है।
खालिद अबूझमेह
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.