go - 带有 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
推荐阅读
- python - 我未能训练 CNN + LSTM 模型。我怎么解决这个问题?数据集有问题吗?或模型?(Python 3.8x)
- python - 当任务已经注册时,如何修复未注册的芹菜任务?
- node.js - ngrok:DJango 和 nodejs:如何添加多个端口
- docker - Dockerfile 运行 Python Pipenv 构建失败
- python - 在 pil 中调整图像大小以在 tkinter gui 中使用它时如何解决此错误?
- tensorflow - Tensorflow 2.4.1 中的 BatchNormalization 层提供恒定的验证精度
- python - Python:以功能方式从字典中删除项目
- python-3.x - 什么时候应该将 Age 列转换为 float 或 int?
- tree - 如何以 O(n) 时间复杂度将树转换为 SML 中的列表?
- google-chrome - 在 chrome 中打开时出现 Live Server (vscode) 错误