بوابة Apache APISIX API
Apache APISIX عبارة عن بوابة API ديناميكية وعالية الأداء في الوقت الفعلي.
توفر بوابة APISIX API ميزات غنية لإدارة حركة المرور مثل موازنة التحميل، والمنبع الديناميكي، وإصدار الكناري، وكسر الدائرة، والمصادقة، وإمكانية المراقبة، والمزيد.
يمكنك استخدام APISIX API Gateway للتعامل مع حركة المرور التقليدية بين الشمال والجنوب، بالإضافة إلى حركة المرور بين الشرق والغرب بين الخدمات. يمكن استخدامه أيضًا كوحدة تحكم دخول k8s.
البنية التقنية لـ Apache APISIX:
مجتمع
- يرجى كتابة مراجعة لـ APISIX في G2.
- القائمة البريدية: أرسل بريدًا إلى [email protected]، ثم اتبع الرد للاشتراك في القائمة البريدية.
- Slack Workspace - رابط الدعوة (يُرجى فتح مشكلة إذا انتهت صلاحية هذا الرابط)، ثم انضم إلى قناة #apisix (القنوات -> تصفح القنوات -> ابحث عن "apisix").
- - تابعنا وتفاعل معنا باستخدام الهاشتاج
#ApacheAPISIX
- التوثيق
- المناقشات
- مدونة
سمات
يمكنك استخدام بوابة APISIX API كمدخل لحركة المرور لمعالجة جميع بيانات الأعمال، بما في ذلك التوجيه الديناميكي، والمنبع الديناميكي، والشهادات الديناميكية، واختبار A/B، وإصدار Canary، والنشر الأزرق والأخضر، ومعدل الحد، والدفاع ضد الهجمات الضارة، والمقاييس، والمراقبة الإنذارات، وإمكانية ملاحظة الخدمة، وإدارة الخدمة، وما إلى ذلك.
جميع المنصات
- السحابة الأصلية: لا تعتمد على النظام الأساسي، لا يوجد قفل للبائع، يمكن تشغيل بوابة APISIX API من النظام الأساسي إلى Kubernetes.
- يدعم ARM64: لا تقلق بشأن قفل تقنية الأشعة تحت الحمراء.
بروتوكولات متعددة
- وكيل TCP/UDP: وكيل TCP/UDP الديناميكي.
- وكيل Dubbo: HTTP الديناميكي لوكيل Dubbo.
- وكيل MQTT الديناميكي: يدعم تحميل توازن MQTT بواسطة
client_id
، وكلاهما يدعم MQTT 3.1.*، 5.0. - وكيل gRPC: تفويض حركة مرور gRPC.
- وكيل ويب gRPC: تفويض حركة مرور ويب gRPC إلى خدمة gRPC.
- تحويل ترميز gRPC: يدعم تحويل ترميز البروتوكول حتى يتمكن العملاء من الوصول إلى واجهة برمجة تطبيقات gRPC الخاصة بك باستخدام HTTP/JSON.
- وكيل Websocket
- بروتوكول الوكيل
- HTTP(S) وكيل إعادة التوجيه
- SSL: تحميل شهادة SSL ديناميكيًا
- HTTP/3 مع QUIC
ديناميكية كاملة
- التحديثات الساخنة والمكونات الإضافية الساخنة: يقوم باستمرار بتحديث تكويناته ومكوناته الإضافية دون إعادة التشغيل!
- إعادة كتابة الوكيل: دعم إعادة كتابة
host
، uri
، schema
، method
، headers
الطلب قبل إرسالها إلى المنبع. - إعادة كتابة الاستجابة: قم بتعيين رمز حالة الاستجابة والنص والرأس المخصص للعميل.
- موازنة الحمل الديناميكية: موازنة الحمل بشكل دائري مع الوزن.
- موازنة التحميل المستندة إلى التجزئة: توازن التحميل مع جلسات التجزئة المتسقة.
- عمليات التحقق من الصحة: قم بتمكين التحقق من الصحة على العقدة الأولية وسوف يقوم تلقائيًا بتصفية العقد غير السليمة أثناء موازنة التحميل لضمان استقرار النظام.
- قاطع الدائرة: تتبع ذكي للخدمات الأولية غير الصحية.
- مرآة الوكيل: توفر القدرة على عكس طلبات العميل.
- تقسيم حركة المرور: يسمح للمستخدمين بتوجيه النسب المئوية لحركة المرور بشكل متزايد بين مختلف المنبع.
التوجيه الدقيق
- يدعم مطابقة المسار الكامل ومطابقة البادئة
- دعم جميع متغيرات Nginx المضمنة كشروط للتوجيه، حتى تتمكن من استخدام
cookie
args
وما إلى ذلك كشروط توجيه لتنفيذ إصدار Canary واختبار A/B وما إلى ذلك. - دعم عوامل تشغيل مختلفة كشروط حكم للتوجيه، على سبيل المثال
{"arg_age", ">", 24}
- دعم وظيفة مطابقة المسار المخصص
- IPv6: استخدم IPv6 لمطابقة المسار.
- دعم TTL
- أولوية الدعم
- دعم طلبات المتشعب
- دعم مسار التصفية حسب سمات GraphQL
حماية
- دعم المصادقة والترخيص الغني:
- مصادقة المفتاح
- JWT
- المصادقة الأساسية
- الذئب rbac
- كاسبين
- عباءة المفاتيح
- casdoor
- القائمة البيضاء/القائمة السوداء لعناوين IP
- إحالة القائمة البيضاء/القائمة السوداء
- IdP: دعم منصات الهوية الخارجية، مثل Auth0، وokta، وما إلى ذلك.
- الحد المطلوب
- عدد الحدود
- الحد من التزامن
- Anti-ReDoS (التعبير العادي رفض الخدمة): سياسات مدمجة في Anti-ReDoS بدون تكوين.
- CORS تمكين CORS (مشاركة الموارد عبر الأصل) لواجهة برمجة التطبيقات (API) الخاصة بك.
- URI Blocker: حظر طلب العميل عن طريق URI.
- طلب المدقق
- CSRF استنادًا إلى طريقة
Double Submit Cookie
، قم بحماية واجهة برمجة التطبيقات (API) الخاصة بك من هجمات CSRF.
صديقة لخدمات العمليات
- تتبع زيبكين: زيبكين
- APM مفتوح المصدر: يدعم Apache SkyWalking
- يعمل مع اكتشاف الخدمات الخارجية: بالإضافة إلى إلخ المضمنة، فإنه يدعم أيضًا Consul وConsul_kv وNacos وEureka وZookeeper (CP).
- الرصد والمقاييس: بروميثيوس
- التجميع: عقد APISIX عديمة الحالة، مما يؤدي إلى إنشاء تجميع لمركز التكوين، يرجى الرجوع إلى دليل التجميع etcd.
- توفر عالي: دعم لتكوين عناوين متعددة وما إلى ذلك في نفس المجموعة.
- لوحة القيادة
- التحكم في الإصدار: يدعم التراجع عن العمليات.
- سطر الأوامر: startstopreload APISIX من خلال سطر الأوامر.
- مستقل: يدعم تحميل قواعد المسار من ملف YAML المحلي، وهو أكثر سهولة كما هو الحال في kubernetes(k8s).
- القاعدة العالمية: تسمح بتشغيل أي مكون إضافي لجميع الطلبات، على سبيل المثال: معدل الحد، مرشح IP وما إلى ذلك.
- أداء عالٍ: يصل أداء QPS أحادي النواة إلى 18 كيلو بايت مع متوسط تأخير أقل من 0.2 مللي ثانية.
- حقن الخلل
- REST Admin API: باستخدام REST Admin API للتحكم في Apache APISIX، والذي يسمح فقط بالوصول إلى 127.0.0.1 افتراضيًا، يمكنك تعديل حقل
allow_admin
في conf/config.yaml
لتحديد قائمة عناوين IP المسموح لها باستدعاء Admin API . لاحظ أيضًا أن Admin API تستخدم مصادقة المفتاح للتحقق من هوية المتصل. - المسجلون الخارجيون: تصدير سجلات الوصول إلى أدوات إدارة السجل الخارجية. (HTTP Logger، TCP Logger، Kafka Logger، UDP Logger، RocketMQ Logger، SkyWalking Logger، Alibaba Cloud Logging (SLS)، Google Cloud Logging، Splunk HEC Logger، File Logger، SolarWinds Loggly Loggly، TencentCloud CLS).
- ClickHouse: دفع السجلات إلى ClickHouse.
- Elasticsearch: دفع السجلات إلى Elasticsearch.
- Datadog: دفع المقاييس المخصصة إلى خادم DogStatsD، ويأتي مرفقًا مع وكيل Datadog، عبر بروتوكول UDP. يعد DogStatsD في الأساس تطبيقًا لبروتوكول StatsD الذي يجمع المقاييس المخصصة لوكيل Apache APISIX، ويجمعها في نقطة بيانات واحدة ويرسلها إلى خادم Datadog الذي تم تكوينه.
- المخططات خوذة
- HashiCorp Vault: دعم حل الإدارة السرية للوصول إلى الأسرار من تخزين Vault الآمن المدعوم في بيئة منخفضة الثقة. حاليًا، يمكن ربط مفاتيح RS256 (أزواج المفاتيح العامة والخاصة) أو المفاتيح السرية من المخزن في البرنامج المساعد لمصادقة jwt-auth باستخدام مورد APISIX Secret.
قابلة للتطوير بشكل كبير
- المكونات الإضافية المخصصة: تسمح بربط المراحل الشائعة، مثل
rewrite
access
header filter
body filter
log
، كما تسمح بربط مرحلة balancer
. - يمكن كتابة البرنامج المساعد بلغة Java/Go/Python
- يمكن كتابة البرنامج المساعد باستخدام Proxy Wasm SDK
- خوارزميات موازنة التحميل المخصصة: يمكنك استخدام خوارزميات موازنة التحميل المخصصة أثناء مرحلة
balancer
. - التوجيه المخصص: دعم المستخدمين لتنفيذ خوارزميات التوجيه بأنفسهم.
دعم متعدد اللغات
- Apache APISIX عبارة عن بوابة متعددة اللغات لتطوير المكونات الإضافية وتوفر الدعم عبر
RPC
و Wasm
. - طريقة RPC هي الطريقة الحالية. يمكن للمطورين اختيار اللغة وفقًا لاحتياجاتهم وبعد بدء عملية مستقلة باستخدام RPC، يتم تبادل البيانات مع APISIX من خلال اتصال RPC المحلي. حتى هذه اللحظة، يدعم APISIX Java وGolang وPython وNode.js.
- تعتبر Wasm أو WebAssembly طريقة تجريبية. يمكن لـ APISIX تحميل وتشغيل Wasm bytecode عبر البرنامج المساعد APISIX Wasm المكتوب باستخدام Proxy Wasm SDK. يحتاج المطورون فقط إلى كتابة التعليمات البرمجية وفقًا لـ SDK ثم تجميعها في رمز ثانوي Wasm الذي يعمل على Wasm VM مع APISIX.
بدون خادم
- وظائف Lua: استدعاء الوظائف في كل مرحلة في APISIX.
- AWS Lambda: يعمل التكامل مع AWS Lambda بمثابة مصدر ديناميكي لتوكيل جميع الطلبات الخاصة بمعرف URI معين إلى نقطة نهاية بوابة AWS API. يدعم التفويض عبر مفتاح API وسر الوصول إلى AWS IAM.
- وظائف Azure: تكامل سلس مع وظيفة Azure Serverless Function باعتبارها مصدرًا ديناميكيًا لتوكيل جميع طلبات معرف URI معين إلى سحابة Microsoft Azure.
- Apache OpenWhisk: تكامل سلس مع Apache OpenWhisk باعتباره مصدرًا ديناميكيًا لتوكيل جميع الطلبات الخاصة بمعرف URI معين إلى مجموعة OpenWhisk الخاصة بك.
ابدأ
تثبيت
يرجى الرجوع إلى وثائق التثبيت.
ابدء
يعد دليل البدء طريقة رائعة لتعلم أساسيات APISIX. ما عليك سوى اتباع الخطوات الواردة في "البدء".
علاوة على ذلك، يمكنك اتباع الوثائق لتجربة المزيد من المكونات الإضافية.
واجهة برمجة تطبيقات المشرف
يوفر Apache APISIX REST Admin API للتحكم ديناميكيًا في مجموعة Apache APISIX.
تطوير البرنامج المساعد
يمكنك الرجوع إلى دليل تطوير المكونات الإضافية example-plugin
. قراءة مفهوم البرنامج المساعد سوف تساعدك على معرفة المزيد عن البرنامج المساعد.
لمزيد من المستندات، يرجى الرجوع إلى موقع وثائق Apache APISIX
المعيار
باستخدام خادم AWS ثماني النواة، يصل QPS الخاص بـ APISIX إلى 140,000 مع زمن وصول يبلغ 0.2 مللي ثانية فقط.
لقد كان البرنامج النصي المعياري مفتوح المصدر، ونرحب بمحاولة المساهمة فيه.
تعمل APISIX أيضًا بشكل مثالي في AWS graviton3 C7g.
قصص المستخدم
- منصة eFactory الأوروبية: بوابة أمان API – استخدام APISIX في منصة eFactory
- برنامج النظام المرجعي كوبرنيكوس
- المزيد من القصص
من يستخدم بوابة APISIX API؟
تستخدم مجموعة واسعة من الشركات والمؤسسات بوابة APISIX API للبحث والإنتاج والمنتجات التجارية، وفيما يلي بعض منها:
- إيرواليكس
- بيليبيلي
- CVTE
- منصة eFactory الأوروبية
- نظام كوبرنيكوس المرجعي الأوروبي
- جيلي
- شرف
- هورايزون روبوتيكس
- iQIYI
- لينوفو
- ناسا مختبر الدفع النفاث
- نايوكي
- ممن لهم
- QingCloud
- سويسكوم
- لعبة تينسنت
- ترافلسكي
- الجسم الحي
- سينا ويبو
- وي سيتي
- WPS
- XPENG
- تكبير
الشعارات
- شعار أباتشي APISIX (PNG)
- مصدر شعار Apache APISIX
شكر وتقدير
مستوحاة من كونغ وأورانج.
رخصة
ترخيص أباتشي 2.0