gRPC 中使用 MustEmbedUnimplemented 的前向相容性*
gRPC-go 庫引入了 MustEmbedUnimplemented***方法來增強伺服器中的前向相容性
過去,如果需要方法,gRPC 伺服器會編譯失敗沒有實作。為了緩解這種情況,開發人員必須手動實現未實現的方法,即使它們並不打算使用。
mustEmbedUnimplemented* 透過選擇退出前向相容性解決了這個問題。這意味著:
例如,如果您有一個GreetService 介面:
type GreetService interface { Greet(ctx context.Context, req *pb.GreetRequest, opts ...gax.CallOption) (*pb.GreetResponse, error) }
您之前將其實作為:
type server struct {...} func (s *server) Greet(ctx context.Context, req *pb.GreetRequest, opts ...gax.CallOption) (*pb.GreetResponse, error) {...} func (s *server) MustEmbeddUnimplementedGreetServiceServer() {...}
現在,使用MustEmbedUnimple🎜>
type server struct { grpc.UnsafeGreetServiceServer ... }現在,使用MustEmbedUnimplemented*** ,您可以透過嵌入Unsafe* 來選擇退出前向相容性**改為介面:此變更提供了更大的靈活性並防止伺服器中出現不必要的程式碼實作。
以上是gRPC 的「mustEmbedUnimplemented」如何增強伺服器前向相容性?的詳細內容。更多資訊請關注PHP中文網其他相關文章!