ریڈیس سینٹینیل

Ry Ys Syn Ynyl



ایک منظر نامہ فرض کریں جہاں آپ کے پاس آپ کی پیداوار میں صرف ایک Redis مثال ہے اور یہ کسی وجہ سے کسی موقع پر ناکام ہوجاتا ہے۔ آپ کی ایپلیکیشن ریڈیس ڈیٹا اسٹور میں ڈیٹا کیش کرتی ہے اور اب آپ کا واحد ڈیٹا سورس ختم ہوچکا ہے۔ اس قسم کے منظرناموں کو کنٹرول کرنے کا ایک طریقہ ماسٹر-غلام فن تعمیر کو برقرار رکھنا ہے جہاں غلام ماسٹر نوڈ کی نقل تیار کر سکتے ہیں جب تک کہ یہ واپس نہ آجائے۔ ریڈیس کلسٹرز ماسٹر ریپلیکا اپروچ کے ساتھ کچھ حد تک اعلیٰ دستیابی کی حمایت کرتے ہیں۔ Redis Sentinel ایک اور نقطہ نظر ہے جو Redis مثالوں کی اعلی دستیابی کو برقرار رکھنے کا ایک زیادہ قابل اعتماد طریقہ فراہم کرتا ہے۔ یہ ناکامیوں کے لیے ریڈیس ماسٹر نوڈ کی نگرانی کرتا ہے اور فیل اوور کے عمل کو فوری طور پر متحرک کرتا ہے جو موجودہ غلام نوڈ کو بالکل نئے ماسٹر کے لیے فروغ دے گا۔







مزید برآں، Redis سینٹینل ایک مڈل مین کے طور پر کام کرتا ہے جہاں کلائنٹ جڑتے ہیں اور جدید ترین ماسٹر نوڈ IP ایڈریس طلب کرتے ہیں۔ لہذا، منسلک سینٹینل فوری طور پر ماسٹر نوڈ ایڈریس فراہم کرتا ہے۔



اس کے علاوہ، ایک ماسٹر نوڈ کی ناکامی کی تصدیق کی جاتی ہے اگر متعدد سینٹینلز اس بات پر متفق ہوں کہ دیا گیا ماسٹر قابل رسائی یا دستیاب نہیں ہے۔ یہ ناکامی کا پتہ لگانے کے مرحلے کو ختم کرتا ہے اور فیل اوور کا عمل فوراً شروع ہو جاتا ہے۔ لہذا، Redis سینٹینل کو مخصوص خصوصیات کے ساتھ تقسیم شدہ نظام کے طور پر دیکھا جا سکتا ہے۔



سینٹینلز کا معاہدہ کورم کی قیمت پر مبنی ہے جس پر اگلے حصے میں بحث کی جائے گی۔





جس کی قدر

کورم ویلیو سینٹینلز کی زیادہ سے زیادہ تعداد ہے جس پر ماسٹر نوڈ کے نیچے ہونے پر متفق ہونا ضروری ہے۔ یہ قدر صرف ماسٹر نوڈ میں ناکامی کی نشاندہی کرنے کے لیے استعمال ہوتی ہے۔ فیل اوور کا عمل ایک سے زیادہ دستیاب سینٹینل نوڈس کی اجازت کے ساتھ شروع ہوتا ہے تاکہ لیڈر کے طور پر منتخب سینٹینل کے ساتھ آگے بڑھ سکے۔

ریڈیس سینٹینیل کی خصوصیات

سینٹینل ریڈیس ڈیٹا اسٹور کے لیے اعلیٰ دستیابی کا طریقہ کار فراہم کرنے کے لیے جانا جاتا ہے۔ اس کے علاوہ، کئی دوسری صلاحیتیں درج کی جا سکتی ہیں۔



  • سینٹینیل آپ کے ریڈیس سسٹم میں ماسٹر اور غلام نوڈس کی حیثیت کی مسلسل نگرانی کرتا ہے۔
  • جب بھی آپ کی Redis مثالوں میں کوئی ناکامی یا کچھ غلط ہوتا ہے، سینٹینل ایڈمنسٹریٹر یا منسلک ایپلی کیشنز کو سینٹینیل API کا استعمال کرتے ہوئے مطلع کرنے کے قابل ہوتا ہے۔
  • فیل اوور مرحلے کی ہدایت سینٹینل کے ذریعہ ایک نقل کو نئے ماسٹر کے طور پر فروغ دے کر کی جاتی ہے۔ بقیہ نقلیں نئے ماسٹر کو استعمال کرنے کے لیے ترتیب دی گئی ہیں۔ آخر میں، متعلقہ کلائنٹس کو نئے ماسٹر نوڈ ایڈریس کے بارے میں مطلع کیا جائے گا۔
  • اس کے علاوہ، Redis سینٹینل منسلک کلائنٹس کے لیے ایک کنفیگریشن فراہم کنندہ ہے جہاں کلائنٹ اس وقت دستیاب ماسٹر مثال کے ایڈریس کے بارے میں پوچھ سکتے ہیں اور اگر اچانک گرنے کی صورت میں، سنٹینل نئے ماسٹر نوڈ ایڈریس کو فوری طور پر آگے بڑھانے کے لیے پرعزم ہے۔

اگلے حصے میں، ہم ریڈیس سینٹینلز کو ماسٹر ریپلیکا مثالوں کے ساتھ ترتیب دیں گے اور نوڈس کی نگرانی کے لیے سینٹینیل API کا استعمال کریں گے۔

سینٹینیل کنفیگریشن

سب سے پہلے، ہم پورٹ 7000 اور 7001 پر دو Redis مثالیں بناتے ہیں۔ پورٹ 7000 ماسٹر نوڈ بننے جا رہا ہے اور دوسرا ماسٹر کی نقل تیار کرتا ہے۔ دونوں مثالیں بالترتیب درج ذیل تشکیل فائلوں کا استعمال کرتی ہیں۔

ماسٹر نوڈ کنفیگریشن

بندرگاہ 7000
کلسٹر فعال نمبر
cluster-config-file nodes.conf
کلسٹر نوڈ ٹائم آؤٹ 5000
ملحقہ جی ہاں

غلام نوڈ کنفیگریشن

بندرگاہ 7001
کلسٹر فعال نمبر
cluster-config-file nodes.conf
کلسٹر نوڈ ٹائم آؤٹ 5000
ملحقہ جی ہاں

دونوں مثالیں ہر ایک کے ساتھ منسلک کنفیگریشن فائل فراہم کرکے شروع ہوں گی۔ ہم Redis مثالوں کو الگ سے شروع کرنے کے لیے درج ذیل کمانڈ کا استعمال کر سکتے ہیں۔

redis-server redis.conf

آئیے ذیل میں پورٹ 7001 سے شروع ہونے والے Redis مثال سے منسلک ہوں:

redis-cli -p 7001

اب، ہم اس مثال کو ماسٹر کی نقل بنا سکتے ہیں جو پورٹ 7000 پر چل رہا ہے۔ REPLICAOF کمانڈ کو اس طرح استعمال کیا جا سکتا ہے:

127.0.0.1 کی نقل 7000

جیسا کہ توقع کی گئی ہے، پورٹ 7001 پر چلنے والی مثال پورٹ 7000 پر چلنے والے ماسٹر کی ریپلیکا نوڈ بن گئی۔

اب، ہم مندرجہ بالا ماسٹر مثال کی نگرانی کے لیے تین Redis سینٹینلز کو ترتیب دینے کے لیے تیار ہیں۔ ہمیں بندرگاہوں 5000، 5001، اور 5002 پر تین سینٹینیل مثالیں بنانے کے لیے تین کنفیگریشن فائلوں کی ضرورت ہے جیسا کہ درج ذیل میں دکھایا گیا ہے۔

ہر ایک sentinel.conf فائل مندرجہ ذیل کی طرح دکھتی ہے سوائے اس کے کہ پورٹ نمبر تبدیل ہو جائے گا۔

بندرگاہ 5000
سینٹینیل مانیٹر ماسٹر نوڈ 127.0.0.1 7000 دو
سینٹینیل ڈاون-آفٹر-ملی سیکنڈ ماسٹرنوڈ 5000
سینٹینیل فیل اوور ٹائم آؤٹ ماسٹر نوڈ 60000

اب، یہ تینوں سینٹینلز کو چلانے کا وقت ہے۔ آپ redis-sentinel executable کو راستے کے ساتھ استعمال کر سکتے ہیں۔ sentinel.conf ایک سینٹینیل مثال بنانے کے لیے کنفیگریشن فائل۔ بصورت دیگر، ہم اب بھی redis-server کو راستہ بتا کر ایگزیکیوٹیبل کہہ سکتے ہیں۔ sentinel.conf اور پرچم - سینٹینیل .

آئیے درج ذیل کمانڈ کا استعمال کرتے ہوئے ہر ایک سنٹینل کو شروع کریں:

redis-server sentinel.conf --سینٹینیل

پہلا سنٹینل پورٹ 5000 پر شروع کیا گیا ہے۔ اسی طرح، آپ دیگر دو مثالیں بھی شروع کر سکتے ہیں۔

اب، ہمارا Redis سینٹینیل سیٹ اپ تیار ہے اور چل رہا ہے جیسا کہ مندرجہ ذیل مثال میں دکھایا گیا ہے:

مندرجہ ذیل حصے میں، ہم سینٹینیل API کے بارے میں مزید دریافت کریں گے اور یہ کہ ہم Redis ماسٹر نوڈ سے متعلق معلومات کو بازیافت کرنے کے لیے اس کا استعمال کیسے کر سکتے ہیں۔

سینٹینیل API

Redis متعلقہ ماسٹرز اور نقلوں کی نگرانی کرنے، اطلاعات کے لیے سبسکرائب کرنے، اور سینٹینیل کی ترتیبات میں ترمیم کرنے کے لیے ایک علیحدہ سینٹینیل API فراہم کرتا ہے۔ مزید برآں، کئی استعمالات درج ذیل میں درج ہیں۔

  • مانیٹر شدہ ریڈیس ماسٹر اور غلام مثالوں کی حیثیت کو چیک کریں۔
  • دیگر سینٹینلز کے بارے میں تفصیلات
  • ناکامی کی صورت میں سینٹینلز سے پش اسٹائل کی اطلاعات موصول کریں۔

SENTINEL کمانڈ کو اس کے متعلقہ ذیلی کمانڈز کے ساتھ استفسار کرنے، اپ ڈیٹ کرنے یا Redis سینٹینیلز اور مانیٹر شدہ نوڈس کو سیٹ کرنے کے لیے استعمال کیا جا سکتا ہے۔

ماسٹر نوڈ کی حیثیت کو چیک کریں۔

وقتا فوقتا ماسٹر نوڈ کی صحت کی نگرانی یا جانچ کرنا بہت ضروری ہے۔ درج ذیل سینٹینیل API کمانڈ کو ماسٹر کی تفصیلات حاصل کرنے کے لیے استعمال کیا جا سکتا ہے۔

سینٹینل ماسٹر < مانیٹرڈ_ماسٹر_نام >

مانیٹرڈ_ماسٹر_نام: ماسٹر نوڈ کا نام جو سینٹینیل کنفیگریشن فائل میں بیان کیا گیا ہے جسے ہم نے پہلے مرحلے میں بنایا تھا۔

آئیے اس کمانڈ کو اپنے سیٹ اپ میں ماسٹر اسٹیٹس کے بارے میں استفسار کرنے کے لیے استعمال کریں۔ ہمارے معاملے میں، ماسٹر نوڈ کا نام ہے 'ماسٹر نوڈ'۔

سینٹینیل ماسٹر ماسٹر نوڈ

معلومات کے کئی ٹکڑوں کو بازیافت کیا گیا ہے اور ان میں سے کچھ اہم ہیں جیسے نمبر غلام، جھنڈے، اور نمبر دیگر-سینٹینلز۔

دی جھنڈے جائیداد مقرر ہے ماسٹر جس کا مطلب ہے کہ ماسٹر اچھی صحت میں ہے۔ جب بھی ماسٹر نوڈ نیچے ہوتا ہے، s_down یا o_down پرچم دکھایا جائے گا. جائیداد دیگر-سینٹینلز کی تعداد 2 پر سیٹ کیا گیا ہے جس کا مطلب ہے کہ Redis سینٹینیل نے پہلے سے ہی ماسٹر نوڈ کے لیے دوسرے دو سینٹینلز کو پہچان لیا ہے۔ اس کے علاوہ، the غلاموں کی تعداد پراپرٹی ماسٹر نوڈ کے لیے دستیاب نقلیں دکھاتی ہے۔ اس صورت میں، یہ 1 پر سیٹ ہے کیونکہ ہمارے پاس صرف ایک نقل ہے۔

منسلک نقلوں کے بارے میں معلومات حاصل کریں۔

ہم درج ذیل SENTINEL ذیلی کمانڈ کا استعمال کرتے ہوئے ماسٹر نوڈ کے ساتھ منسلک نقلوں کو چیک کر سکتے ہیں۔

سینٹینیل replicas < مانیٹرڈ_ماسٹر_نام >

اس مثال میں، ماسٹر کا نام 'ماسٹر نوڈ' ہے۔

SENTINEL replicas masternode

جیسا کہ توقع کی گئی تھی، سینٹینیل نے پورٹ 7001 پر چلنے والے غلام نوڈ کا پتہ لگایا۔

ایسوسی ایٹڈ سینٹینلز کے بارے میں معلومات حاصل کریں۔

اسی طرح، ہم درج ذیل SENTINEL ذیلی کمان کا استعمال کرتے ہوئے موجودہ ماسٹر نوڈ سے وابستہ دیگر سینٹینلز سے متعلق تفصیلات سے استفسار کر سکتے ہیں۔

سینٹینیل سینٹینلز < master_node_name >

اس صورت میں، ہم 'masternode' نامی ماسٹر نوڈ سے متعلق معلومات حاصل کریں گے۔

سینٹینل سینٹینلز ماسٹر نوڈ

ماسٹر نوڈ ایڈریس حاصل کریں۔

جیسا کہ پہلے حصے میں ذکر کیا گیا ہے، Redis sentinel منسلک کلائنٹس کے لیے کنفیگریشن فراہم کنندہ ہے۔ لہذا، یہ درخواست کردہ کلائنٹس کو فی الحال چل رہا ماسٹر نوڈ آئی پی ایڈریس اور پورٹ فراہم کرنے کے قابل ہے۔ درج ذیل سینٹینیل API ذیلی کمانڈ کو مذکورہ معلومات کو بازیافت کرنے کے لیے استعمال کیا جا سکتا ہے۔

سینٹینیل GET-MASTER-ADDR-BY-NAME < master_node_name >

آئیے اپنے منظر نامے کے لیے مندرجہ بالا کمانڈ پر عمل کریں:

سینٹینیل get-master-addr-by-name masternode

ہم نے صرف چند سینٹینل API کمانڈز پر تبادلہ خیال کیا۔ کئی دیگر ذیلی کمانڈز دستیاب ہیں جیسے سینٹینیل-فیل اوور، سینٹینیل انفو-کیشے، سینٹینیل ماسٹرز، اور وغیرہ۔ مزید برآں، انتظامیہ کے مقاصد کے لیے بھی بہت سی کمانڈز دستیاب ہیں۔ درج ذیل حصے میں، ہم Redis سینٹینیل فیل اوور کے عمل پر توجہ مرکوز کریں گے۔

سینٹینیل فیل اوور عمل

چونکہ ہمارا سینٹینل ترتیب دیا گیا ہے، ہم فیل اوور مرحلے کی جانچ کر سکتے ہیں۔ آئیے اپنے ماسٹر نوڈ کو 300 سیکنڈ کے لیے سونے کے لیے بھیجتے ہیں جو کہ ماسٹر نوڈ میں ناکامی کی نقل کرتا ہے۔

ڈیبگ سونا 300

ماسٹر نوڈ جو پورٹ 7000 پر چل رہا ہے اب ناقابل رسائی ہونا چاہئے۔ لہذا، متعلقہ سینٹینلز دیکھیں گے کہ ماسٹر اس کے ساتھ دستیاب نہیں ہے۔ +sdown تقریب. پھر، یہ مقرر کیا جائے گا +اوڈاون جہاں 2 سینٹینلز تصدیق کرتے ہیں کہ کورم ویلیو کے مطابق ماسٹر نوڈ نیچے ہے۔ آخر میں، فیل اوور کا مرحلہ شروع ہو جائے گا اور مثالی طور پر نقل کو نئے ماسٹر میں ترقی دی جانی چاہیے۔

آئیے ماسٹر نوڈ آئی پی ایڈریس اور پورٹ کو دوبارہ چیک کریں۔

سینٹینیل get-master-addr-by-name masternode

جیسا کہ توقع کی گئی ہے، پچھلی نقل کو نئے ماسٹر میں ترقی دے دی گئی ہے جس کا مطلب ہے کہ سینٹینل فیل اوور کا عمل کامیاب ہے۔ یہ سنگل ماسٹر ریپلیکا جوڑی کے لیے ہمارے تین سینٹینل سیٹ اپس کی تعیناتی اور جانچ کا اختتام کرتا ہے۔

نتیجہ

دی گئی Redis ماسٹر ریپلیکا مثال کی اعلی دستیابی کو یقینی بنانے کے لیے Redis سینٹینیل سب سے زیادہ قابل اعتماد طریقہ ہے۔ ایک سینٹینل انسانی مداخلت کے بغیر خودکار فیل اوور کی نگرانی، اطلاع دینے اور شروع کرنے کی صلاحیت رکھتا ہے۔ اس کے علاوہ، متعدد سینٹینلز ایک ساتھ اس حقیقت کے بارے میں متفق ہیں کہ ماسٹر نوڈ ناقابل رسائی ہے اور کورم ویلیو کو زیادہ سے زیادہ سینٹینلز کی تعداد کے طور پر استعمال کیا جاتا ہے جس پر ماسٹر مثال کی دستیابی کی جانچ کرتے وقت اتفاق کرنا ضروری ہے۔ Redis Sentinel ماسٹر نوڈ اور اس سے منسلک نقلوں کی صحت کے بارے میں معلومات حاصل کرنے اور انتظامی کاموں کو انجام دینے کے لیے استعمال میں آسان API پیش کرتا ہے۔