SpringCloud

JWT

JWT(JSON Web Token)是一种用于在网络应用间传递信息的安全标准。JwtTool生产成
三个部分组成:头部(Header)、载荷(Payload)和签名(Signature)。
工作流程如下:
1. 用户提供身份验证凭证(例如用户名和密码)进行身份验证。
2. 服务器验证用户凭证的有效性,并生成一个 JWT。
3. 服务器将 JWT 返回给客户端。
4. 客户端将 JWT 存储在本地(通常是在浏览器的本地存储或 Cookie 中)。
5. 客户端在后续的请求中将 JWT 作为身份验证凭证传递给服务器。(拦截器
6. 服务器验证 JWT 的签名和有效期,并根据其中的信息进行授权和身份验证。
 

注册中心


注册中心 eureka ,Nacos(服务治理,)
心跳 ,续约,推送改变,注册-发现,健康监控
eureka集群部署


Nacos
服务分级存储模型-
集群概念  服务-集群-实例
还支持配置管理、动态路由、流量管理和服务熔断等
负载均衡:集群优选轮询,权重(0-1)
环境隔离:就是新建分组 sit或uat

eureka和Nacos区别
CAP理论,Consistency(一致性)、Availability(可用性)、Partition Tolerance(分区容错性),
*心跳Nacos有临时实例(自己发给注册中心,不健康会剔除) 和非临时实例(注册中心主动发,不健康改状态)更新及时
*消费者推送:e只是pull  N有pull和push
*eureka(AP)和Nacos(CP)
*Nacos配置管理

Nacos统一配置管理(配置热更新)
*类似Spring Cloud Config
*正常流程 项目启动---读取本地.yml文件 --创建spring容器--加载bean
*流程 项目启动----(bootstrap.yml)--(读取nacos配置)---读取本地.yml文件 --创建spring容器--加载bean
*bootstrap.yml 引导文件 优先级高于 application.yml
步骤1 在Nacos添加配置,服务添加bootstrap.yml配置
步骤2 服务 配置自动刷新
2.1在@Value注入的变量所在类添加@RefreshScope
2.2使用@ConfigurationProperties(自动注入配置文件的值)

 



 

负载均衡  Ribbon(配置文件配置)


1. Round Robin(轮询)默认:按照顺序依次将请求分发给不同的服务实例。
2. Random(随机):随机选择一个服务实例来处理请求。
3. Weighted Round Robin(加权轮询):根据服务实例的权重,按照一定顺序将请求分发给不同的服务实例。
4. Weighted Random(加权随机):根据服务实例的权重,随机选择一个服务实例来处理请求。 5. Availability Filter(可用性过滤):排除掉故障或不可用的服务实例,然后再根据其他策略进行负载均衡。
6. Response Time(响应时间):根据服务实例的平均响应时间,选择响应时间最短的服务实例来处理请求。
7. Best Available(最佳可用):选择状态为"UP"(可用)的服务实例中,响应时间最短的服务实例来处理请求。
8. Zone Avoidance(区域避免):避免将请求发送到与调用方处于同一区域的服务实例,以提高系统的可用性和稳定性。
懒加载: 第一次使用的时候加载   第一次请求会比较慢
饥饿加载:启动就加载
 

远程调用
restTemplate


feign-声明式客户端-远程调用


替代restTemplate
集成了负载均衡 ribbon(默认)
集成hystrix

自定义配置
*日志级别(feign.logger.level):4种(没有 (默认),基础,请求头,全部) 配置全局或者某个
常用(最好选择 没有 ,基础)提高性能
*失败重试(feign.Retryer):请求失败重试,默认没有,不过ribbon是重试的 就是默认有
响应结果解析:例如将json转java对象
支持的注解格式:默认springMVC的注解

feign性能优化
*底层使用 URLConnection  不支持连接池   (默认的)
httpClient  支持连接池 
OKhttp  支持连接池 
 优化1:使用httpClient或者OKhttp去替代  配置开启连接池
优化2:日志 最好选择 没有 ,基础提高性能

feign最佳是实现
继承:controller和feignClient继承相同接口    缺点耦合度高
抽取:将feign抽取出独立模块    缺点:很大用不到的代码也必须一起加进来

Gateway统一网关


作用
*身份证验证
*服务路由和负载均衡
*请求限流
选择
*Gateway 响应式(更好)
*Zuul  阻塞的

搭建(3服务)
创建服务
配置路由(id /地址/ 断言(**/usr)  过滤器(处理请求或者响应))

断言工厂
path(默认)
哪个时间之前  ,之后 , 之间,
请求cookie, head 包含什么 
指定host  ,请求方式,  指定参数  
ip范围 权重

GatewayFilter过滤器(过滤器链)
过滤器工厂
添加移除 请求头,添加异常响应头 , 限制流量
GlobalFilte全局过滤器可以自定义过滤逻辑(登陆模块)

网关-跨网问题处理(域名或端口不一样,浏览器禁止)
CORS(浏览器询问-服务器)



雪崩
hystrix
sentinel图像化

 


分布式事务


seata框架
 

TC (Transaction Coordinator) - 事务协调者
维护全局和分支事务的状态,驱动全局事务提交或回滚。

TM (Transaction Manager) - 事务管理器
定义全局事务的范围:开始全局事务、提交或回滚全局事务。

RM (Resource Manager) - 资源管理器
管理分支事务处理的资源,与TC交谈以注册分支事务和报告分支事务的状态,并驱动分支事务提交或回滚。

AT模式  保存补偿操作
XA 未提交阻塞
 


 

你可能感兴趣的:(spring,cloud,服务器,spring)