كيفية إنشاء قاعدة بيانات Redis المتاحة للغاية مع مراقبة الحارس

منشور من طرف Zevenet | 10 يونيو 2019

نظرة عامة

رديس هو مخزن بنية بيانات مفتوح المصدر يمكن استخدامه كوسيط للرسائل وذاكرة التخزين المؤقت وقاعدة بيانات قيمة المفتاح. وهو يدعم العديد من هياكل البيانات: التجزئة ، والقوائم ، والمجموعات ، والمجموعات التي تم فرزها ، والصور النقطية ، والفهارس الجغرافية المكانية ، والمدونات التشعبية ، وما إلى ذلك.

ما يجعل Redis فريدة من نوعها هو أنه يمكن اعتبار كل من مخزن وذاكرة التخزين المؤقت. تم تصميمه بطريقة يتم فيها تعديل البيانات و / أو قراءتها من ذاكرة الكمبيوتر الرئيسية.

من بين ميزات أخرى ، يوفر Redis توفر عالية ، عبر ريديس الحارس، والتقسيم التلقائي ، عبر ريديس المجموعة. بالإضافة إلى ذلك ، لدى Redis آلية نسخ متماثل تسمح لمثيلات العبيد بأن تكون نسخًا دقيقة للمثيلات الرئيسية. سيقوم العبد بإعادة الاتصال تلقائيًا بالسيد في كل مرة ينكسر فيها الرابط ، وسيكون هدفه هو الحصول على نسخة دقيقة منه.

نظرًا لأن Redis Sentinel يوفر توفرًا عاليًا لـ Redis ، يمكنه التعامل مع حالات الفشل تلقائيًا دون أي تدخل بشري في العديد من الحالات ، ولكنه يوفر أيضًا مهام أخرى مثل المراقبة والإشعارات ويعمل كموفر تكوين للعملاء.

لكن، ماذا يحدث عندما يكتشف Sentinel خادم Redis أسفل؟ سنكتشف في هذا المقال كيفية إنشاء خدمة افتراضية كاملة ومتاحة للغاية لـ Redis.

يرجى مراعاة أنه يمكن إجراء هذا التكوين أيضًا حتى إذا كان خادم Redis لا يستخدم Sentinel للمراقبة.

Redis تحميل موازنة البيئة

يظهر السيناريو الذي نريد تحقيقه في هذه المقالة في الرسم البياني أدناه.

يتحقق Redis Sentinel من حالة جميع العقد Redis ويغير دور خادم Redis بمجرد اكتشاف خطأ.

يتحقق موازن التحميل من الحالة أيضًا ، ولكنه يقوم بذلك بشكل دوري كل بضع ثوانٍ. قد تكون هناك حالات يكتشف فيها Sentinel المشكلة ولكن قد يستغرق تحقيق موازن التحميل بضع ثوانٍ ليحققه. قد يؤدي ذلك إلى إرسال موازن طلبات إلى السيد الخطأ وهو الذي فشل للتو ولكن تم تبديل بواسطة Sentinel.

Zevenet تقدم طريقة لحل هذه المشكلة ، تقوم مزرعة L4 بإجراء فحوصات بشكل دوري. من ناحية أخرى ، هناك أيضًا التدفق الذي تم تمريره إلى الواجهة الخلفية والذي لا يحتوي على فحص سابق. عندما يدرك الوصي على المزرعة أن الواجهة الخلفية لا تستجيب ، فإنه يدق ناقوس الخطر ، مشيرًا إلى أن التدفق لا ينبغي أن يسير بهذه الطريقة.

مع أخذ هذا في الاعتبار ، لدينا من ناحية الشيكات ومن ناحية أخرى الطلبات. إذا فشل التحقق ، فسيتم إرسال التدفق على الفور إلى عقدة أخرى. يتم إعادة توجيه الالتماسات المستمرة إلى عقدة أخرى عبر الإنترنت. سيتم شرح ذلك بمزيد من التفصيل في التكوين.

Redis تحميل موازنة التكوين

قبل إعداد المزرعة ، نحتاج إلى امتلاك IP افتراضي. لتحقيق ذلك ، انتقل إلى الشبكة> واجهات افتراضية. ثم انقر فوق الإجراء> إنشاء واجهة افتراضية. بعد ذلك ، حدد واجهة الأم, اسم الواجهة الافتراضية ولها عنوان IP:

بعد ذلك ، بالنسبة لخادم Redis الافتراضي ، نحتاج إلى إنشاء مزرعة L4xNAT. لذلك ، اذهب إلى LSLB> مزارع، ثم انقر فوق الحالة و إنشاء مزرعة.

بمجرد تعيين المعلمات الأولية ، انقر فوق إنشاء. بعد ذلك ، اذهب إلى متقدم علامة التبويب وتأكد من أن نوع البروتوكول هو TCP.

بعد ذلك ، اذهب إلى الخدمات. سيتم إعداد Backends و Farm Guardian للفحص الصحي المتقدم. أولا العثور على الخلفيات القسم ، وانقر على الإجراءات> إضافة الخلفية كما هو موضح أدناه:

مراقبة Redis وفحص الصحة المتقدمة

أخيرًا ، يلزم إجراء فحص Farm Guardian للتأكد من أننا نستخدم دائمًا العقدة عبر الإنترنت ، كما هو موضح في الحالة السابقة. لذلك ، نحتاج إلى تكوين ما يلي كأمر Farm Guardian:

check_tcp -E -H HOST -p PORT -s 'info replication\r\n' -e role:master -t 3

أين HOST و PORT سيتم استبدال عنوان IP والمنفذ الخاص بخادم Redis في كل خلفية. الامر تكرار المعلومات سيحصل على المعلومات من خادم Redis من أجل التحقق من الرئيسي على قيد الحياة ، وسيتم إعادة توجيه الاتصالات فقط إلى الخادم إذا تم تقديم سيد الدور ، بمجرد أن يقوم Sentinel بتغيير الدور ، فسيقوم موازن التحميل باكتشاف التغيير و Redis سيتم وضع علامة الخادم أسفل. العلم -t هو عدد الثواني التي سينتظر فيها Farm Guardian استجابة خادم Redis ومن ثم إذا تم الوصول إلى المهلة دون استجابة ، فسيتم وضع علامة على خادم Redis أسفله. من ناحية أخرى ، بمجرد استعادة خادم Redis الصحي ، فسيصبح الأمر كذلك مرة أخرى.

ولكن قبل تعديل Guard Farm لهذه المزرعة المعينة ، انتقل إلى رصد> Farmguardian ثم انقر فوق العمل> إنشاء Farmguardian.

اختر اسمًا وصفيًا لمدقق صحة Redis Sentinel الجديد ، على سبيل المثال ، check_redis_master كما في المثال ، اختر الآن check_tcp في المقدمة Farmguardian لنسخ وانقر على إنشاء كما هو مبين أدناه.

أخيرًا ، انسخ الأمر المذكور أعلاه في أمر المعلمة والقيام التكوين كما هو مبين أدناه.

انقر على إرسال.

الآن ، حدد هذا الفحص الصحي المتقدم من Farm Guardian الجديد في خدمة Redis الافتراضية. ارجع الى LSLB> مزارع، إلى المزرعة التي تم إنشاؤها بالاسم RedisFarm, الخدمات التبويب. وأخيرا ، حدد check_redis_master القيادة التي تم إنشاؤها للتو تحت الشيكات الصحية للوظيفه.

انقر على تحديث المزرعة والآن Redis ستكون متاحة بشكل كامل للغاية.

مراجع

https://redis.io/topics/sentinel
https://redis.io/topics/cluster-tutorial

مشاركة مع :

وثائق بموجب شروط رخصة جنو للوثائق الحرة.

هل كان المقال مساعدا؟!

مقالات ذات صلة