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(区域避免):避免将请求发送到与调用方处于同一区域的服务实例,以提高系统的可用性和稳定性。
懒加载: 第一次使用的时候加载 第一次请求会比较慢
饥饿加载:启动就加载
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(浏览器询问-服务器)
分布式事务
seata框架
TC (Transaction Coordinator) – 事务协调者
维护全局和分支事务的状态,驱动全局事务提交或回滚。
TM (Transaction Manager) – 事务管理器
定义全局事务的范围:开始全局事务、提交或回滚全局事务。
RM (Resource Manager) – 资源管理器
管理分支事务处理的资源,与TC交谈以注册分支事务和报告分支事务的状态,并驱动分支事务提交或回滚。
原文地址:https://blog.csdn.net/weixin_38822255/article/details/134667557
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_10293.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!