熔断持久化
首先,先导入两个包 熔断限流和持久化(这个是真熔断)
然后配置yaml
yaml里面的data-id要和nacos上面的一致
controller类
配置持久化 在nacos 简单来说 就是把熔断限流配置在nacos里面 在代码里面,不需要在去限流里面去改
[{
"count": 3,
"grade": 2,
"limitApp": "default",
"minRequestAmount": 1,
"resource": "fallbackhandler",
"timeWindow": 15
}]
resource的名字一定要和 这个地方的一致
resource=资源名 grade=限流域值类型 0代表数量 1代表qps count=单机阈值 strategy=流控模式 controlBehavior=流量控制效果 clusterMode=集群模式 limitApp=不限制来源
限流持久化
在user类里面配置持久化
首先导入两个包
导完之后配置yaml
yaml里面的data-id要和nacos上面的一致
然后去controller类里面写上异常处理
limitApp=不限制来源
然后去nacos上面写一个配置类 上传到云 就相当于完成了持久化配置
[{
"count":3,
"grade":1,
"limitApp":"default",
"resource":"fallBlock"
}]
resource的名字要和下面这个
网关实现流程
首先创建一个新的工程 然后导入所需要的包
包如下
导入两个工具类
然后在主程序入口写上注解
之所以去掉数据源 是因为网关本身不带数据源的 所有要去掉 包括他导入的包也是一样
配置yaml
这个里面的配置的项目必须上云 否则配置就报错 lb=负载均衡
熔断知识点
熔断分为真熔断和假熔断 真熔断:当服务端自己本身报错 那么就是真熔断 所有请求都进不来的
假熔断:当客户端去发送请求给服务端 如果是客户端本身报错 那么就称之为假熔断 因为服务端还是可以用的
拒绝策略 :直接拒绝 预热 排队
算法
限流算法 计算 滑动窗口 漏桶 令牌桶
网关
网关为微服务架构的系统提供简单、有效且统一的API路由管理,是系统的统一入口,提供内部服务的路由中转,给客户端提供统一的服务,可以实现一些和业务没有耦合的公用逻辑,主要功能包含认证、鉴权、路由转发、安全策略
网关实现方式:GateWay Nginx+lua Kong
网关流程:
- 客户端发送请求到网关。
- 网关根据预先配置的路由规则,将请求转发到相应的微服务。
- 如果目标服务有多个实例,网关会使用负载均衡算法选择一个实例来处理请求。
- 目标服务处理请求并返回响应。
- 网关将响应返回给客户端。