了解gRPC的mustEmbedUnimplemented方法*
在最近的更新中,gRPC-go引入了mustEmbedUnimplemented* 方法以确保其向前兼容性服务器。但它到底是做什么的?
在 MustEmbedUnimplemented*
之前,注册服务器实现需要直接注册它,如下所示:
pb.RegisterFooBarServiceServer( server, &FooBarServer{}, // or whatever you use to construct the server impl )
如果服务器缺少某些方法的实现,会导致运行时出错
引入 MustEmbedUnimplemented*
使用更新的 protoc-gen-grpc-go 编译器,前向兼容性成为默认值。这意味着:
配置前向兼容性
此外,使用时可以通过设置以下选项来禁用向前兼容性protoc-gen-grpc-go:
protoc --go-grpc_out=require_unimplemented_servers=false:.
好处
mustEmbedUnimplemented*确保服务器始终向前兼容,防止导致意外错误通过未实现的方法。通过选择退出 Unsafe FooBarServiceServer,开发人员可以保持向后兼容性,同时仍然遵守前向兼容性原则。
以上是gRPC 的'mustEmbedUnimplemented”方法是什么以及它如何确保前向兼容性?的详细内容。更多信息请关注PHP中文网其他相关文章!