ما هي بعض التقنيات لدفع التغييرات من مجلس الوزراء طوكيو في إعداد متعدد الخدمات؟
-
19-09-2019 - |
سؤال
دعنا نقول أن لدي N> 1 TCP، الموجهة نحو الاتصال (قراءة: ليس موقع الويب) خدمات التعامل مع الاتصالات من المستخدمين النهائيين في بعض تكوين التحميل المتوازن / المشاركة.
يقوم هؤلاء المستخدمون بأشياء تسبب تحديثات لمفاتيح واحدة أو أكثر في عنصر بيانات Tynant Tyrant المركزي.
ماذا تنصح يدفع هذه التغييرات في المستخدمين المهتمين المتصلين بمثيل خدمة مختلف يعمل على نفس الشبكة الخاصة (نفس COLO)؟
User 1 Service 1 Tokyo Tyrant Service 2 User 2
------ --------- ------------ --------- ------
| | | | |
------> do something | | |
| | ---> put K 42 | |
| | | ----> Hey! K is now 42 |
| | | | ---> K was updated
بعض الأفكار:
بث التغييرات على التحديث الناجح ل DataStore من الخدمة N إلى جميع الخدمات الأخرى
User 1 Service 1 Tokyo Tyrant LAN Broadcast Service 2 User 2
------ --------- ------------ ------------- --------- ------
| | | | | |
------> do something | | | |
| | ---> put K 42 | | |
| | -----------------> Hey! K is now 42 | |
| | | | --> Hey! K is now 42 |
| | | | | ---> K was updated
تخزين خدمة كل مستخدم مهتم يتم تسجيل الدخول وإرسال هذه الخدمات رسالة يتم نقلها بعد ذلك إلى المستخدم المهتم؛ أفترض أن هذه هي كيفية عمل اتصالات خادم IRC Server (تحتاج إلى بحث ذلك).
User 1 Service 1 Tokyo Tyrant Service 2 User 2
------ --------- ------------ --------- ------
| | | | |
------> do something | | |
| | ---> put K 42 | |
| | ---> who cares? | |
| | <--- User 2 on Service 2 | |
--------------------------------------> Hey! K is now 42 |
| | | | ---> K was updated
تشغيل وسيط الرسائل (مثل الأرنب)؛ لديك كل خدمة X اشترك في قائمة انتظار نيابة عن المستخدمين المهتمين؛ نشرها عند النجاح "وضع"
User 1 Service 1 Tokyo Tyrant RabbitMQ Service 2 User 2
------ --------- ------------ -------- --------- ------
| | | | <--- subscribe --| |
------> do something | | | |
| | ---> put K 42 | | |
| | ------------------- post msg --> | |
| | | |----- notify ---->| |
| | | | | ---> K was updated
هناك فكرة أخرى هي التظاهر بأنها عبدا النسخ المتماثل والاتصال بالماجستير.
بشكل عام، أبحث عن طريقة للحصول على "تغيير الإخطارات" كما تم العثور عليها في البوتونات ولكن للطاغية طوكيو. الفكرة أكثر عمومية.
إذا كنت تقترح فقط باستخدام وسيط رسالة مع قوائم انتظار مستمرة في حين أن من Datastore مثل طوكيو الطاغية، يرجى توضيح كيف قد أنفت إلى مثل السماح بالصلاحية، وما إلى ذلك أنا لست حميما حتى الآن.
المحلول
توصيتي (وما أستخدمه) هو نهج وسيط الرسائل. يبقي RabbitMQ على الخدمات (UN) الاشتراك في قوائم انتظار مختلفة ويمكنك استخدام التبادلات Fanout.
أيضا، يحتوي مجلس الوزراء في طوكيو على سجل (بتنسيق غريب على الرغم من أنه) يمكنك استخدامه للحصول على التحديثات ودفعها إلى قائمة انتظار. لقد حاولت فقط استخدام كرون لكنني أعتقد أنه قد يكون من الممكن الحصول عليه في الوقت الفعلي باستخدام مقبس.