सबसे पहले, प्रहरी बात करते हैं।
प्रहरी असफलता का प्रबंधन करता है, यह हा के लिए रेडिस को कॉन्फ़िगर नहीं करता है। यह एक महत्वपूर्ण अंतर है। दूसरा, आपके द्वारा पोस्ट किया गया आरेख वास्तव में एक बुरा सेटअप है - आप सेंटिनल को उसी नोड पर नहीं चलाना चाहते हैं जैसे कि रेडिस नोड्स इसे प्रबंधित कर रहा है। जब आप उस मेजबान को खो देते हैं तो आप दोनों हार जाते हैं।
"क्या यह संसाधनों की बर्बादी है?" यह आपके उपयोग के मामले पर निर्भर करता है। आपको उस सेटअप में तीन Redis नोड्स की आवश्यकता नहीं है, आपको केवल दो की आवश्यकता है। तीन आपके अतिरेक को बढ़ाते हैं, लेकिन इसकी आवश्यकता नहीं है। यदि आपको अतिरिक्त अतिरेक की आवश्यकता है तो यह संसाधनों की बर्बादी नहीं है। यदि आपको अतिरेक की आवश्यकता नहीं है, तो आप केवल एक ही Redis इंस्टेंस चलाते हैं और इसे अच्छा कहते हैं - जैसा कि अधिक चलाना "व्यर्थ" होगा।
दो दासों को चलाने का एक अन्य कारण रीड्स को विभाजित करना होगा। फिर, अगर आपको इसकी आवश्यकता है तो यह बेकार नहीं होगा।
जैसा कि "क्या उपलब्ध संसाधनों के पूर्ण उपयोग का एक बेहतर तरीका है?" हम इसका उत्तर नहीं दे सकते क्योंकि यह आपके विशिष्ट परिदृश्य और कोड पर बहुत अधिक निर्भर है। यह कहा गया है कि अगर स्टोर करने के लिए डेटा की मात्रा "छोटी" है और कमांड रेट बहुत अधिक नहीं है, तो याद रखें कि आपको रेडिस को एक होस्ट समर्पित करने की आवश्यकता नहीं है।
अब "क्या रेडिस संतान के लिए एक विकल्प के रूप में बदल रहा है?" यह वास्तव में आपके उपयोग के मामले पर पूरी तरह से निर्भर करता है। रेडिस क्लस्टर एक हा समाधान नहीं है - यह एक बहु लेखक / बड़ा-राम समाधान है। यदि आपका लक्ष्य सिर्फ HA है तो यह आपके लिए उपयुक्त नहीं होगा। रेडिस क्लस्टर सीमाओं के साथ आता है, विशेष रूप से बहु-कुंजी संचालन के आसपास, इसलिए यह जरूरी नहीं कि एक सीधा "बस क्लस्टर का उपयोग करें" ऑपरेशन है।
अगर आपको लगता है कि रेडिस (और तीन रनिंग सेंटिनल) चलाने वाले तीन होस्ट बेकार हैं, तो आप संभवतः क्लस्टर को और अधिक पकड़ लेंगे, क्योंकि इसके लिए अधिक संसाधनों की आवश्यकता होती है।
आपके द्वारा पूछे गए प्रश्न संभवतः लिखित रूप में जीवित रहने के लिए बहुत व्यापक और राय-आधारित हैं। यदि आपके पास कोई विशिष्ट मामला / समस्या है जिस पर आप काम कर रहे हैं तो कृपया उससे अपडेट करें ताकि हम विशिष्ट सहायता और जानकारी प्रदान कर सकें।
बारीकियों के लिए अद्यतन:
आपके परिदृश्य में उचित विफलता प्रबंधन के लिए मैं 3 संतानों के साथ जाऊँगा, जो आपके JBoss सर्वर पर चल रहा है। यदि आपके पास 3 JBoss नोड्स हैं, तो प्रत्येक पर एक के साथ जाएं। मेरे पास अलग-अलग नोड्स पर एक रेडिस पॉड (मास्टर + स्लेव) होगा, और प्रहरी को फेलओवर प्रबंधित करने दें।
वहां से जेबॉस / जेडिस को सेंटिनल का उपयोग करने के लिए यह सूचना और कनेक्शन प्रबंधन के लिए वायरिंग करने की बात है। जैसा कि मैंने उन त्वरित खोज का उपयोग नहीं किया है कि जेडिस के पास इसके लिए समर्थन है, आपको बस इसे सही ढंग से कॉन्फ़िगर करने की आवश्यकता है। कुछ उदाहरण मुझे मिले हैं जो सेंटिनल और https://github.com/xetorthio/jedis/issues/725 के साथ जेडिस के एक उदाहरण की तलाश में हैं जो JedisSentinelPool
एक पूल का उपयोग करने के लिए मार्ग होने की बात करते हैं ।
जब सेंटिनल एक फेलओवर को अंजाम देता है तो क्लाइंट्स को डिसकनेक्ट कर दिया जाएगा और जेडीस (सेंट?) संतरी से पूछकर हैंडल करेगा कि मौजूदा मास्टर कौन है।