Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Mengakses Pelbagai Perkhidmatan gRPC Melalui Sambungan Tunggal?

Bagaimana untuk Mengakses Pelbagai Perkhidmatan gRPC Melalui Sambungan Tunggal?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-03 19:28:29941semak imbas

How to Access Multiple gRPC Services Over a Single Connection?

Akses Berbilang Perkhidmatan gRPC melalui Sambungan Tunggal

Mengapa Dail Soket Berbeza untuk Setiap Perkhidmatan gRPC?

Apabila mengakses perkhidmatan gRPC berjalan pada yang sama pelayan, adalah tidak perlu untuk mewujudkan sambungan berasingan untuk setiap perkhidmatan. Satu grpc.ClientConn boleh digunakan untuk mengakses semua perkhidmatan.

Bagaimana untuk Berkongsi Sambungan?

Untuk berkongsi sambungan, buat grpc.ClientConn menggunakan titik akhir yang diingini dan hantarkannya ke pb.New*Client() fungsi untuk setiap perkhidmatan yang anda ingin gunakan. Ini membolehkan mereka menggunakan sambungan yang sama.

<code class="go">cc, err := grpc.Dial("localhost:6000", grpc.WithInsecure())
if err != nil {
    log.Fatal(err)
}
c1 := pb.NewSubscriberServiceClient(cc)
c2 := pb.NewDropperServiceClient(cc)</code>

Menggunakan Antara Muka untuk Menggabungkan Pelaksanaan Klien?

Walaupun anda boleh mencipta antara muka untuk menggabungkan fungsi gRPC sisi klien untuk berbilang perkhidmatan, kod yang dijana dalam pb.go mengendalikan semua operasi penting. Melaksanakan kefungsian baharu hanya diperlukan untuk logik tersuai tertentu.

Untuk perkhidmatan dengan nama kaedah unik, anda boleh menentukan struct kemudahan untuk menggabungkan pelanggan mereka:

<code class="go">type SubscriberDropper struct {
    pb.SubscriberServiceClient
    pb.DropperServiceClient
}</code>

Mengakses berbilang perkhidmatan gRPC melalui sambungan tunggal memudahkan pelaksanaan pihak klien dan meningkatkan kebolehselenggaraan kod.

Atas ialah kandungan terperinci Bagaimana untuk Mengakses Pelbagai Perkhidmatan gRPC Melalui Sambungan Tunggal?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn