
في الآونة الأخيرة ، كلفوا بنجاح نظام معالجة المستخدم للمواطنين. النقطة المهمة هي أنه عندما لا يكون لديك ماء أو تدفئة أو فتحة ضخمة في الطريق بالقرب من منزلك ، يمكنك الشكوى من وجود مشكلة في الوكالات الحكومية. هناك العديد من المنصات حيث يمكنك تقديم شكوى: المواقع الإلكترونية لمؤسسات الدولة ، والصفحات على الشبكات الاجتماعية ، ومراكز الاتصال.
كانت مهمتنا إنشاء خط أنابيب واحد لمعالجة التطبيقات لجميع الإدارات.
الهدف الرئيسي للنظام هو تسريع عملية معالجة المكالمات قدر الإمكان: أتمتة كل شيء تلقائيًا ، والتحكم في التوقيت في كل مرحلة من مراحل العملية ، وإبلاغ السكان بكل خطوة.
واحدة من المهام المحددة للمشروع كانت قضية التكامل مع عدد كبير من النظم الخارجية.
- كان من الضروري أن نتعلم من مواقع مختلفة التقاط تدفق الشكاوى بالكامل ، لتكون قادرًا على التواصل معهم بشأن جميع التغييرات مع التطبيقات ، لإجراء المراسلات بين المسؤولين الحكوميين والمواطنين بشأن توضيح تفاصيل الشكاوى.
- بالإضافة إلى ذلك ، فقد قدمنا بعض الوظائف لخدمات الطرف الثالث.
بسبب كان هناك الكثير من البيانات ، غالبًا ما كان عليها العمل في وضع غير متزامن ، ثم كان على فريق المشروع حل المشكلة ، حتى لا يخنق نفسه وأنظمة الجهات الخارجية. تم العثور على الحل في وسيط رسالة البرنامج Rabbit MQ. لقد كانت تقنية جديدة للفريق في ذلك الوقت.
فيما يلي مقابلة مع مطور خلفية المشروع ، ألكساندر شيشغلوف ،
WilyLynx ، الذي تعامل مع القضية وقام بتنفيذ التكامل.
- ساشا ، مرحبا! من فضلك قل لنا باختصار ما هو الأرنب MQ؟يهدف البرنامج أساسًا إلى تنفيذ الرسائل المؤجلة بين العملاء المختلفين ، أي: عندما لا تحتاج إلى إجابة في الوقت الحالي.
- أفهم بشكل صحيح أنه بشكل عام يعمل مثل هذا: تضع خدمة الإرسال في قائمة الانتظار التي تم إنشاؤها البيانات أثناء إنشائها ، خدمة الاستقبال تأخذ هذه المعلومات حسب الضرورة؟هذا هو بالضبط ما يعمل.
- لماذا اخترت (فريق التطوير) هذا الحل للمشروع؟لعدة أسباب. أولاً ، في حالتنا ، فإن المعالجة المتزامنة (المستلمة والمعالجة في نفس الوقت) ليست مهمة ، أي قد يتعطل رسالة في قائمة الانتظار لفترة من الوقت. بالإضافة إلى ذلك ، سهولة الاستخدام: لتلقي الرسائل ، تحتاج فقط إلى إعلان اسم قائمة الانتظار وليس هناك حاجة لكتابة خدماتك. حسنا ، توفر المكتبات ل YP المشتركة. لا حاجة لاختراع أي شيء للعمل مع RabbitMQ.
- أفهم بشكل صحيح أن Rabbit MQ يسمح لك بالتحكم في تبادل البيانات بين الأنظمة وخدمات الويب؟بدلاً من ذلك ، ما زلنا ندير التبادل ، لكن "الأرنب" هو أداة ممتازة لتنظيم هذا التبادل. هنا لديك وقت حياة الرسائل في قوائم الانتظار ، والحد الأقصى لطول قائمة الانتظار ، وإعدادات الوصول ، والتجميع ، وبروتوكولات التبادل المختلفة ، ونظام المكونات الإضافية وأكثر من ذلك.
- كيف يتم تحديد أن الرسالة قد تم تسليمها؟ - أي كيف يتم تحديد أن العميل قد مدد شيئًا ما بعد الاستلام أو أنه تم تعليقه في العملية؟يتم تسليمها في حالة وصول استجابة من العميل خلال فترة زمنية محددة. إنه ، في الواقع ، يقول إنه تلقى وسعد بالحياة. يمكن للعميل إرسال استجابة بمجرد تلقيها ، ثم محاولة معالجة الرسالة. ربما ، على العكس من ذلك ، حاول أولاً المعالجة ، وإذا نجحت ، أرسل ردًا. أو يمكنك إخبار الأرنب مقدمًا حتى لا ينتظر تأكيد التسليم منك ويتلقى الرسائل فقط. سيتم اعتبار جميع العناصر المرسلة يتم تسليمها تلقائيًا.
- هل من الممكن ، على سبيل المثال ، أن تتلقى بطريقة ما ليس كل الرسائل ، ولكن على سبيل المثال الاشتراك فقط في الرسائل على تطبيق معين؟هناك وضع مختلف قليلا. هناك خيار لإرسال الرسائل التي تأتي الرسائل لجميع العملاء. يسمى هذا الخيار "نشر / اشتراك". مثال جيد: رسالة جديدة في جمهورك. لقد أرسلت ، تلقى جميع الموقعين. وبالفعل عند الاستلام فكروا في القراءة أو عدم القراءة. بشكل عام ، لا أحد يزعجك لإنشاء قائمة انتظار منفصلة لنفسك والعمل معها فقط. في هذه الحالة ، سيكون التوجيه بالفعل على مستوى التطبيق ، والأرنب كقناة اتصال.
- أخبرني ساشا ، هل هناك خيار لا لإنشاء الآلاف من قوائم الانتظار ، ولكن للقيام بالترشيح والتوجيه لأحدهم؟من واحدة لن تعمل ، ولكن سوف يسمح الأرنب بإجراء بعض التوجيه.
- من فضلك قل لنا أكثر.واحد منهم ليس كذلك ، ولكن هناك مفاهيم مثل "التبادل" و "مفتاح التوجيه":
ف - منتج ، مرسل الرسالة في الصرف
X - تبادل نفسها
خطوط حمراء - خطوط
C1 و C2 - المتلقين

يمكن Pabbit إرسال رسالة في تبادل مع مفتاح معين (على سبيل المثال ، خطأ / معلومات / تحذير). وكما ترون ، يتم توجيه مستلمين مختلفين نحو تلقي الرسائل باستخدام مفاتيح توجيه مختلفة. علاوة على ذلك ، ستتلقى C2 فقط رسالة تحتوي على مفتاح "info" ، وسيتلقى كلاهما رسالة تحتوي على مفتاح "error". من الممكن أيضًا استلام الرسائل وفقًا لنموذج المفتاح. هذا لنوع آخر من تبادل "نشر / اشتراك" ، والذي ذكرته سابقًا.

كما ترون ، على أي حال ، يوجد دور لكل مستلم في هذه الأنواع من التبادلات ، ولكن في النهاية لا يزال لدينا نوع من التصفية / التوجيه.
- ماذا يمكنك أن تتذكر المشاكل التي نشأت أثناء دراسة وتطبيق الأرنب؟إلى جانب الكسل ، لا. على محمل الجد ، وثائق واضحة ، وعدد كبير من الأمثلة.
- هل قمت بالفعل بنقل جميع التبادلات مع الخدمات والأنظمة الخارجية إليها؟لدينا الآن 38 قائمة انتظار: التبادل بين الدوائر والأنظمة الخارجية و BI. لكن لسوء الحظ ، بعض الخدمات (قراءة الإدارات) تقاوم. بسبب لقد نفذوا الراحة. بالإضافة إلى ذلك ، تتضمن بعض أنواع التفاعلات الاستلام المتزامن للردود على الطلبات.
- ما رأيك ، ما مدى نجاح هذا القرار؟للتعاون بين الوكالات التي لا تتطلب استجابة متزامنة؟ بالنسبة لي ، إنه خيار رائع.
قائمة المواد المستخدمة