1.分布式架构
分布式架构就是随着业务越来越多,单体项目会维护困难、升级困难,那么将业务核心业务抽取出来,作为独立的服务,逐渐形成稳定的服务中心,使前端应用能更快速的响应多变的市场需求。用于提高业务复用,其优点降低服务的耦合,有利于服务升级和扩展,有利有弊,弊端是其服务调用关系错综复杂。
总结:松耦合,扩展性好,但架构复杂,难度大,适合大型的互联网项目。
2.微服务
微服务的架构特征:
1.微服务拆分粒度更小,每个服务对应唯一的业务。
2.团队独立、技术独立、数据独立、独立的部署和交付。
3.服务提供统一的标准接口,与语言和技术无关。
4.服务调用做好隔离、容错、降级、避免出现级联问题。
微服务的特性其实就是给分布式架构制定一个标准,进一步降低服务之间的耦合度,提供服务的独立性和灵活性,做到高内聚,低耦合,可以认为微服务就是一种记过改良架构设计的分布式架构方案。
总结:一种良好的分布式架构方案,优点是拆分粒度更小、服务更独立、耦合度更低。缺点是架构非常复杂、运维、监控、部署难度提高。
3.SpringCloud
SpringCloud是目前国内使用最广泛的微服务架构,它里面集成了各种微服务功能组件,并且基于SpringBoot实现了这些组件的自动装配,其中常用的有:
1.服务注册发现:Eureka、Nacos、Consul
2.服务远程调用:OpenFeign、Dubbo
3.服务链路监控:Zipkin、Sleuth
4.统一配置管理:SpringCloudConfig、Nacos
5.统一网关路由:SpringCloudGateway、Zuul
6.流控、降级、保护:Hystix、Sentinel
另外注意SpringCloud底层是基于SpringBoot的,并且有版本兼容关系,例如:使用的Hoxton.SR10,对应的SpringBoot版本应该是2.3.x版本。
总结:SpringCloud是微服务架构的一站式解决方案,集成了各种优秀微服务功能组件。