【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

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

看下本地的目录:

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

相关推荐
Wenweno0o19 小时前
0基础Go语言Eino框架智能体实战-chatModel
开发语言·后端·golang
咬_咬20 小时前
go语言学习(基本数据类型)
开发语言·学习·golang·数据类型
搜佛说1 天前
01-第1章-概述与快速开始
物联网·golang·开源·软件工程·边缘计算·嵌入式实时数据库
LlNingyu1 天前
什么是Go的接口(二)
golang
不会写DN1 天前
如何设计应用层 ACK 来补充 TCP 的不足?
开发语言·网络·数据库·网络协议·tcp/ip·golang
不会写DN1 天前
如何给 Go 语言的 TCP 聊天服务加上 ACK 可靠送达机制
开发语言·tcp/ip·golang
鸿儒5171 天前
利用gdal进行RPC经纬度与像素坐标转换问题记录
linux·rpc·gdal
ZHENGZJM1 天前
后端基石:Go 项目初始化与数据库模型设计
开发语言·数据库·golang
人间打气筒(Ada)1 天前
「码动四季·开源同行」go语言:微服务网关如何作为服务端统一入口点?
微服务·golang·开源·微服务网关·go实战
ん贤1 天前
Go 并发高频十问:goroutine 与线程的区别是什么?select 底层原理是什么?
开发语言·golang·并发