1、SpringCloud
- 微服务:微服务架构就是将单体的应用程序分成多个应用程序,每个应用程序被称为微服务,每个微服务运行在自己的进程中,并使用轻量级的机制通信,即不会强依赖;这些服务围绕业务能力来划分,并通过自动化部署机制来独立部署。这些服务可以使用不同的编程语言,不同数据库,以保证最低限度的集中式管理。
- SpringCloud:SpringCloud就是把市场上优秀的服务框架组合起来,通过Spring Boot风格进行再封装屏蔽掉复杂的配置和实现原理,相当于一个能够快速启动和部署的分布式系统开发工具
2、SpringCloud的组成
- Eureka/Nacos:服务注册与发现
- Zuul/Gateway:服务网关
- Ribbon:客户端负载均衡
- Feign:声明性的Web服务客户端
- Hystrix:断路器
- zipkin:链路追踪
- Spring Cloud Bus:服务总线
- Spring Cloud Config:分布式统一配置管理
- 等等
3、Nacos
- Nacos:是一种分布式服务发现和配置管理工具,它可以用于服务注册、健康检查、负载均衡、故障恢复、动态配置等方面
- 动态配置的实现方式:
- 添加对应spring-cloud-starter-alibaba-nacos-config依赖
- 使用原生注解@Value()导入配置
- 使用原生注解@RefreshScope刷新配置
- 根据自己业务场景做好多环境配置隔离(Namespace)、不同业务配置隔离(Group)
- 切记:命名空间和分组的配置一定要放在bootstrap.yml或者bootstrap.properties配置文件中
4、Gateway(可以配合nacos使用)
- Gateway:Gateway是一个轻量级的API网关,它通过将所有客户端请求导向到一个或多个微服务实例,实现了路由、负载均衡、安全性等功能
- 路由(route):网关最基础的部分。由一 个ID、一个目标URL(最终路由到的地址)、一系列的断言(匹配条件判断)和 Filter过滤器(精细化控制)组成。
- 断言(predicates):开发人员可以匹配Http请求中的所有内容(包括请求头、请求参数等)(类似于nginx中的location匹配一样),如果断言与请求相匹配则路由。
- 过滤器(filter):通过自定义过滤器,可以在请求之前或者之后执行业务逻辑。