在微服务体系结构中,建议集中收集proto文件并将它们作为客户机和服务器的依赖项?或者每个客户端和服务器只有1个原始文件?Grpc微服务体系结构实现
1
A
回答
0
如果您的组织使用单片代码库(即,所有代码都存储在一个存储库中),我强烈建议使用相同的文件。另一种方法是只复制文件,但必须保持所有版本的同步。
如果您在发送方和接收方之间共享协议缓冲区文件,则可以静态检查发送方和接收方是否使用相同的模式,特别是如果某些新的微服务将以静态类型语言编写(例如Java )。另一方面,如果您没有单片代码库,而是有多个存储库(例如,每个微服务一个存储库),那么共享协议缓冲区文件会更麻烦。你可以做的是把它们放在单独的存储库中,这些存储库可以作为依赖项添加到需要它们的微服务中。这是我在我以前的公司见过的。我们有多个用于模式的小型API存储库。
因此,如果它很容易使用相同的文件,我会建议这样做,而不是创建副本。然而,在某些情况下,复制它们更为实际。缺点是您必须始终在所有副本上应用更改。在最好的情况下,你知道哪些文件要更新,那只是乏味。在最坏的情况下,您不知道要更新哪些文件,并且您的模式将不同步。只有当代码被发布时,你才会发现。
请注意,单片代码库并不意味着单片架构。您可以使用微服务,并将所有源代码保存在一个存储库中。这个着名的例子当然是Google。 Google也大量使用协议缓冲区来进行内部通信。我没有看到他们的源代码,但如果他们不在服务之间共享协议缓冲文件,我会感到惊讶。
相关问题
- 1. Couchbase微服务体系结构
- 2. NodeJS中的微服务体系结构
- 3. GraphQL和微服务体系结构
- 4. 微服务体系结构图
- 5. MVC体系结构实现
- 6. 从整体移植到微服务体系结构
- 7. 实现缓存服务器的体系结构问题
- 8. 无服务器体系结构和微服务之间的关系
- 9. 三层体系结构与三层服务器体系结构
- 10. GRPC服务发现
- 11. 基于Java中RESTful API的微服务体系结构
- 12. 微服务体系结构中的消息
- 13. 事件驱动的微服务体系结构中的数据
- 14. 微服务体系结构中的ASP.NET身份
- 15. 在Java微服务体系结构中公开的域模型
- 16. 如果使用Sequelize作为ORM的微服务体系结构
- 17. 微服务体系结构中的单点登录
- 18. 微服务认证体系结构与passport.js
- 19. 微服务体系结构中的异步
- 20. 在微服务体系结构中设置开发环境
- 21. 使用服务结构的服务体系结构
- 22. 用户界面和身份验证服务器的微服务体系结构
- 23. 验证微服务体系结构的每项服务中的访问令牌
- 24. 在微服务架构+的NoSql数据库[微服务体系结构的数据一致性]
- 25. 使用CellTable实现MVP体系结构
- 26. API密钥实现的体系结构
- 27. JHipster微服务实体
- 28. ASP.NET面向服务的体系结构
- 29. 体系结构问题:服务
- 30. SOAP Web服务回调体系结构?