مقارنة اختيار API Gateway بين Apache APISIX و Kong
API7.ai
January 18, 2020
Apache APISIX و Kong كلاهما بوابات API ميكروسيرفيس مفتوحة المصدر، فكيف تقارن بينهما وتختار؟
هذان المشروعان مغطيان بوثائق واختبارات كاملة، ويستخدمهما العديد من المستخدمين في الإنتاج، لذا لا داعي للقلق بشأن الاستقرار وتطورهما المستدام. ستركز هذه المقالة على الوظائف والأداء الأكثر مباشرة وقابلية للتحقق. لإجراء مقارنة من منظور مختلف.
هذان المشروعان مغطيان بوثائق واختبارات كاملة، ويستخدمهما العديد من المستخدمين في الإنتاج، لذا لا داعي للقلق بشأن الاستقرار وتطورهما المستدام. ستركز هذه المقالة على الوظائف والأداء الأكثر مباشرة وقابلية للتحقق. لإجراء مقارنة من منظور مختلف.
الميزات | Apache APISIX | KONG |
---|---|---|
Upstream الديناميكي | نعم | نعم |
الموجه الديناميكي | نعم | نعم |
فحص الصحة | نعم | نعم |
SSL الديناميكي | نعم | نعم |
الوكيل L4 و L7 | نعم | نعم |
Opentracing | نعم | نعم |
البرنامج المساعد المخصص | نعم | نعم |
REST API | نعم | نعم |
CLI | نعم | نعم |
لمقارنة أكثر تفصيلاً.
الميزات | Apache APISIX | Kong |
---|---|---|
ينتمي إلى | Apache Software Foundation | Kong Inc. |
الهندسة المعمارية التقنية | Nginx + etcd | Nginx + postgres |
قنوات الاتصال | قائمة البريد، مجموعة Wechat، مجموعة QQ، GitHub، meetup | GitHub، freenode، forum |
وحدة المعالجة المركزية ذات النواة الواحدة، QPS (تمكين البرنامج المساعد limit-count و prometheus) | 18000 | 1700 |
زمن الوصول | 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؟
هنا، نناقش الأسباب وراء الاختلافات في الوظائف والأداء:
-
تعقيد التوجيه في Apache APISIX هو O(k)، وهو مرتبط فقط بطول uri ولا علاقة له بعدد المسارات؛ تعقيد وقت التوجيه في kong هو O(n)، والذي يزداد خطيًا مع عدد المسارات.
-
تعقيد وقت مطابقة IP في Apache APISIX هو O(1)، مما لا يؤدي إلى استنفاد موارد وحدة المعالجة المركزية مع عدد كبير من أحكام IP.
-
مطابقة المسارات في Apache APISIX تقبل جميع متغيرات Nginx كشروط وتدعم الوظائف المخصصة؛ البوابات الأخرى لديها عدة شروط مدمجة.
-
يستخدم Apache APISIX etcd كمركز تكوين. لا يوجد نقطة واحدة. إذا تعطلت أي آلة بشكل عشوائي، يمكن أن تعمل مجموعة البوابة بشكل طبيعي. البوابات الأخرى القائمة على قواعد البيانات العلائقية لديها مشكلة نقطة واحدة.
-
يمكن أن يصل تكوين Apache APISIX إلى جميع عقد البوابة في أقل من 1 مللي ثانية، باستخدام etcd watch؛ البوابات الأخرى تفحص قاعدة البيانات بشكل دوري، وعادة ما يستغرق الأمر 5 ثوانٍ للحصول على أحدث تكوين.
-
تم تحسين برامج Apache APISIX المساعدة بعناية للحفاظ على زمن وصول في مستوى المللي ثانية تحت الضغط العالي.
-
ترتيب البرامج المساعدة الفريد في Apache APISIX وميزة البرمجة منخفضة الكود يمكن أن تقلل بشكل كبير من عتبة التطوير الثانوي.