Rumah > pembangunan bahagian belakang > Golang > Bagaimanakah `mustEmbedUnimplemented` gRPC Meningkatkan Keserasian Hadapan Pelayan?

Bagaimanakah `mustEmbedUnimplemented` gRPC Meningkatkan Keserasian Hadapan Pelayan?

DDD
Lepaskan: 2024-11-30 11:34:11
asal
182 orang telah melayarinya

How Does gRPC's `mustEmbedUnimplemented` Enhance Server Forward Compatibility?

Keserasian Ke Hadapan dalam gRPC dengan mustEmbedUnimplemented*

Pustaka gRPC-go telah memperkenalkan kaedah mustEmbedUnimplemented*** untuk meningkatkan keserasian hadapan dalam pelayan pelaksanaan.

Pada masa lalu, pelayan gRPC akan gagal penyusunan jika kaedah yang diperlukan tidak dilaksanakan. Untuk mengurangkan perkara ini, pembangun terpaksa melaksanakan kaedah yang tidak dilaksanakan secara manual, walaupun ia tidak bertujuan untuk digunakan.

mustEmbedUnimplemented* menyelesaikan isu ini dengan membuat tarik diri keserasian ke hadapan. Ini bermakna:

  • Pelayan kini mesti membenamkan antara muka Unimplemented*** secara eksplisit untuk menarik diri daripada keserasian hadapan.
  • Dengan membenamkan Unimplemented***, pelayan tidak akan menerima masa kompilasi ralat untuk pelaksanaan kaedah yang hilang, tetapi sebaliknya akan gagal pada masa jalan jika kaedah tidak dilaksanakan dipanggil.

Sebagai contoh, jika anda mempunyai antara muka GreetService:

type GreetService interface {
    Greet(ctx context.Context, req *pb.GreetRequest, opts ...gax.CallOption) (*pb.GreetResponse, error)
}
Salin selepas log masuk

Anda sebelum ini akan melaksanakannya sebagai:

type server struct {...}
func (s *server) Greet(ctx context.Context, req *pb.GreetRequest, opts ...gax.CallOption) (*pb.GreetResponse, error) {...}
func (s *server) MustEmbeddUnimplementedGreetServiceServer() {...}
Salin selepas log masuk

Sekarang, dengan mustEmbedUnimplemented ***, anda boleh menarik diri daripada keserasian hadapan dengan membenamkan antara muka Tidak Selamat*** sebaliknya:

type server struct {
    grpc.UnsafeGreetServiceServer
    ...
}
Salin selepas log masuk

Perubahan ini memberikan fleksibiliti yang lebih besar dan menghalang kod yang tidak diperlukan dalam pelaksanaan pelayan anda.

Atas ialah kandungan terperinci Bagaimanakah `mustEmbedUnimplemented` gRPC Meningkatkan Keserasian Hadapan Pelayan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan