随着互联网行业的发展,对服务的要求也越来越高,服务架构也从单体架构逐渐演变为现在流行的微服务架构。这些架构之间有怎样的差别呢?
微服务架构的优缺点
单体架构:将业务的所有功能集中在一个项目中开发,打成一个包部署。
单体架构的优缺点如下:
优点:
缺点:
分布式架构:根据业务功能对系统做拆分,每个业务功能模块作为独立项目开发,称为一个服务。
分布式架构的优缺点:
优点:
缺点:
分布式架构虽然降低了服务耦合,但是服务拆分时也有很多问题需要思考:
人们需要制定一套行之有效的标准来约束分布式架构。
微服务的架构特征:
微服务的上述特性其实是在给分布式架构制定一个标准,进一步降低服务之间的耦合度,提供服务的独立性和灵活性。做到高内聚,低耦合。
因此,可以认为微服务是一种经过良好架构设计的分布式架构方案 。
那么有没有现成的微服务方案呢?
市面上最常用的是SpingCloud,所以很多人产生了错觉,认为SpringCloud就是微服务,微服务就是SpringCloud。这是绝对错误的,首先微服务是一个分布式架构方案,需要很多其它的工具一起使用,而SpringCloud就是粘合其它工具的一个粘合剂。而且市面上还有一个强大的对手。Dubbo也是一种微服务架构。阿里和很多大厂都在用。
目前市场上主流方案有两种
下面主要是通过SpringCloud认识、开发、部署微服务。学Dubbo可以移步到官网:https://cn.dubbo.apache.org/zh-cn/
SpringCloud是目前国内使用最广泛的微服务框架。官网地址:https://spring.io/projects/spring-cloud
SpringCloud集成了各种微服务功能组件,并基于SpringBoot实现了这些组件的自动装配,从而提供了良好的开箱即用体验。
其中常见的组件包括:
另外,SpringCloud底层是依赖于SpringBoot的,并且有版本的兼容关系,如下:
SpringCloud | Spring Boot |
---|---|
2023.0.x aka Leyton | 3.2.x |
2022.0.x aka Kilburn | 3.0.x, 3.1.x (Starting with 2022.0.3) |
2021.0.x aka Jubilee | 2.6.x, 2.7.x (Starting with 2021.0.3) |
2020.0.x aka Ilford | 2.4.x, 2.5.x (Starting with 2020.0.3) |
Hoxton | 2.2.x, 2.3.x (Starting with SR5) |
Greenwich | 2.1.x |
Finchley | 2.0.x |
Edgware | 1.5.x |
Dalston | 1.5.x |
我是时生,一个正在努力的小白。欢迎批评,欢迎指正,欢迎共享。
如果这篇文章对你有帮助,麻烦点个赞呗!
点赞评论超过20个就加快更新哟!