企业正在迅速采用微服务架构来创建灵活,可扩展的应用程序,这些应用程序可以快速迭代,具有较高的容错能力和较低的停机时间。您如何构建正确的微服务架构?
尽管确切的架构会有所不同,但是有一些最佳实践可以帮助设计有效和最佳的微服务架构。
领域驱动设计
微服务的重点是将统一架构分解为更小,更易管理的部分。必须以对所有 利益相关者 都有意义的方式来完成这种分解。
定义单个微服务范围的几种常用方法:
这个想法是创建一组独立的服务,以提供集中的增值服务。面临的挑战是避免将过多的功能过度填充到一个微服务中。通常建议将代码保持足够简单,以便在需要时可以轻松地重新部署。
独立微服务
微服务的独立性是其有效性的关键。它们松散耦合并且可以在没有复杂的相互依赖性的情况下工作,这一事实确保了整个应用程序不会由于单点故障而崩溃。因此,在一些关键领域中必须确保独立性:
与此类似,其他设计模式(例如异步通信和事件驱动的体系结构)也可以用于故障隔离。
不变的基础设施
不变的基础架构 将服务分为数据和“其他”,并且在每个版本中都将“其他”部分替换。创建新版本的微服务,而不是立即更新当前版本。新版本经过测试和微调,而旧版本是应用程序正在使用的版本。仅当新版本稳定时,才可以将其与前一个版本合并。
标准制定
随着组织更多地依赖微服务架构,不同的团队从事不同的服务,流程和实践可能会因团队而异。每个团队可以开始进行不同的开发,部署和错误处理。这可能导致不同团队重复执行许多代码,从而影响效率和周转时间。
因此,建议创建团队可以遵守的组织范围的标准。微服务创建和部署的过程以及它们相应的API应该有充分的文档记录。这也使不同的团队可以了解正在使用的其他微服务API,以及如何最好地使用它们。