Cara Menggunakan API7 Enterprise untuk Memproksi Layanan gRPC?

January 2, 2024

Products

Dalam lanskap teknologi yang berkembang pesat saat ini, gRPC (Google Remote Procedure Call) telah menjadi komponen yang sangat penting dalam banyak aplikasi. Namun, untuk memanfaatkan potensi gRPC sepenuhnya, API gateway yang kuat sangat diperlukan untuk manajemen efektif layanan gRPC, menyediakan fungsionalitas penting seperti konversi protokol, load balancing, autentikasi, dan otorisasi.

Baik Anda sudah familiar dengan gRPC atau belum, membaca artikel ini selama 5 menit akan memberikan Anda pengetahuan tentang cara menggunakan API7 Enterprise untuk memproksi layanan gRPC.

API7 Enterprise dan gRPC

Prasyarat

  1. Instal API7 Enterprise.

  2. Instal grpcurl untuk mensimulasikan interaksi klien gRPC dengan server gRPC Anda.

  3. Mulai layanan gRPC untuk pengujian:

    • API7.ai menyediakan contoh layanan gRPC untuk pengujian. Atau, Anda dapat menjalankannya menggunakan perintah docker berikut:
    docker run -d --name grpc-service -p 50051:50051 --restart always api7/grpc-server-example:1.0.0
    • Setelah dimulai, gunakan grpcurl untuk melihat daftar layanan gRPC dan metode yang tersedia:
    $ 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

Menggunakan API7 Enterprise untuk Memproksi Layanan gRPC

Perbarui Konfigurasi Instansi Gateway

Secara default, instansi API7 Enterprise hanya mendukung HTTP/2 yang dienkripsi TLS pada port 9443. Untuk kemudahan pengujian, modifikasi file konfigurasi instansi gateway di bagian node_listen, tambahkan port 9081 untuk mendukung HTTP/2 tanpa enkripsi.

apisix: node_listen: - port: 9080 enable_http2: false - port: 9081 enable_http2: true

Setelah melakukan perubahan, jalankan kembali docker-compose up -d di direktori api7-ee tempat API7 Enterprise diinstal.

Konfigurasi Layanan dan Rute

Selanjutnya, di dashboard API7 Enterprise, konfigurasikan sumber daya yang sesuai untuk memproksi layanan gRPC yang telah disiapkan.

  1. Tambahkan layanan bernama grpc-example dan pilih gRPC sebagai skema upstream.

Gunakan API7 untuk memproksi grpc-1

  1. Tambahkan rute dalam layanan grpc-example

    • Format jalur rute: /{service}/{method}
    • Misalnya, berdasarkan daftar layanan gRPC dan metode yang telah dikueri sebelumnya, konfigurasikan jalur sebagai /helloworld.Greeter/SayHello.

Gunakan API7 untuk memproksi grpc-2

Publikasikan Layanan untuk Pengujian

Setelah membuat layanan dan rute, publikasikan layanan ke grup gateway untuk membuatnya efektif.

  1. Klik "Publish Service," pilih grup gateway yang ditentukan, dan pilih layanan yang akan dipublikasikan.

  2. Tambahkan node layanan gRPC (IP + port), lalu klik "Publish".

  3. Uji layanan gRPC menggunakan grpcurl:

    • Gunakan file helloworld.proto untuk memastikan grpcurl menyelaraskan format permintaan dan respons dengan definisi layanan gRPC. File .proto untuk contoh ini dapat ditemukan di sini.
    • Jalankan perintah berikut untuk melihat keberhasilan proxy layanan gRPC menggunakan API7 Enterprise.
    $ grpcurl -plaintext -proto helloworld.proto -d '{"name":"apisix"}' 127.0.0.1:9081 helloworld.Greeter.SayHello { "message": "Hello apisix" }

Kesimpulan

API7 Enterprise memiliki 100+ plugin bawaan, mencakup berbagai fungsionalitas seperti autentikasi, otorisasi, pembatasan laju, pencatatan, dan pemantauan. Menggunakan API7 Enterprise untuk memproksi layanan gRPC secara signifikan meningkatkan fleksibilitas, keamanan, kinerja, dan kemampuan manajemen sistem, memberikan alat dan mekanisme kontrol yang kuat bagi pengembang dan tim operasi. Ambil langkah untuk mencoba API7 Enterprise dan berdayakan aplikasi gRPC Anda!

Tags: