हा के रूप में एक मौजूदा JNDI HornetQ सेवा बनाने के लिए कदम?


177

टी एल; डॉ

हॉनेटक्यू सेटअप के साथ हा-जेएनडीआई सेवा को कॉन्फ़िगर करने के लिए क्या कदम हैं? मेरा मानना ​​है कि प्रलेखन थोड़ा बिखरा हुआ है। मैंने यहां डॉक्स के माध्यम से पढ़ा है, लेकिन विस्तार से वर्णन नहीं करता है।

लंबा संस्करण:

तो हमारे पास JNDI के साथ एक HornetQ JMS सेटअप है। हमारे पास 5 सर्वर हैं, जो प्रत्येक पर JNDI सेवा के साथ HornetQ JMS मास्टर उदाहरण चलाते हैं। इन 5 सर्वरों में से प्रत्येक पर, हमारे पास कुछ अन्य हॉर्नेटक्यू मास्टर के लिए चलने वाला दास भी है।

चित्रित करना:

Server A - HornetQa_master, JNDI, HornetQb_slave
Server B - HornetQb_master, JNDI, HornetQc_slave
Server C - HornetQc_master, JNDI, HornetQd_slave
Server D - HornetQd_master, JNDI, HornetQe_slave
Server E - HornetQe_master, JNDI, HornetQa_slave

इनमें से प्रत्येक हॉर्नेटक्यू सर्वर हमारी विभिन्न बैकएंड जरूरतों के लिए मिडलवेयर के रूप में काम करता है, इसलिए इसका अर्थ है 5 सर्वर, 5 हॉर्नेट क्यू मास्टर इंस्टेंस, 5 हॉर्नेट क्यू दास इंस्टेंस और 5 जेएनडीआई सर्वर। हालाँकि, इस सेटअप के साथ समस्या यह है कि यदि कोई सर्वर होस्ट (केवल प्रक्रिया नहीं, होस्ट स्वयं), तो A कहता है कि आदर्श रूप से, सेवा को सर्वर E पर चलने वाले HornetQ में वापस आना चाहिए जो A के HornetQ दास को होस्ट करता है। हालाँकि, HornetQ मास्टर के रूप में फिर से शुरू करने के लिए, HornetQa_slave को सर्वर A पर चलने वाली JNDI प्रक्रिया से बात करने की जरूरत है (मैं संदेशों को दोहराने के लिए अनुमान लगाता हूं)। चूंकि मेजबान A स्वयं नीचे है, E पर चल रहे HornetQa_slave के पास A पर JNDI से बात करने का कोई तरीका नहीं है, और इस प्रकार, मास्टर प्रक्रिया के रूप में फिर से शुरू नहीं हो सकता है।

यदि JNDI सेवा अत्यधिक उपलब्ध होती, तो गुलाम हॉर्नेट की प्रक्रिया अपेक्षित रूप से मास्टर के रूप में फिर से शुरू हो सकती थी। क्या कोई कृपया दस्तावेज़ को इंगित कर सकता है या सरल चरणों में बता सकता है कि हम अपने मौजूदा सेटअप को HA-JNDI में कैसे बदल सकते हैं? इसके लायक क्या है, मैंने कई स्रोतों को पढ़ा है , लेकिन यह एक एचएएन-जेएनडीआई को कॉन्फ़िगर करने के साथ कैसे जाना है, इसके बारे में बहुत विस्तार से वर्णन नहीं करता है। कृपया मुझे बताएं कि क्या आपको हमारे वर्तमान सेटअप के बारे में अधिक जानकारी की आवश्यकता है।


8
आपके ग्राहक कहां चल रहे हैं? क्या वे एक ही उदाहरण पर या किसी अन्य उदाहरण / JVM, या दोनों से चल रहे हैं?
जाजवोक

3
@jjhavokk वे एक और JVM
gravetii

4
क्या आप उच्च उपलब्धता मोड (सक्रिय - निष्क्रिय प्रतिकृति) में HornetQ सक्षम कर सकते हैं? सर्वर डायनामिक डिस्कवरी के साथ युगल और आपके पास विश्वसनीय कमबैक होना चाहिए। देखें docs.jboss.org/hornetq/2.4.0.Final/docs/user-manual/html/... और docs.jboss.org/hornetq/2.4.0.Final/docs/user-manual/html/...
diginoise

4
आप किस संस्करण के jboss चला रहे हैं?
eis

5
मैं देखता हूं कि यह वास्तव में पुराना है, लेकिन मुझे आश्चर्य है कि अगर आपको जवाब मिल गया। अब तक आप शायद जानते हैं कि हा को संदेशों को प्रचारित करने के लिए <आगे-जब-नहीं-उपभोक्ताओं> सच </ आगे-जब-कोई-उपभोक्ताओं> की आवश्यकता होती है, लेकिन यह कि मास्टर करने में असफलता काम नहीं करती है। मैं वेबलॉग और वेबस्पेयर में एक ही कॉन्फिगर किया है, जहां असफलता काम करती है, लेकिन jboss के साथ नहीं है। क्या मास्टर को संदेशों को सिंक करने और अपडेट करने की अनुमति देने के लिए कुछ सेट करना है ताकि एक उचित असफलता काम करे?
user1442498 1:10 बजे

जवाबों:


1

वर्णित वास्तुकला के साथ यह मेरे लिए मुश्किल लगता है, क्योंकि वास्तव में आपको दास को मास्टर के रूप में पुन: कॉन्फ़िगर करने की आवश्यकता है और फिर आपके पास एक निश्चित आउटेज होगा।

हॉर्नेट क्यू को लाइव-बैकअप जोड़ी के माध्यम से प्रदान किया जाता है और लोड-बैलेंसिंग एक क्लस्टर के माध्यम से प्रदान की जाती है।

यदि आप हा और लोड-बैलेंसिंग दोनों चाहते हैं तो आपको एक साथ क्लस्टर किए गए 2 लाइव-बैकअप जोड़े की आवश्यकता होगी।

स्रोत: https://developer.jboss.org/thread/254232

आप मास्टर को होस्टनाम द्वारा नहीं बल्कि वर्चुअल आईपी एड्रेस का उपयोग करके संदर्भित कर सकते हैं , ताकि मास्टर डाउन होने की स्थिति में, आप दास में से किसी एक को मास्टर के रूप में पुन: कॉन्फ़िगर कर सकें, और वर्चुअल आईपी को शुरू कर सकें ताकि आपको बाकी को फिर से कॉन्फ़िगर न करना पड़े। गुलामों की। (गुरु के नीचे होने पर भी HA रखने के लिए, आप 2 दास रखना चाहते हैं, ताकि आप उनमें से किसी एक को गुरु के रूप में पुनः आरंभ कर सकें और अभी भी एक चल रहा होगा)।

उसी परिणाम को प्राप्त करने का दूसरा तरीका मास्टर के लिए DNS होस्टनाम विशिष्ट के साथ है जिसे आप एक होस्ट के डाउन होने पर एक अलग आईपी को इंगित करने के लिए पुन: कॉन्फ़िगर कर सकते हैं। चूंकि DNS कैश्ड है, इसलिए यह प्रविष्टियाँ 'होस्ट' फ़ाइल में बेहतर होनी चाहिए।

यदि प्रति हा-डोमेन 3 होस्ट बहुत अधिक हार्डवेयर है, तो आप अधिक हार्डवेयर खरीदने की आवश्यकता के बिना वर्चुअल सर्वर के साथ इस आसान को पूरा कर सकते हैं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.