SOA 架构。支持版本的最佳策略
SOA architecture. Best strategy to support versions
他正在争论在 SOA 中支持版本的正确方法。
一个选项:以严格的方式在同一应用程序中实现所有端点 (Version/Contracts)。因此在同一应用程序中支持向后兼容性。
第二个选项:创建具有单个端点的分支。在不同的应用程序中部署每个端点。
每个选项都有其 pro/cons。我注意到的大多数站点都支持同一应用程序(代码库)中的策略 strict/agile/flexible。
但是第二种选择也有好处。通过将端点分解为分支和不同的部署,每个端点变得更加稳定并与其他端点分离。允许开发人员在编写新功能时不考虑向后兼容性。我想这也会使第 3 方集成更加困难(更改数据库方案等)。
你怎么看?
肯定是选项2!
要解决数据库问题,您可以为每个微服务使用一个存储库,并为避免多重性,在碎片中处理生成的 ORM 实体 kernel.as 我明白了,微服务的想法是这是一个独立的过程,而如果你使用第一种方法,你会在不相关的服务之间耦合(不在同一个域中=> DDD)+向后兼容性问题,每次你想要修复你必须:或更新所有微服务,或要求客户端更新他们的一方。
真诚的 YBM
他正在争论在 SOA 中支持版本的正确方法。
一个选项:以严格的方式在同一应用程序中实现所有端点 (Version/Contracts)。因此在同一应用程序中支持向后兼容性。
第二个选项:创建具有单个端点的分支。在不同的应用程序中部署每个端点。
每个选项都有其 pro/cons。我注意到的大多数站点都支持同一应用程序(代码库)中的策略 strict/agile/flexible。 但是第二种选择也有好处。通过将端点分解为分支和不同的部署,每个端点变得更加稳定并与其他端点分离。允许开发人员在编写新功能时不考虑向后兼容性。我想这也会使第 3 方集成更加困难(更改数据库方案等)。
你怎么看?
肯定是选项2!
要解决数据库问题,您可以为每个微服务使用一个存储库,并为避免多重性,在碎片中处理生成的 ORM 实体 kernel.as 我明白了,微服务的想法是这是一个独立的过程,而如果你使用第一种方法,你会在不相关的服务之间耦合(不在同一个域中=> DDD)+向后兼容性问题,每次你想要修复你必须:或更新所有微服务,或要求客户端更新他们的一方。
真诚的 YBM