مقارنة اختيار API Gateway بين Apache APISIX و Kong

API7.ai

January 18, 2020

Products

Apache APISIX و Kong كلاهما بوابات API ميكروسيرفيس مفتوحة المصدر، فكيف تقارن بينهما وتختار؟

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

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

الميزاتApache APISIXKONG
Upstream الديناميكينعمنعم
الموجه الديناميكينعمنعم
فحص الصحةنعمنعم
SSL الديناميكينعمنعم
الوكيل L4 و L7نعمنعم
Opentracingنعمنعم
البرنامج المساعد المخصصنعمنعم
REST APIنعمنعم
CLIنعمنعم

لمقارنة أكثر تفصيلاً.

الميزاتApache APISIXKong
ينتمي إلىApache Software FoundationKong Inc.
الهندسة المعمارية التقنيةNginx + etcdNginx + postgres
قنوات الاتصالقائمة البريد، مجموعة Wechat، مجموعة QQ، GitHub، meetupGitHub، freenode، forum
وحدة المعالجة المركزية ذات النواة الواحدة، QPS (تمكين البرنامج المساعد limit-count و prometheus)180001700
زمن الوصول0.2 مللي ثانية2 مللي ثانية
Dubboنعملا
التراجع عن التكويننعملا
التوجيه مع TTLنعملا
تحميل البرنامج المساعد الساخننعملا
LB و التوجيه المخصصنعملا
REST API <--> gRPC transcodingنعملا
Tengineنعملا
MQTTنعملا
وقت التكوين الفعالمدفوع بالأحداث، < 1 مللي ثانيةالاستطلاع، 5 ثوانٍ
لوحة التحكمنعملا
IdPنعملا
مركز التكوين HAنعملا
تحديد السرعة لفترة زمنية محددةنعملا
دعم أي متغير Nginx كشرط للتوجيهنعملا

الأداء

بعد تمكين البرنامج المساعد limit-count و prometheus، يكون أداء Apache APISIX عشر مرات أفضل من Kong.

إليك خطوات أكثر تفصيلاً: https://gist.github.com/membphis/137db97a4bf64d3653aa42f3e016bd01، يمكن للمطورين المهتمين اتباع الصورة للتحقق.

لماذا يتفوق Apache APISIX؟

هنا، نناقش الأسباب وراء الاختلافات في الوظائف والأداء:

  1. تعقيد التوجيه في Apache APISIX هو O(k)، وهو مرتبط فقط بطول uri ولا علاقة له بعدد المسارات؛ تعقيد وقت التوجيه في kong هو O(n)، والذي يزداد خطيًا مع عدد المسارات.

  2. تعقيد وقت مطابقة IP في Apache APISIX هو O(1)، مما لا يؤدي إلى استنفاد موارد وحدة المعالجة المركزية مع عدد كبير من أحكام IP.

  3. مطابقة المسارات في Apache APISIX تقبل جميع متغيرات Nginx كشروط وتدعم الوظائف المخصصة؛ البوابات الأخرى لديها عدة شروط مدمجة.

  4. يستخدم Apache APISIX etcd كمركز تكوين. لا يوجد نقطة واحدة. إذا تعطلت أي آلة بشكل عشوائي، يمكن أن تعمل مجموعة البوابة بشكل طبيعي. البوابات الأخرى القائمة على قواعد البيانات العلائقية لديها مشكلة نقطة واحدة.

  5. يمكن أن يصل تكوين Apache APISIX إلى جميع عقد البوابة في أقل من 1 مللي ثانية، باستخدام etcd watch؛ البوابات الأخرى تفحص قاعدة البيانات بشكل دوري، وعادة ما يستغرق الأمر 5 ثوانٍ للحصول على أحدث تكوين.

  6. تم تحسين برامج Apache APISIX المساعدة بعناية للحفاظ على زمن وصول في مستوى المللي ثانية تحت الضغط العالي.

  7. ترتيب البرامج المساعدة الفريد في Apache APISIX وميزة البرمجة منخفضة الكود يمكن أن تقلل بشكل كبير من عتبة التطوير الثانوي.

قراءة إضافية

Tags: