الموثوقية: نمط الماجستير/العبيد محكوم عليه؟
-
30-09-2019 - |
سؤال
يستخدم المزيد والمزيد من قواعد بيانات NOSQL الموجودة في دائرة الضوء نمط Master/Slave لتوفير "توفر" ، ولكن ما تفعله (على الأقل من وجهة نظري) هو إنشاء الرابط الضعيف في سلسلة ستنهار في أي وقت. - يسقط الماجستير ، ويتوقف العبيد للعمل.
إنها طريقة رائعة للتعامل مع كميات كبيرة من البيانات وحتى خارج القراءات/يكتب ، ولكنها شوهدت في منظور التوفر؟ ليس كثيرا ...
أفهم من بعض NOSQL أنه يمكن تغيير العبيد ليكونوا سيدًا بسهولة ، لكن القيام بذلك سيكون صداعًا للتعامل معه في معظم التطبيقات. حق؟
إذن كيف تعتني الناس بهذا النوع من الأشياء؟ كيف يعمل ماجستير/عبوات الرقيق في العالم الحقيقي؟
المحلول
هذا سؤال معمم إلى حد ما. هل يمكنك تحديد مخازن البيانات التي تتحدث عنها على وجه التحديد؟
لقد كنت أعمل مع MongoDB ، وهو يتعامل مع هذا بأمان شديد ؛ كل عضو في "مجموعة النسخة المتماثلة" (أساسا ، مجموعة رئيسية العبد) مؤهلة لتصبح سيد. عند الاتصال بمجموعة نسخة طبق الأصل ، ستخبر المجموعة العميل المتواصل عن كل عضو في المجموعة. إذا كان السيد في المجموعة متصلًا بالإنترنت ، فسيقوم العبيد تلقائيًا بانتخاب سيد جديد ، وسيحاول العميل (نظرًا لأنه يحتوي على قائمة بجميع العقد في المجموعة) تجربة جديدة حتى يتصل ؛ ستقوم العقدة التي تتصل بها بإبلاغ العميل بالسيد الجديد ، ويقوم العميل بتبديل اتصاله. هذا يسمح بتفشل ماجستير/عبيد شفاف بالكامل دون أي تغييرات في التطبيق الخاص بك.
من الواضح أن هذا جيد للاتصالات الفردية ، ولكن ماذا عن إعادة التشغيل؟ سائق MongoDB يتعامل مع هذا أيضًا ؛ يمكن أن تقبل قائمة العقد لمحاولة الاتصال بها ، وسوف تجربها في المسلسل حتى تجد واحدة للاتصال بها. بمجرد الاتصال ، سوف تسأل العقدة من هو سيدها ، وإعادة توجيه الاتصال هناك.
النتيجة الصافية هي أنه إذا تم إنشاء مجموعة متماثلة ، فيمكنك بشكل فعال فقط القلق من أن أي عقدة واحدة ستأخذك في وضع عدم الاتصال.