1.SpringCloud alibaba 常用组件
注册中心 Nacos 服务的注册与发现 完成服务的管理
配置中心 Nacos 项目中动态数据的统一管理 项目自动获取最新数据信息
网关 Gateway 聚合后端服务 实现请求过滤
远程调用 OpenFeign 服务之间的通信 远程调用
熔断降级 Sentinel 请求的流量可视化控制 和接口的熔断降级
链路跟踪 Sleuth+Zipkin 服务的调用链路跟踪 通过记录日志形式完成
2.Nacos 注册中心/配置中心
a 服务注册在服务端本地以轮询注册中心集群节点进行注册 采用Map保存 Pull/Push同时运作
b 注册中心实现服务步骤 6步
1 服务容器启动加载
2 服务提供者启动时 向注册中心注册自己提供的服务
3 服务消费者启动时 向注册中心订阅自己所需的服务
4 注册中心返回服务提供者地址列表给消费者 如有变动 注册中心基于场链接推送变更数 据给消费者
5 服务消费者 从提供者地址列表中 基于负载均衡算法 选一台提供者调用 失败选另外一台
6 服务消费者和提供者在内存中累计调用次数和时间定时发送一次数据给监控中心
C CAP理论
Nacos :AP/CP ZK :CP
D Nacos其他
注册中心+配置中心的组合 Eureka+config+bus总线
服务注册 页面-服务管理
新建Model 导包(pom) YML文件 主启动类 业务 页面打开(测试)
生产端8808 消费者9001 9002 轮询的方式访问 天生负载均衡
配置中心 页面-配置管理
新建 导包(pom) YML文件 主启动类 业务 Nacos中添加配置信息 测试-动态刷新 2个配置 项目启动先从配置中心进行配置拉取 再拉取
springboot配置文件加载优先级 bootstrap优先于application
3 Gateway 网关 聚合后端服务 实现请求过滤
a 使用
i :路由匹配 一般是路径匹配
ii :请求过滤 全局过滤器和局部过滤器
b 路由器匹配流程
1 Gateway接受客户端请求
2 客户端请求与路由信息匹配 成功继续
3 请求经过Filter过滤器链 执行pre处理逻辑 如修改请求头
4 请求被转发至下游服务器并返回响应
5 响应经过Filter过滤器链 齿形post处理逻辑
6 向客户端响应应答
4 OpenFeign 远程调用
a 使用
2个注解 1@EnableFeignClients @FeignClient
b 问题解决
1文件上传
2请求消息头传递
c 负载均衡
OpenFegin 实现负载均衡是基于 loadbalancer 实现 1 轮询(默认) 2 随机
d 工作原理
1 通过@EnableFeignClients触发 sping对 classpath中@FeignClient的扫描
2 解析到@FeignClient修饰类后 Feign通过spingbean Deifintion的注册逻辑 注册一个
FeignClientFacotoryBean进入Spring容器
3 Spring容器初始化其他用到@FeignClient接口的类 获得一个 FeignClientFacotoryBean产生的代理对象Proxy
4基于动态代理 针对Proxy的调用 都会被统一转发给Feign框架所定义的一个
InvocationHandler 由该Handler完成HTTP转换 发送 接受 翻译 HTTP响应的工作
5 Sentinel 熔断降级
a 应用
1 限流:可视化 完成接口的流星限载
支持 1 单机阈(yu)值 (1线程数 2QPS)
2 集群阈值(1均摊 2总量)
2 熔断降级:保护核心接口 一旦接口故障 可以根据熔断条件 自动降级处理
熔断机制 1 RT 2 异常数 3异常比例
b 原理
Sentinel中 所有资源名resourceName 每次访问都会创建一个对应的Entry对象
同时 还会创建一系列的功能插槽(slot chain)这些会组成一个责任链
8个