gRPC 学习
背景
添加到应用的新功能可能要求提供给客户端的 gRPC 服务进行更改
- 应考虑更改会如何影响客户端。
- 应实现支持更改的版本控制策略
名词解释
非中断性变更:允许现有客户端继续工作而不做任何变更
中断性变更:gRPC 服务发生中断性变更时,必须更新和重新部署使用该服务的客户端
设计原则
向后兼容性,尽量对服务进行非中断性变更,好处是:
- 现有客户端可继续运行
- 避免向客户端通知中断性变更并进行更新
- 只需要记录和维护服务的一个版本
版本控制方案
proto 文件变更规范
- proto 文件遵循只增不减的原则
- proto 文件中的接口遵循只增不减的原则
- proto 文件中的 message 字段遵循只增不减的原则
- proto 文件中的 message 字段类型和序号不得修改