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

عرض الفئات

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

3 دقائق للقراءة

نظرة عامة #

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

ما يميز Redis هو إمكانية اعتباره مخزنًا وذاكرة تخزين مؤقتة في آنٍ واحد. صُمم بحيث تُعدّل البيانات و/أو تُقرأ من ذاكرة الحاسوب الرئيسية.

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

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

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

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

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

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

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

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

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

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

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

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

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

بعد ضبط المعلمات الأولية، انقر على "إنشاء ". ثم انتقل إلى علامة التبويب "متقدم" وتأكد من أن نوع البروتوكول هو TCP.

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

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

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

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

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

لكن قبل تعديل برنامج Farm Guardian لهذه المزرعة تحديدًا، انتقل إلى المراقبة > 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

📄 قم بتنزيل هذه الوثيقة بصيغة PDF #

    ُ:البريد الالكتروني *

    مدعوم من BetterDocs