MustEmbedUnimplemented* 前方互換性のための gRPC のメソッド
grpc-go は最近、mustEmbedUnimplemented* メソッドを導入しました。サーバー実装における上位互換性。以前は、サーバー実装は、プロト定義で定義されたすべてのメソッドを実装しなくてもサービスを登録できました。これにより、プロトに新しいメソッドが追加されると、サーバーに実装がないためにコンパイル時エラーが発生するケースが発生しました。
mustEmbedUnimplemented* メソッドの場合:
// Implements gRPC FooBarServiceServer type FooBarService struct { grpc.UnsafeFooBarServiceServer // Opt out of forward compatibility // other fields }コード生成での前方互換性を無効にするには:
protoc --go-grpc_out=require_unimplemented_servers=false:.mustEmbedUnimplemented
* メソッドは、サーバーが実装は常に最新のプロト定義に更新され、潜在的な不一致を防ぎます。これは、下位互換性を維持しながら、既存のコードを壊さずに新しいメソッドを追加する適切な方法を提供します。
以上がgRPC-go の「mustEmbedUnimplemented*」はサーバー実装の前方互換性をどのように保証しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。