如何使 grpc 服务定义在服务器和客户端之间保持同步?

How to keep grpc service definitions in sync between server and clients?

我计划使用 grpc 来构建我的搜索 API,但我想知道 grpc 服务定义文件(例如 .proto)如何在服务器和客户(假设所有人都使用不同的技术)。

此外,如果服务器更改了 .proto 之一,将如何通知客户端根据这些更改重新生成它们的存根。

总结一下:如何与客户共享定义 (.proto),以及如果这些文件发生任何更改,如何通知客户?

很简单:他们不是。这里的所有同步都是手动的,通常需要重建和重新部署,在您意识到更改并更新您的 .proto 文件之后。

不更新,你知道的字段和方法至少应该能用。你只是不会有新位。

另请注意:虽然您可以通过添加新字段和服务/方法来扩展 模式,但如果您更改字段的含义 ,或字段类型,或服务上的消息类型:预计会出现严重错误。