SpringCloud 学习笔记
Nacos
Nacos 组件可以用于服务注册中心、配置中心。
临时实例与非临时实例
由于 Nacos 支持集群管理,因此底层使用 Raft 协议来完成分布式功能。在 Nacos 集群默认采用 AP 方式,当集群中存在非临时实例时,采用 CP 模式。
对于非临时实例,Nacos 采用主动检测模式,当非临时实例心跳不正常时不会被剔除。同时对于非临时实例的变更,Nacos 采用主动消息推送,服务列表更新更加及时。
如何将一个实例声明为非临时实例?
通过在所要声明的非临时实例配置文件中加入以下配置即可:
spring.cloud.nacos.discovery.ephemeral=false
当值为 false 时表示为非临时实例,默认为 true。
配置文件
配置文件优先级
服务名-profile.yaml > 服务名.yaml > 本地配置
其中 profile 代表环境名
Feign
Nacos 组件可以用于服务之间的远程调用,是 Spring Cloud Netflix组件中的一个轻量级 Restful 的 HTTP 服务客户端。Feign 有以下功能:
- 封装了 Ribbon 实现负载均衡;
- 封装了 RestTemplate 实现 HTTP 请求的发起,以实现远程服务调用。
Spring Cloud Gateway
SpringCloud Gateway 基于 Spring 5.0,Spring Boot 2.0 和 Project Reactor 等技术开发的网关,它旨在为微服务架构提供一种简单有效的统一的 API 路由管理方式,目标是替代 Zuul。
SpringCloud Gateway 是基于 WebFlux 框架实现的,而 WebFlux 框架底层则使用了高性能的 Reactor 模式通信框架 Netty,同时基于 Filter 链的方式提供了网关基本的功能,例如:安全,监控/指标,和限流。
Filter
Filter 过滤器功能如下:
- 负责对路由的请求或响应做加工处理,比如添加消息头;
- 配置在路由下的过滤器只对当前路由的请求生效;
- 也可以通过 defaultFilters 添加默认过滤器
全局过滤器 GlobalFilter
SpringCloud 学习笔记
http://shijieq.github.io/2023/04/10/DistributedSystem/MicroService/Nacos使用小记/