微服务架构设计模式
概述
微服务能在企业中发挥积极作用。因此了解微服务架构(MSA)设计的一般目标或原则,以及一些微服务的设计模式,都是是很有意义的
- 降低成本:MSA 降低了 IT 服务的设计、实现和管理的总体成本
- 提高交付速度:MSA 能够提高服务的实现速度
- 增强健壮性:MSA 能够增强我们服务网络的健壮性
- 提供可视化支持:MSA 能够为服务和网络提供更好的可视化支持
微服务架构的构建原则
- 伸缩能力
- 可用性
- 健壮性
- 弹性
- 独立的匿名服务
- 去中心化的治理
- 故障隔离
- 自动供给
- 通过 DevOps 实现持续交付
在系统建设中,坚持上述原则会遭遇很多挑战和问题。这些问题在很多解决方案中都会出现。如果能够正确的使用合适的设计模式,就能够克服这些问题。微服务的设计模式可以分为五大类,每个大类中都包含一些设计模式
重构单体为微服务
©️Refactoring a Monolith into Microservices
微服务重构概述
单体应用程序转换为微服务的过程是应用程序现代化的一种形式。这是几十年来开发人员一直在做的事情。因此,在将应用程序重构为微服务时,有一些想法是可以重用的。
选择微服务部署策略
©️Choosing a Microservices Deployment Strategy
动机
部署单体应用程序意味着运行一个或多个相同副本的单个较大的应用程序。您通常会在每台服务器上配置 N 个服务器(物理或虚拟)并运行 M 个应用程序实例。单体应用程序的部署并不总是非常简单,但它比部署微服务应用程序要简单得多。
事件驱动数据管理
©️Event-Driven Data Management for Microservices
微服务和分布式数据
管理问题
单体应用程序通常具有一个单一的关系型数据库。使用关系型数据库的一个主要优点是您的应用程序可以使用 ACID 事务,这些事务提供了以下重要保障: