1.nacos(Naming and Configuration Service):服务发现、管理、配置
2.Spring cloud常用组件
2.1注册中心 nacos
注册中心分为客户端和服务端,它们之间存在心跳,客户端停止,服务端会报错
客户端:可直接在docker中安装部署
服务端:需要在微服务中部署(nacos自带数据库derby)
1.引入依赖 spring-cloud-starter-alibaba-nacos-discovery
2.配置文件
3.启动类
2.2配置中心 nacos
存放经常需要变更的数据,方便统一管理,如:服务器密钥
配置信息,谁后加载,执行谁
2.3负载均衡 loadbalancer(已封装好,默认轮循访问,可通过配置权重改变微服务的访问量)
1.在配置文件中开启负载均衡(配置在consumer,即order上)
2.配置权重(配置在provider,即user上)
2.4路由网关 gateway:用来统一给分布式系统进行路由分配的服务
用途:
请求路由
请求过滤
请求鉴权
流量控制,但流量控制现在用sentinel
统一异常处理
2.5 openFeign (封装了restTemplate),通过伪service的方式调用远程的微服务
它是轻量级RESTful的 http客户端,支持spring MVC的注解
配置在consumer
//可作为http客户端
@Bean
public RestTemplate a(){
RestTemplate restTemplate = new RestTamplate();
return restTemplate;
}
3.跨域:防止外来请求攻击服务器
4.负载均衡策略:
4.1轮询策略:按一定的顺序分配请求到服务器
4.2权重策略:将权重配置在提供者上,权重越大,请求响应越快
4.3随机策略
4.4最小连接数策略:分配请求给连接数数少的服务器
4.5重试策略:采用轮询策略,在规定的请求时间内,重复请求服务,超时,则返回null
4.6可用性敏感策略:先过滤掉非健康的服务,然后选择最小连接数服务
4.7区域敏感策略:根据服务所在区域的性能和服务的可用性来选择服务实例,在没有区域的环境下,该策略和轮询策略类似
5.常用断言(predicate)方式
Path路径断言:Path=/api/user/**
Method方法断言 Method=Get
Host域名断言:Host=www.baidu.com
6.过滤器
路由过滤器:只能当前路由用
网关过滤器:网关中所有路由都能用
自定义过滤器:全局,用户自定义