साल पहले, मैंने खुद से यही प्रश्न पूछा था। मैं एक अलग संदेश कतार के साथ काम करने के लिए NServiceBus को देख रहा था, लेकिन सवाल वही था।
मैंने NServiceBus का उपयोग न करने का निर्णय लिया।
6 महीने बाद, मुझे एहसास हुआ कि मैंने एनएस सर्विसबस के आधे हिस्से का फिर से निर्माण किया था ... केवल इतना ही खराब।
रैबिटएमक्यू के साथ आपको NServiceBus की आवश्यकता क्यों होगी, यह पूछना है कि आपको एएसपी.नेट एमवीसी, या विनफॉर्म, या एक्सएएमएल, या .NET के किसी भी अंतर्निहित पुस्तकालयों के साथ .NET Framework की आवश्यकता क्यों होगी। जहाजों के साथ, जब आपके पास आम भाषा रनटाइम होता है।
क्या सीएलआर पर्याप्त नहीं होना चाहिए, आखिरकार?
बेशक नहीं। रनटाइम होने पर कौन सा कोड निष्पादित कर सकता है - एमएसआईएल दुभाषिया और निष्पादन इंजन - उत्पादक होने के लिए लगभग पर्याप्त नहीं है।
निश्चित रूप से, आप कमांड लाइन अनुप्रयोग लिख सकते हैं जो इनपुट लेते हैं और उत्पादन का उत्पादन करते हैं। लेकिन सामान्य पुस्तकालयों के बिना वास्तविक अनुप्रयोग बनाने का प्रयास करें - अंतर्निहित SQL सर्वर ड्राइवरों के बिना; बिना किसी तीसरे पक्ष के नियंत्रण या पुस्तकालयों के। System.Windows नामस्थान के बिना एक विंडोज डेस्कटॉप ऐप बनाएं।
आपको संग्रह, और डेटाबेस पहुंच, और विंडो ऑब्जेक्ट्स और यूआई नियंत्रण देने के लिए आपको उन पुस्तकालयों की आवश्यकता है।
इसी प्रकार, खरगोश एमक्यू आपको शुरू करने और काम करने के लिए आवश्यक सब कुछ देता है, लेकिन उत्पादकता को बनाए रखने के लिए पर्याप्त नहीं है।
निश्चित रूप से, आप RabbitMQ के लिए .NET ड्राइवर को पकड़ सकते हैं और संदेशों का उत्पादन और उपभोग शुरू कर सकते हैं।
थोड़ी देर के लिए, यह ठीक काम करेगा।
बहुत जल्द, आप खुद को ड्राइवर के चारों ओर एक रैपर बना पाएंगे, ताकि आप लिखने के लिए आवश्यक कोड की मात्रा को कम कर सकें।
फिर आपको खुद को एके बनाम नाक से निपटने की आवश्यकता होगी, और आप इसके लिए एक साधारण एपीआई तैयार करेंगे।
फिर मृत-पत्र पंक्तियों की आवश्यकता नाक कॉल के साथ पॉप अप हो जाएगी, और आप इसे अपने एपीआई में लपेट लेंगे - निश्चित रूप से खरगोश चालक की तुलना में सरलीकृत।
आखिरकार, आप जहरीले संदेशों से निपटना चाहते हैं - संदेश जो विकृत हैं और अपवाद पैदा कर रहे हैं। एक बार फिर, आप इसके लिए एक-ऑफ कोड नहीं लिखना चाहते हैं, इसलिए आप इसे संभालने के लिए एक लाइब्रेरी लिखेंगे।
सूची चालू और चालू होती है।
अब से 6 महीने, आप अपने आप को आधे लिखित, मुश्किल से निर्दिष्ट, अस्थिर पुस्तकालय के साथ काम करेंगे जो केवल NServiceBus (या MassTransit या जो भी अन्य सेवा बस लाइब्रेरी आप चुनते हैं) की मूल्य और क्षमताओं की नकल करता है।
मैं नहीं कहूंगा कि आपको NServiceBus का उपयोग करना होगा। और मैं कहूंगा कि आपको सीखना चाहिए कि बिना खरगोश एमक्यू कैसे काम करता है। लेकिन एक बार जब आप संदेशों को भेजने और प्राप्त करने की मूल बातें प्राप्त कर लेते हैं, तो NServiceBus और अन्य सेवा बस कार्यान्वयन का मूल्य बहुत स्पष्ट हो जाता है।
आपके दूसरे [प्रश्न] से संबंधित (http://stackoverflow.com/questions/9558128/specific-advantages-of-nservicebus-over-plan-rabbitmq) – vappolinario
@vappolinario इसके लिए धन्यवाद। क्या यह कफका के लिए समान है? – MJK
मैंने कभी कफका का उपयोग नहीं किया है, इसलिए मुझे नहीं पता – vappolinario