首先了解下什么是微服务?
要了解微服务的话,首先我们要知道单体架构,微服务是在单体架构的基础上演变而来的。单体架构的时候我们的所有的功能都在一个工程里面:商品/交易/积分/订单。。。日久天长,随着用户访问数量过高,这时候并发量过大, 就演变出来了微服务
微服务
微服务强调的是服务的大小,它关注的是某一个点,是具体解决某一个问题
2014 年一位名为 马丁.福勒 的工程师提出微服务架构设计理念---------------
微服务架构是一种架构模式,它提倡将单一的应用程序划分为一组小的服务,服务之间互相协调,互相配合,为用户提供最终价值。每个微服务运行在其独立的进程中,服务与服务之间采用轻量级的通信机制互相协作(通常是基于HTTP协议的RESTful
API)。每个服务都围绕着具体业务进行构建,并且能够被独立部署到生产环境等。另外应当尽量避免统一的、集中式的服务管理机制,对具体的一个服务而言,应根据业务上下文,选择合适的语言,工具对其进行构建。
也就是相当于让专业的人去做专业的事
其实微服务的核心就是将传统的一站式应用,根据业务拆分成一个一个的服务,彻底地去解耦合,每个微服务提供单个业务功能的服务,一个服务做一件事,从技术角度看就是一种小而独立的处理过程,类似进程的概念,能够自行单独启动或销毁,拥有自己独立的数据库
- 各个模块/服务,各自独立出来
- 各自微小的一个服务,让专业的人来做专业的事
- 独立部署
- 拥有自己独立的数据库
SpringCloud
分布式微服务架构下的一站式解决方案,是各个微服务架构落地技术集合体,俗称微服务全家桶!
SpringCloud与SpringBoot的关系
- SpringBoot专注于快速方便的开发单个个体微服务
- SpringCloud是关注全局的微服务协调整理治理框架,它将SringBoot开发的一个个单体微服务整合并管理起来
- SpringBoot可以离开SpringCloud独立使用开发项目,但是SpringCloud离不开SpringBoot,属于依赖关系
SpringBoot专注于快速,方便的开发单个微服务个体,SpringCloud关注全局的服务治理于协调
SpringCloud的功能域以及替换方案
×:代表停更
√:代表技术替换方案
SpringBoot与SpringCloud版本兼容性以及对应关系
"spring-cloud": {
"Hoxton.SR10": "Spring Boot >=2.2.0.RELEASE and <2.3.10.BUILD-SNAPSHOT",
"Hoxton.BUILD-SNAPSHOT": "Spring Boot >=2.3.10.BUILD-SNAPSHOT and <2.4.0.M1",
"2020.0.0-M3": "Spring Boot >=2.4.0.M1 and <=2.4.0.M1",
"2020.0.0-M4": "Spring Boot >=2.4.0.M2 and <=2.4.0-M3",
"2020.0.0": "Spring Boot >=2.4.0.M4 and <=2.4.0",
"2020.0.2": "Spring Boot >=2.4.1 and <2.5.0-M1",
"2020.0.3-SNAPSHOT": "Spring Boot >=2.4.5-SNAPSHOT"
}