Cara Menggunakan API7 Enterprise untuk Memproksi Layanan gRPC?
January 2, 2024
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.

Prasyarat
-
Instal API7 Enterprise.
-
Instal
grpcurluntuk mensimulasikan interaksi klien gRPC dengan server gRPC Anda. -
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
grpcurluntuk 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.
- Tambahkan layanan bernama
grpc-exampledan pilihgRPCsebagai skema upstream.

-
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.
- Format jalur rute:

Publikasikan Layanan untuk Pengujian
Setelah membuat layanan dan rute, publikasikan layanan ke grup gateway untuk membuatnya efektif.
-
Klik "Publish Service," pilih grup gateway yang ditentukan, dan pilih layanan yang akan dipublikasikan.
-
Tambahkan node layanan gRPC (IP + port), lalu klik "Publish".
-
Uji layanan gRPC menggunakan
grpcurl:- Gunakan file
helloworld.protountuk 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" } - Gunakan file
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!