【grpc】grpc进阶一,再回首protobuf

在之前的章节里,我们了解了 protobuf 的基本规则和使用方法,生成了 grpc 代码并成功运行。那么我们还要思考一个问题,protobuf 文件到底该如何管理。我们知道 grpc 是区分客户端和服务端的,一般而言,客户端和服务端是分两个工程,如果是在一个工程里也没有使用 rpc 的必要了。这样就会有一个问题,protobuf 文件如何共享?

我们进入正文,关于 protobuf 文件管理的方法在网上有挺多,我比较倾向于 git 子模块的管理方式。把 protobuf 文件抽出来单独建立一个 git 项目,实际调用到 protobuf 的项目中添加 protobuf 的项目为子模块,下面就我们之前的例子实际讲述一下。

一、建立 protobuf git 项目

首先要建立 protobuf 的 git 仓库。我们把前几篇中使用的工程的子目录 proto 单独拿出来,进到目录下创建 git 项目,然后推送到 git 仓库里,我这边的地址是 https://gitee.com/sauryniu/grpc-demo-proto.git

二、添加 git 子模块

回到我们的 grpcDemo 目录下,初始化为 git 工程,然后执行子模块添加命令:

bash 复制代码
git submodule add https://gitee.com/sauryniu/grpc-demo-proto.git ./proto

推送到仓库,可以看到状态为:

看下本地的目录:

好像一切都没变,但一切都变了...

相关推荐
AC赳赳老秦5 小时前
技术文档合著:DeepSeek辅助多人协作文档的风格统一与内容补全
android·大数据·人工智能·微服务·golang·自动化·deepseek
Grassto6 小时前
9 Go Module 依赖图是如何构建的?源码解析
开发语言·后端·golang·go module
乐观主义现代人6 小时前
gRPC 框架面试题学习
后端·学习·rpc
bing.shao6 小时前
基于 Go + Ollama 开发智能日志分析工具完整实战
开发语言·后端·golang
初願致夕霞7 小时前
实现具备C++11现代特性的STL——vector篇(附带简单的航空订票系统实例)
开发语言·c++·rpc
Hello.Reader7 小时前
连接四元组它为什么重要,以及它和端口复用(SO_REUSEPORT)的关系(Go 实战)
开发语言·后端·golang
浮尘笔记8 小时前
Go语言上下文:context.Context类型详解
开发语言·后端·golang
weixin199701080168 小时前
安家 GO item_area - 获取地区类列表数据接口对接全攻略:从入门到精通
java·数据库·golang
一叶飘零_sweeeet9 小时前
零基础入门 Go 语言
开发语言·后端·golang
布谷歌21 小时前
开发笔记:如何消除秘钥数据对RPC负荷、日志、系统安全的伤害?
网络·笔记·网络协议·rpc