जब एक मास्टर रेडिस क्लस्टर में नीचे जाता है, तो रेडिस दास से मास्टर को बढ़ावा देने के लिए नोड टाइमआउट की प्रतीक्षा करेगा। दास को गुरु के पद पर पदोन्नत करने में अतिरिक्त समय लग सकता है। उस समय के दौरान मास्टर दास को बढ़ावा देने के लिए नीचे जाता है, लिखता/पढ़ता है, विशेष रूप से लिखता है असफल हो जाएगा। मैं शून्य डाउनटाइम कैसे सुनिश्चित करूं?

2
user236215 18 जून 2020, 21:35

1 उत्तर

सबसे बढ़िया उत्तर

मुझे लगता है कि अधिकांश डेटाबेस के साथ यह एक आम समस्या है। मान लें कि आपके पास एक मोंगो प्रतिकृति है, और मास्टर नीचे चला जाता है, दास को पदोन्नत करने में कुछ समय लगता है, और आप मोंगो शार्ड, या MySQL के साथ लिखने को खो देते हैं।

यहां तक ​​​​कि अगर रेडिस तत्काल विफलता प्रदान कर सकता है (जो संभव नहीं है), आपके लेखन की गारंटी नहीं दी जा सकती है जब तक कि आप प्रत्येक ऑपरेशन पर डिस्क पर लिखने के साथ एओएफ का उपयोग नहीं करते हैं, लेकिन यह बहुत धीमा होगा और रेडिस के पूरे उद्देश्य को हरा देगा।

लिखने के लिए बेहतर गारंटी के करीब पहुंचने का एक समाधान यह होगा कि डेटा को काफ्का की तरह एक कतार में धकेल दिया जाए और रेडिस या किसी अन्य डेटास्टोर को अतुल्यकालिक रूप से लिखा जाए। लेकिन फिर आप एक और स्टैक का परिचय देते हैं, और हमें इसके फेलओवर के बारे में भी चिंता करनी होगी।

तो, मुझे लगता है कि हमें कैश की तरह रेडिस का इलाज करने की कोशिश करनी चाहिए, न कि स्थायी डेटास्टोर के रूप में।

1
Tuco 18 जून 2020, 19:44