带有mustEmbedUnimplemented***方法的grpc
最近,grpc-go 引入了 mustEmbedUnimplemented*** 方法。它用于向前兼容。
简单来说,我无法理解它是如何提供帮助的,以及在没有它的情况下我们面临哪些问题?现在在我的结构中,我使用添加以下语句,但是,我不知道为什么...
type server struct {
pdfpb.UnimplementedGreetServiceServer
}
在 Github 问题 - https://github.com/grpc/grpc-go/issues/3669 中,他们对此进行了辩论,有人可以简单地解释一下它是如何提供帮助的,以及在没有它的情况下我们面临哪些问题?
回答
那是非常基本的。
UnimplementedGreetServiceServer 是一个包含所有已实现方法的结构。当我添加 pdfpb.UnimplementedGreetServiceServer 时,我可以调用 UnimplementedGreetServiceServer 定义的方法。
就是这样,如果我在 proto 文件中添加更多 RPC 服务,那么我不需要添加所有导致向前兼容性的 RPC 方法。
演示代码可在https://github.com/parthw/fun-coding/tree/main/golang/understanding-grpc-change 获得