zer*_*ing 5 git go protocol-buffers microservices grpc
我创建了 3 个 proto 文件,并希望将其保存在 git repo 中:
与所有其他文件分开。存储库仅包含.proto文件。我有 3 个微服务,每个微服务都有自己的存储库,使用这些 proto 文件相互通信:
您可以在上图中看到,proto 文件正在从不同的微服务中使用。
假设,我要更改Protofile2并将更改推送到proto存储库,请记住 proto 文件存储库与微服务存储库分离:
当我go test在service1或service2上运行时,它应该告诉我,Protofile2已更改或没有与 service2 文件夹中的 proto 文件相同的哈希值:

我必须再次生成代码。
是否存在解决问题的工具?或者我应该如何解决?
这是我的建议:
import "github.com/me/myproto/protodef2"go v1.112019 年引入)确保微服务 X 获得兼容版本的 protobuf Y要点 2 - 正如@PaulHankin 提到的 - 尽量不要破坏向后兼容性。可以删除 Protobuf 字段,但只要其余字段索引不变,旧的客户端调用仍将与较新的 proto defs 兼容。