كيفية استخدام API7 Enterprise لبروكسي خدمات gRPC؟

January 2, 2024

Products

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

سواء كنت على دراية بـ gRPC أم لا، فإن قراءة سريعة لمدة 5 دقائق لهذه المقالة ستزودك بمعرفة كيفية استخدام API7 Enterprise لوكيل خدمات gRPC.

API7 Enterprise و gRPC

المتطلبات الأساسية

  1. قم بتثبيت API7 Enterprise.

  2. قم بتثبيت grpcurl لمحاكاة تفاعلات عميل gRPC مع خادم gRPC الخاص بك.

  3. ابدأ خدمة 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 التي تم إعدادها.

  1. أضف خدمة باسم grpc-example واختر gRPC كمخطط upstream.

استخدام API7 لوكيل gRPC-1

  1. أضف طريقًا داخل خدمة grpc-example

    • تنسيق مسار الطريق: /{service}/{method}
    • على سبيل المثال، بناءً على قائمة خدمات gRPC والطرق التي تم الاستعلام عنها مسبقًا، قم بتكوين المسار كـ /helloworld.Greeter/SayHello.

استخدام API7 لوكيل gRPC-2

نشر الخدمات للاختبار

بعد إنشاء الخدمة والطريق، قم بنشر الخدمة إلى مجموعة البوابة لجعلها فعالة.

  1. انقر على "نشر الخدمة"، واختر مجموعة البوابة المحددة، واختر الخدمة للنشر.

  2. أضف عقدة خدمة gRPC (IP + port)، ثم انقر على "نشر".

  3. اختبر خدمة 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 الخاص بك!

Tags: