2013-04-04 14 views
5

मैं वेबकैर एमक्यू के लिए काफी नया हूं, इसलिए कृपया मुझे क्षमा करें यदि मैं सही शर्तों का उपयोग नहीं कर रहा हूं। हम एक परियोजना कर रहे हैं जिसमें हमें उच्च उपलब्धता के लिए एक एमक्यू क्लस्टर स्थापित करने की आवश्यकता है।वेबस्पेयर एमक्यू क्लस्टरिंग

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

इस मामले में निम्नलिखित परिदृश्यों का ख्याल रखा जा सकता है?

1] पहले QueueManager दुर्घटनाओं, अपने कतारों पर संदेशों क्लस्टर

2] में अन्य queuemanager के लिए स्थानांतरित कर रहे हैं QueueManager फिर से आता है, वहाँ प्रकाशकों और ग्राहकों को बहाल करने की किसी भी व्यवस्था है। वर्तमान में हमने क्लाइंट एप्लिकेशन में एक स्वचालित रिकवरी थ्रेड लिखा है जो असफल प्रकाशकों और ग्राहकों को फिर से कनेक्ट करने का प्रयास करता है। लेकिन क्लस्टर सेटअप के मामले में, हमें डर है कि प्रकाशक और ग्राहक दूसरे चल रहे qmanager से फिर से जुड़ जाएंगे। और जब दुर्घटनाग्रस्त क्यूमैनगर बहाल किया जाता है, तो इसमें कोई प्रकाशक और ग्राहक नहीं होंगे।

क्या कोई भी बता सकता है कि उपरोक्त दो परिदृश्यों का ख्याल कैसे रखा जाए?

उत्तर

4

शशि के जवाब में जोड़ने के लिए, डब्लूएमक्यू क्लस्टरिंग से अधिक लाभ उठाने के लिए आपको प्रेषकों और संदेशों के रिसीवर के बीच नेटवर्क हॉप होना चाहिए। डब्लूएमक्यू क्लस्टरिंग इस बारे में है कि क्यूएमग्र्स खुद के बीच कैसे बात करते हैं। क्लाइंट एप्स QMgrs से बात करते हैं और संदेशों को दोहराना नहीं करता है इसके साथ इसका कोई लेना-देना नहीं है। एक क्लस्टर में जब एक संदेश को एक QMgr से दूसरे में प्राप्त करना होता है, तो क्लस्टर यह बताता है कि इसे कहां रूट करना है। यदि एक गंतव्य कतार के कई क्लस्टर उदाहरण हैं, तो संदेश उनमें से किसी के लिए मार्गांतरित होने योग्य है। यदि प्रेषक और रिसीवर के बीच कोई नेटवर्क हॉप नहीं है, तो संदेशों को स्थानीय QMgr छोड़ने की आवश्यकता नहीं है और इसलिए डब्लूएमक्यू क्लस्टरिंग व्यवहार कभी भी लागू नहीं होता है, भले ही QMgrs शामिल हो, क्लस्टर में भाग ले सकते हैं।

एक पारंपरिक डब्लूएमक्यू क्लस्टर आर्किटेक्चर में, रिसीवर सभी एक ही कतार के कई उदाहरणों पर सुनते हैं, एक ही नाम के साथ, कई QMgrs में फैले हुए हैं। प्रेषकों के पास एक या अधिक QMgrs हैं जहां वे अनुरोध (आग-और-भूल) भेज सकते हैं और संभवतः उत्तर (अनुरोध-उत्तर) का इंतजार कर सकते हैं। चूंकि संदेशों के रिसीवर कुछ सेवा प्रदान करते हैं, इसलिए मैं उनके क्यूएमग्रीएस "सेवा प्रदाता QMgrs" कहता हूं। QMgrs जहां संदेश के प्रेषक रहते हैं "सेवा उपभोक्ता" QMgrs क्योंकि ये ऐप्स सेवाओं के उपभोक्ता हैं।

नीचे दी गई स्लाइड एक प्रस्तुति से है जिसे मैं डब्लूएमक्यू आर्किटेक्चर परामर्श संलग्नक पर उपयोग करता हूं।

An SOA architecture for WebSphere MQ

ध्यान दें कि सेवाओं के उपभोक्ताओं - बातों अनुरोध संदेश भेजने - से अधिक असफल। सेवा अंतराल कतारों और सेवाओं को प्रदान करने वाली चीजें सुनने में विफल नहीं होती हैं। यह सुनिश्चित करने की आवश्यकता के कारण है कि प्रत्येक सक्रिय सेवा एंडपॉइंट कतार हमेशा परोसा जाता है। आम तौर पर प्रत्येक ऐप इंस्टेंस में दो या अधिक कतार उदाहरणों पर एक इनपुट हैंडल होता है। इस तरह एक QMgr नीचे जा सकता है और सभी ऐप उदाहरण सक्रिय रहते हैं। यदि कोई ऐप इंस्टेंस डाउन हो जाता है, तो कुछ अन्य ऐप इंस्टेंस अपनी कतारों को पूरा करता रहता है। विशिष्ट QMgrs के लिए सेवा प्रदाताओं के इस संबंध में यदि आवश्यक हो तो एक्सए लेनदेन को भी सक्षम बनाता है।

सबसे अच्छा तरीका है मैं WMQ हा व्याख्या करने के लिए मिल गया है प्रभाव सम्मेलन से एक स्लाइड है:

WebSphere MQ High Availability Options

एक WebSphere MQ क्लस्टर सुनिश्चित करता है कि एक सेवा है, उपलब्ध रहता है यहां तक ​​कि एक क्लस्टर का एक उदाहरण है, हालांकि कतार अनुपलब्ध हो सकती है। क्लस्टर में नए संदेश शेष कतार के उदाहरणों तक पहुंच जाएंगे। एक हार्डवेयर क्लस्टर या बहु-उदाहरण QMgr (MIQM) मौजूदा संदेशों तक पहुंच प्रदान करता है। जब सक्रिय/निष्क्रिय जोड़ी के एक तरफ नीचे चला जाता है, तो विफलता होने पर QMgr केवल पर एक संक्षिप्त आउटेज होता है, फिर द्वितीयक नोड लेता है और फिर से उपलब्ध कतारों पर कोई संदेश बनाता है। एक नेटवर्क जो डब्लूएमक्यू क्लस्टर और हार्डवेयर क्लस्टर/एमआईक्यूएम दोनों को जोड़ता है, उच्चतम स्तर की उपलब्धता प्रदान करता है।

ध्यान रखें कि इनमें से किसी भी कॉन्फ़िगरेशन में संदेश नोड्स में दोहराए गए हैं। एक डब्लूएमक्यू संदेश में हमेशा एक भौतिक स्थान होता है। इस पहलू पर अधिक जानकारी के लिए, कृपया Thoughts on Disaster Recovery देखें।

6

डब्लूएमक्यू क्लस्टरिंग एक उन्नत विषय है। आपको सबसे पहले डब्लूएमक्यू की अच्छी मात्रा में पढ़ना चाहिए और समझना चाहिए कि डब्ल्यूएमक्यू वर्ल्ड में क्लस्टरिंग का मतलब कुछ भी करने से पहले है।

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

अपने प्रश्नों का उत्तर दें।
1) नहीं। संदेश, यदि लगातार, क्रैश किए गए कतार प्रबंधक में रहेगा। उन्हें अन्य कतार प्रबंधक में स्थानांतरित नहीं किया जाएगा। चूंकि कतार प्रबंधक स्वयं उपलब्ध नहीं है, कतार प्रबंधक तक लाया जाने तक कुछ भी नहीं किया जा सकता है।
2) नहीं। कतार प्रबंधक ऐसा नहीं कर सकता है। कतार प्रबंधक उपलब्धता की जांच करने और पुनः कनेक्ट करने के लिए एप्लिकेशन का कर्तव्य है। डब्लूएमक्यू स्वचालित क्लाइंट रिकनेक्शन फीचर प्रदान करता है जहां डब्लूएमक्यू क्लाइंट लाइब्रेरी में कनेक्शन टूटी हुई त्रुटियों का पता लगाने पर स्वचालित रूप से कतार प्रबंधक से पुनः कनेक्ट होता है। यह सुविधा WMQ v7.x और ऊपर से सी और जावा क्लाइंट के साथ उपलब्ध है। सी # क्लाइंट v7.1 से सुविधा का समर्थन करता है।

आपकी उच्च उपलब्धता आवश्यकता के लिए, आप WMQ की मल्टी इंस्टेंस कतार प्रबंधक सुविधा का उपयोग कर देख सकते हैं। यह सुविधा दो अलग-अलग मशीनों पर चल रहे एक ही कतार प्रबंधक के सक्रिय/निष्क्रिय उदाहरण सक्षम करती है। कतार प्रबंधक का सक्रिय उदाहरण ग्राहक कनेक्शन को संभाला जाएगा जबकि निष्क्रिय उदाहरण नींद मोड में होगा। दोनों उदाहरण डेटा और लॉग साझा करेंगे। एक बार सक्रिय उदाहरण नीचे जाने के बाद, निष्क्रिय उदाहरण सक्रिय हो जाता है। आपके पास सक्रिय कतार प्रबंधक नीचे जाने से पहले कतार में मौजूद सभी लगातार संदेशों तक पहुंच होगी।

मल्टी इंस्टेंस कतार प्रबंधक पर अधिक के लिए WMQ InfoCenter के माध्यम से पढ़ें।

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