首页 > 解决方案 > 带有 mustEmbedUnimplemented*** 方法的 grpc

问题描述

最近,grpc-go 引入了 mustEmbedUnimplemented*** 方法。它用于向前兼容。

简单来说,我无法理解它是如何提供帮助的,如果没有它,我们将面临哪些问题?现在在我的结构中,我使用添加以下语句但是,我不知道为什么......

type server struct {
     pdfpb.UnimplementedGreetServiceServer
}

在 Github 问题中 - https://github.com/grpc/grpc-go/issues/3669他们对此进行了辩论,有人可以简单地解释一下它是如何提供帮助的吗?如果没有它,我们将面临哪些问题?

标签: goprotocol-buffersgrpc-go

解决方案


那是相当基本的。

UnimplementedGreetServiceServer 是一个包含所有已实现方法的结构。当我添加 pdfpb.UnimplementedGreetServiceServer 时,我可以调用 UnimplementedGreetServiceServer 定义的方法。

就是这样,如果我在 proto 文件中添加更多 RPC 服务,那么我不需要添加所有导致向前兼容的 RPC 方法。

演示代码位于https://github.com/parthw/fun-coding/tree/main/golang/understanding-grpc-change


推荐阅读