آليات الاستقرار المتقدمة وتحمل الأعطال في Apache APISIX

January 20, 2024

Technology

عند اختيار بوابات API، تعد الاستقرار وقدرة تحمل الأعطال عوامل حاسمة إلى جانب الوظائفية، قابلية التوسع، والأمان. في تصميم Apache APISIX عام 2019، تم اعتبار الاستقرار وقدرة تحمل الأعطال أمرًا أساسيًا، نظرًا لإمكانية حدوث حوادث إنتاجية كبيرة عند التعامل مع طلبات حركة المرور الداخلية والخارجية.

لتوفير فهم شامل للباحثين، دعونا نتعمق في ميزات الاستقرار وقدرة تحمل الأعطال الرئيسية لـ Apache APISIX.

فصل مستوى التحكم ومستوى البيانات

يعتمد Apache APISIX على بنية منفصلة مع مستوى تحكم (أي etcd، واجهة برمجة التطبيقات الإدارية) ومستوى بيانات عديم الحالة (أي بوابة API يمكن توسيعها حسب الطلب). لا يوجد تبعية بينهما. هذا يعني أنه حتى إذا واجه مستوى التحكم حالات شاذة (مثل انقطاعات الشبكة أو الخروج غير الطبيعي)، يمكن لمستوى البيانات الاستمرار في العمل بشكل طبيعي، والتعامل مع طلبات حركة المرور الجديدة. يضمن هذا الفصل التوافر العالي لـ APISIX.

الهندسة التقنية لـ APISIX

آلية مزامنة البيانات

توجد آلية فعالة لمزامنة البيانات بين مستوى البيانات ومستوى التحكم. يعمل مستوى البيانات كـ etcd Watcher، حيث يتم إخطاره بنشاط من قبل etcd حول تغييرات البيانات. يقوم بتحديث تكوينه وقواعده وفقًا لذلك. لذلك، عندما يقوم المسؤول بكتابة التكوين إلى etcd عبر واجهة برمجة التطبيقات الإدارية، يتلقى مستوى البيانات إشعارات التغيير بسرعة ويخزن التكوين في الذاكرة. تتجنب هذه الآلية الحاجة إلى جلب التكوين من etcd لكل طلب وارد، مما يقلل من عبء النظام. ومع ذلك، من المهم ملاحظة أنه أثناء حالات الشذوذ في مستوى التحكم، يجب تجنب إعادة تشغيل مثيلات مستوى البيانات لمنع فقدان التكوينات المخزنة في الذاكرة.

حالات الشذوذ في مستوى التحكم

انقطاع الاتصال بالشبكة

في حالة انقطاع الاتصال بالشبكة بين بوابة API و etcd، لن تصل التكوينات المكتوبة إلى etcd عبر واجهة برمجة التطبيقات الإدارية إلى البوابة. ومع ذلك، تستمر البوابة في استخدام التكوين المحفوظ مسبقًا في الذاكرة للتعامل مع طلبات حركة المرور الجديدة، مما يمنع الخروج غير الطبيعي بسبب فقدان الاتصال مع etcd. بمجرد استعادة الاتصال بين البوابة و etcd، تتلقى البوابة أحدث التكوينات وتستأنف العمل بشكل طبيعي.

تعطل etcd بشكل غير طبيعي

إذا تعرض etcd لتعطل غير طبيعي، لن يتمكن المسؤولون من كتابة التكوينات عبر واجهة برمجة التطبيقات الإدارية. ومع ذلك، لا يؤثر هذا على عمل البوابة، التي تستمر في العمل والتعامل مع طلبات حركة المرور. في هذا السيناريو، يكون سلوك البوابة مشابهًا للحالة بعد انقطاع الشبكة.

النشر متعدد العقد وموازنة الحمل

لضمان التوافر العالي، يوصى بنشر عدة مثيلات للبوابة وإعداد موازن حمل (مثل AWS Load Balancer أو F5) بينها. تحتوي هذه الموازنات على آليات فحص الصحة لتقييم الحالة الصحية لمثيلات البوابة. إذا فشل مثيل بوابة، يقوم موازن الحمل بإزالته بسرعة من الخدمة ويمكنه إضافة عقد بوابات جديدة. تساعد استراتيجية النشر متعدد العقد وموازنة الحمل في منع انقطاعات الأعمال الناجمة عن فشل عقدة واحدة.

الخلاصة

باختصار، يظهر Apache APISIX استقرارًا وقدرة تحمل أعطال ممتازة عند انفصال مستوى التحكم ومستوى البيانات. تضمن بنيته المنفصلة، آلية مزامنة البيانات الفعالة، واستراتيجية النشر متعدد العقد التوافر العالي حتى في الظروف الاستثنائية. يأخذ تصميم Apache APISIX في الاعتبار حالات الشذوذ المختلفة في الشبكة والمكونات، مما يجعله يؤدي بشكل استثنائي في التعامل مع طلبات حركة المرور على مستوى المؤسسة.

Tags: