كيفية استخدام API7 Enterprise لبروكسي خدمات gRPC؟
January 2, 2024
في المشهد التكنولوجي سريع التطور اليوم، أصبح gRPC (استدعاء الإجراءات البعيدة من Google) مكونًا لا غنى عنه في العديد من التطبيقات. ومع ذلك، للاستفادة الكاملة من إمكانات gRPC، فإن بوابة API قوية تعتبر ضرورية للإدارة الفعالة لخدمات gRPC، حيث توفر وظائف حاسمة مثل تحويل البروتوكول، موازنة الحمل، المصادقة، والتفويض.
سواء كنت على دراية بـ gRPC أم لا، فإن قراءة سريعة لمدة 5 دقائق لهذه المقالة ستزودك بمعرفة كيفية استخدام API7 Enterprise لوكيل خدمات gRPC.
المتطلبات الأساسية
-
قم بتثبيت API7 Enterprise.
-
قم بتثبيت
grpcurl
لمحاكاة تفاعلات عميل gRPC مع خادم gRPC الخاص بك. -
ابدأ خدمة gRPC للاختبار:
- توفر API7.ai مثالًا لخدمة gRPC للاختبار. بدلاً من ذلك، يمكنك تشغيلها باستخدام أمر docker التالي:
docker run -d --name grpc-service -p 50051:50051 --restart always api7/grpc-server-example:1.0.0
- بمجرد البدء، استخدم
grpcurl
لعرض قائمة خدمات gRPC المتاحة والطرق:
$ grpcurl -plaintext 127.0.0.1:50051 list grpc.reflection.v1alpha.ServerReflection helloworld.Greeter helloworld.TestImport $ grpcurl -plaintext 127.0.0.1:50051 list helloworld.Greeter helloworld.Greeter.GetErrResp helloworld.Greeter.Plus helloworld.Greeter.SayHello helloworld.Greeter.SayHelloAfterDelay helloworld.Greeter.SayHelloBidirectionalStream helloworld.Greeter.SayHelloClientStream helloworld.Greeter.SayHelloServerStream
استخدام API7 Enterprise لوكيل خدمات gRPC
تحديث تكوين مثيل البوابة
بشكل افتراضي، تدعم مثيلات API7 Enterprise فقط HTTP/2 المشفر بـ TLS على المنفذ 9443. لتسهيل الاختبار، قم بتعديل ملف تكوين مثيل البوابة في قسم node_listen
، وإضافة منفذ 9081 لدعم HTTP/2 غير المشفر.
apisix:
node_listen:
- port: 9080
enable_http2: false
- port: 9081
enable_http2: true
بعد إجراء التغييرات، أعد تشغيل docker-compose up -d
في دليل api7-ee
حيث تم تثبيت API7 Enterprise.
تكوين الخدمات والطرق
بعد ذلك، على لوحة تحكم API7 Enterprise، قم بتكوين الموارد المقابلة لوكيل خدمة gRPC التي تم إعدادها.
- أضف خدمة باسم
grpc-example
واخترgRPC
كمخطط upstream.
-
أضف طريقًا داخل خدمة grpc-example
- تنسيق مسار الطريق:
/{service}/{method}
- على سبيل المثال، بناءً على قائمة خدمات gRPC والطرق التي تم الاستعلام عنها مسبقًا، قم بتكوين المسار كـ
/helloworld.Greeter/SayHello
.
- تنسيق مسار الطريق:
نشر الخدمات للاختبار
بعد إنشاء الخدمة والطريق، قم بنشر الخدمة إلى مجموعة البوابة لجعلها فعالة.
-
انقر على "نشر الخدمة"، واختر مجموعة البوابة المحددة، واختر الخدمة للنشر.
-
أضف عقدة خدمة gRPC (IP + port)، ثم انقر على "نشر".
-
اختبر خدمة gRPC باستخدام
grpcurl
:- استخدم ملف
helloworld.proto
للتأكد من أن grpcurl يطابق تنسيق الطلب والاستجابة مع تعريف خدمة gRPC. يمكن العثور على ملف .proto لهذا المثال هنا. - قم بتشغيل الأمر التالي لرؤية نجاح وكيل خدمة gRPC باستخدام API7 Enterprise.
$ grpcurl -plaintext -proto helloworld.proto -d '{"name":"apisix"}' 127.0.0.1:9081 helloworld.Greeter.SayHello { "message": "Hello apisix" }
- استخدم ملف
الخلاصة
تتمتع API7 Enterprise بـ أكثر من 100 مكون إضافي مدمج، تغطي مجموعة واسعة من الوظائف مثل المصادقة، التفويض، الحد من المعدل، التسجيل، والمراقبة. استخدام API7 Enterprise لوكيل خدمات gRPC يعزز بشكل كبير مرونة النظام، الأمان، الأداء، وإمكانية الإدارة، مما يوفر للمطورين وفرق العمليات أدوات قوية وآليات تحكم. خذ الخطوة لتجربة API7 Enterprise وتمكين تطبيق gRPC الخاص بك!