Ticketing
التوثيق

L · إشعار القائد

البنيةrefresh

ليست استجابة لطلب، بل إشعار يرسله الخادم من تلقاء نفسه (خاص بالعنقود). فحين يرصد تغيّر قائد Raft، يرسل عنوان العميل الخاص بالقائد الجديد مرة واحدة إلى كل العملاء المتصلين بتلك العقدة.

ما الفرق بينه وبين M

M · تم النقلL · إشعار القائد
الطبيعةاستجابة لطلبإشعار من الخادم (لا علاقة له بطلب)
المعنى"لا يمكن معالجة هذا الطلب هنا""تغيّر القائد" (معلومة)
الاتصاليُغلق ويُعاد الاتصال بالقائد الجديديبقى مفتوحًا — يُحدَّث التلميح فقط
هذه العقدةمؤكد أنها ليست القائدقد تكون هي نفسها القائد الجديد

لا يجوز إغلاق الاتصال عند استلام L. فكثيرًا ما تكون العقدة المُرسِلة للإشعار هي القائد الجديد نفسه، كما أن هناك طلبات ما زالت تجري على ذلك الاتصال.

لماذا هو ضروري

بدون هذا الإشعار لا يعرف العميل بتغيّر القائد إلا بعد أن يرسل طلبًا فيرتد بـ M. أما L فيلغي تلك الرحلة، فيذهب أول طلب بعد تبديل الفشل مباشرة إلى القائد الجديد.

أما العملاء الأقدم الذين لا يعرفون هذا الـ op، فـتجاهله لا يضر بعملهم — يعود الأداء فقط إلى ما كان قبل الإشعار (طلب ← M ← إعادة محاولة).

ترميز البايتات: op حرف ASCII، وaddr نص UTF-8 (متغير الطول، يُعرض كـ N في البنية). \n الأخير هو 0A.

التدفق

العميل
العقدة المتصل بها
القائد الجديد
تغيّر القائد بانتخاب
L · إشعار القائد (عنوان القائد الجديد)
تحديث تلميح القائد فقط — يبقى الاتصال مفتوحًا
من الطلب التالي مباشرة إلى القائد الجديد
A · تم الحصول عليه (token)
طلباستجابة

في وضع الخادم المفرد لا وجود لمفهوم القائد، فلا يُرسل هذا الإشعار. لسلوك العنقود بشكل عام راجع البروتوكول (العنقود).