2011-08-24 42 views
5

के बीच अंतर आरपीसी सिस्टम, जैसे ट्विटर के फाइनगल और एंटरप्राइज़ सर्विस बस, जैसे मुले के बीच क्या अंतर है? उनमें से प्रत्येक किस तरह की समस्याएं हल करने में अच्छी है?आरपीसी सिस्टम और एंटरप्राइज़ सर्विस बस

उत्तर

4

मैं एक नरम स्पष्टीकरण के बजाय सुविधाओं की एक तकनीकी टूटने के रूप में इस का जवाब देने की कोशिश करेंगे:

एक कह सकते हैं कि फिनागल एक एसिंक्रोनस मैसेजिंग लाइब्रेरी है जो कई प्रोटोकॉल का समर्थन करते समय सेवाओं को स्वतंत्र रूप से एक दूसरे से कनेक्ट करने के लिए अनुमति देता है (आर्किटेक्चरल सिस्टम एकीकरण मानकों से कसकर बंधे नहीं)।

फिनेक्ल JVM कि आप जावा, स्काला, या किसी भी JVM की मेजबानी की भाषा में अतुल्यकालिक दूरस्थ प्रक्रिया कॉल (RPC) के निर्माण के लिए क्लाइंट और सर्वर का उपयोग कर सकते के लिए एक नेटवर्क ढेर है:

Finagle वेबसाइट से

। Finagle प्रोटोकॉल-स्वतंत्र उपकरण का एक समृद्ध सेट प्रदान करता है।

दूसरी ओर एक एंटरप्राइज़ सर्विस बस (ईएसबी) एक एसिंक्रोनस मैसेजिंग आर्किटेक्चर है जो आम तौर पर उद्योग मानकों और प्रोटोकॉल का पालन करती है। एक ईएसबी एक प्रणाली को बढ़ावा देता है जहां संदेश प्रवाह नियंत्रित होता है और सिस्टम के बीच घुमाया जाता है, और जहां सर्वर अपनी सेवा पंजीकृत कर सकते हैं और ग्राहक पंजीकृत कर सकते हैं कि वे कौन से संदेश रुचि रखते हैं। सर्वर द्वारा प्रदान की जाने वाली सेवाओं को पंजीकृत और संस्करणित किया जा सकता है।

आप आम तौर पर किसी वेबसाइट और बैकएंड सेवाओं के बीच कहीं भी फ़ाइनगेल का उपयोग करेंगे। लेकिन, आपको आम तौर पर एक बड़े कॉर्पोरेट के अंदर ईएसबी मिल जाएगा, जहां यह वित्त, समर्थन, बिक्री इत्यादि जैसे सिस्टम को एकीकृत करने के लिए जिम्मेदार है।

दोनों समाधान एसिंक्रोनस मैसेजिंग और विभिन्न विस्तारों को बफरिंग प्रदान करते हैं, लेकिन इसे हल करने के लिए डिज़ाइन नहीं किए गए हैं एक ही समस्या है। ईएसबी के लिए, आप शायद 'सख्त, उद्यम' सोचेंगे, लेकिन फिनगले के लिए आप शायद 'लचीला, वेब' सोचेंगे।

आशा इस मदद करता है

अद्यतन:

काफी संबंधित नहीं है, लेकिन आप इस स्थान की खोज कर रहे हैं, मैं Kafka इन दिनों में विचार करेंगे।

2

दोनों पूरी तरह से अलग समस्याओं को हल:

  • एक ESB एक इंटर मिडलवेयर कि संदेश परिवर्तन और मार्ग, प्रोटोकॉल अनुकूलन और अन्य मूल्य जोड़ने के संचालन प्रदान करता है (आर्केस्ट्रा, इसकी गारंटी वितरण, idempotent छानने ... की तरह) । यह आपके सेवा उपभोक्ताओं और प्रदाताओं के बीच और पारदर्शी रूप से बैठता है (यानी उपभोक्ता या प्रदाता में कोई बदलाव किए बिना) इसकी अलग-अलग सुविधाएं प्रदान करता है।
  • एक आरपीसी प्रणाली आरपीसी संचालन करने के लिए ग्राहक और सर्वर प्रौद्योगिकियां प्रदान करती है।
+0

क्या आप कृपया टैग के रूप में फिनगेल तैयार करेंगे, मेरे पास विशेषाधिकार नहीं हैं। – Jack

+0

निश्चित रूप से: किया गया। –

2

आरपीसी और ईएसबी दो वास्तुकला पैटर्न हैं। जबकि आरपीसी आम तौर पर एक अनुरोध-उत्तर और प्रकृति में तुल्यकालिक है, एक ईएसबी संदेश (सरलीकृत स्पष्टीकरण) और प्रकृति में एसिंक्रोनस की अवधारणा पर काम करता है। ईएसबी किसी भी एसओए कार्यान्वयन के लिए आधार है। ईएसबी इस प्रकार ढीले युग्मन को सक्षम बनाता है जिससे सच चपलता को बढ़ावा मिलता है। कार्यान्वयन परिप्रेक्ष्य से एक सरल उदाहरण निम्नानुसार है:

एक वेब सेवा एक सामान्य आरपीसी है। उपभोक्ता उत्पादक के लिए मजबूती से बाध्य है और निर्माता पक्ष में अनुबंध में किसी भी बदलाव के लिए उपभोक्ता पक्ष में बदलाव की आवश्यकता होगी।

ईएसबी में, सेवा उपभोक्ता सीधे सेवा निर्माता को नहीं बुलाता है। यह बस बस में संदेश और नियमों (मध्यस्थ) के आधार पर रखता है, उपयुक्त सेवा निर्माता इसे संभालेगा। यदि सेवा उपभोक्ता और सेवा निर्माता विभिन्न प्रारूपों में बात करते हैं, तो ईएसबी परिवर्तन करने की सुविधा प्रदान करता है (जैसे ज़िपकोड को xxxxx-xxxx के रूप में स्वरूपित करना, नाम को पहले नाम और अंतिम नाम इत्यादि में विभाजित करना)।

यह सिर्फ सरलीकृत स्पष्टीकरण है। अधिक जानकारी के लिए, कृपया निम्न लिंक की जांच:

Why do developers need an Enterprise Service Bus?

Enterprise Service Bus