نظرة عامة #
رديس هو مخزن بيانات مفتوح المصدر في الذاكرة، يُستخدم كوسيط رسائل، وذاكرة تخزين مؤقتة، وقاعدة بيانات مفتاح-قيمة. يدعم العديد من هياكل البيانات: التجزئات، والقوائم، والمجموعات، والمجموعات المُرتبة، والخرائط النقطية، والفهارس الجغرافية المكانية، وسجلات التشعبات، وغيرها.
ما يميز Redis هو إمكانية اعتباره مخزنًا وذاكرة تخزين مؤقتة في آنٍ واحد. صُمم بحيث تُعدّل البيانات و/أو تُقرأ من ذاكرة الحاسوب الرئيسية.
من بين الميزات الأخرى، يوفر Redis توفرًا عاليًا، عبر ريديس سنتينل، والتقسيم التلقائي، عبر مجموعة Redisبالإضافة إلى ذلك، يوفر Redis آلية تكرار تسمح للنسخ التابعة بأن تكون نسخًا مطابقة للنسخ الرئيسية. سيعيد النسخ التابع الاتصال تلقائيًا بالنسخ الرئيسية في كل مرة ينقطع فيها الاتصال، وهدفه أن يكون نسخة مطابقة له.
نظرًا لأن Redis Sentinel يوفر توفرًا عاليًا لـ Redis، فيمكنه التعامل مع الأعطال تلقائيًا دون أي تدخل بشري في العديد من الحالات، ولكنه يوفر أيضًا مهام أخرى مثل المراقبة والإشعارات ويعمل كمزود تكوين للعملاء.
لكن، ماذا يحدث عندما يكتشف Sentinel أن خادم Redis معطل؟ سنكتشف في هذه المقالة كيفية إنشاء خدمة افتراضية كاملة ومتوفرة بدرجة عالية لـ Redis.
يرجى الأخذ في الاعتبار أن هذا التكوين يمكن أن يتم أيضًا حتى لو لم يكن خادم Redis الخاص بك يستخدم Sentinel للمراقبة.
بيئة موازنة تحميل Redis #
السيناريو الذي نريد تحقيقه في هذه المقالة يظهر في الرسم البياني أدناه.
يتحقق Redis Sentinel من حالة جميع عقد Redis ويغير دور خادم Redis بمجرد اكتشاف خطأ.
يتحقق موازن التحميل من الحالة أيضًا، ولكنه يُجري ذلك دوريًا كل بضع ثوانٍ. قد تكتشف Sentinel المشكلة في بعض الحالات، ولكن قد يستغرق موازن التحميل بضع ثوانٍ ليكتشفها. قد يؤدي هذا إلى إرسال موازن التحميل طلبات إلى الخادم الرئيسي الخاطئ، وهو الخادم الذي فشل للتو، ولكن تم تبديله بواسطة Sentinel.
RELIANOID يُقدم حلٌّ لهذه المشكلة، حيث تُجري مزرعة L4 عمليات فحص دورية. من ناحية أخرى، هناك أيضًا تدفق مُمرَّر إلى الواجهة الخلفية لا يحتوي على أي فحص سابق. عندما يُدرك حارس المزرعة أن الواجهة الخلفية لا تستجيب، يُطلق إنذارًا، مُشيرًا إلى أن التدفق لا ينبغي أن يسير في هذا الاتجاه.
مع مراعاة ذلك، لدينا من جهة عمليات التحقق، ومن جهة أخرى الطلبات. في حال فشل عملية التحقق، يُرسَل التدفق فورًا إلى عقدة أخرى. حتى الطلبات الجارية تُعاد توجيهها إلى عقدة أخرى متصلة بالإنترنت. سيتم شرح ذلك بمزيد من التفصيل في التكوين.
تكوين موازنة تحميل Redis #
قبل إنشاء المزرعة، نحتاج إلى عنوان IP افتراضي. لتحقيق ذلك، انتقل إلى الشبكة > الواجهات الافتراضية. ثم انقر فوق الإجراء > إنشاء واجهة افتراضية. بعد ذلك ، حدد واجهة الأم, اسم الواجهة الافتراضية ولها عنوان IP:
ثم، بالنسبة لخادم Redis الافتراضي، نحتاج إلى إنشاء مزرعة L4xNAT. لذلك، انتقل إلى LSLB > المزارع، ثم انقر فوق اكشن و إنشاء مزرعة.
بمجرد تعيين المعلمات الأولية، انقر فوق إنشاء. بعد ذلك ، اذهب إلى متقدم تأكد من أن نوع البروتوكول هو TCP.
بعد ذلك ، اذهب إلى الخدماتسيتم إعداد الخوادم الخلفية وحارس المزرعة هنا للتحقق من الصحة بشكل متقدم. ابحث أولاً عن الخلفيات القسم ، وانقر على الإجراءات > إضافة الواجهة الخلفية كما هو موضح أدناه:
مراقبة Redis والتحقق المتقدم من الصحة #
أخيرًا، يلزم إجراء فحوصات حارس المزرعة للتأكد من استخدامنا الدائم للعقدة المتصلة، كما شرحنا سابقًا. لذلك، نحتاج إلى تهيئة الأمر التالي لحارس المزرعة:
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 هو عدد الثواني التي ينتظرها حارس المزرعة لاستجابة خادم Redis، وإذا انقضت المهلة دون استجابة، فسيتم وضع علامة على خادم Redis بأنه معطل. من ناحية أخرى، بمجرد استعادة صحة خادم Redis، سيعود إلى حالته الطبيعية.
ولكن قبل تعديل حارس المزرعة لهذه المزرعة على وجه الخصوص، انتقل إلى المراقبة > حارس المزرعة ثم انقر فوق الإجراء > إنشاء حارس المزرعة.
اختر اسمًا وصفيًا لمدقق صحة Redis Sentinel الجديد، على سبيل المثال، check_redis_master كما في المثال، اختر الآن check_tcp في الملف Farmguardian للنسخ وانقر على إنشاء كما هو مبين أدناه.
وأخيرًا، انسخ الأمر المذكور أعلاه في أمر المعلمة وقم بإجراء التكوين كما هو موضح أدناه.
انقر على إرسال.
الآن، اختر فحص الصحة المتقدم الجديد لـ Farm Guardian في خدمة Redis الافتراضية. ارجع إلى LSLB > المزارع، إلى المزرعة التي تم إنشاؤها باسم ريديس فارم, الخدمات علامة التبويب. وأخيرًا، حدد check_redis_master الأمر الذي تم إنشاؤه للتو تحت فحوصات الصحة للواجهة الخلفية.
انقر على تحديث المزرعة والآن ستكون Redis متاحة بالكامل.
مراجع حسابات #
https://redis.io/topics/sentinel
https://redis.io/topics/cluster-tutorial






