当前位置: 首页 > news >正文

sentinel-请求限流、线程隔离、本地回调、熔断

请求限流:控制QPS来达到限流的目的

线程隔离:控制线程数量来达到限流的目录

本地回调:当线程被限流、隔离、熔断之后、就不会发起远程调用、而是使用本地已经准备好的回调去提醒用户

服务熔断:熔断也叫断路器,当失败、或者异常等情况达到了一定的阈值,就会进入断路器

请求限流

在了解请求限流需要先知道什么是QPS,QPS就是指每秒最大的并发量,也就是每秒最多接受多少个请求。


登录控制台可以看见四个小按键,第一个就是设置限流和线程隔离的

直接在这里设置单机阈值即可

线程隔离

线程隔离这个线程并不是指用户,而是机器内部的线程,用于处理资源的,具体操作与请求限流类似

与请求限流类似

本地回调

当出现被限流、隔离的情况,会造成用户的体验不佳,无法得到提示,这个时候就需要有一个本地的回调,如果发生错误、异常等情况,服务被隔离无法访问的情况下,就不再去掉哟其他服务,而是直接调用本地事先准备好的回调去提示用户。


实现

在远程调用client包下创建一个子包fallback,之后的回调都会在这个包下


一般命名是根据远程调用的名字后面加上FallbackFactory,比如我的远程调用类为UserClient,那么回调就是UserClientFallbackFactory


除了这个还需要去实现回调工厂的接口FallbackFactory<?>,泛型就是需要创建本地回调的远程服务比如FallbackFactory<CartClient>

public class CartClientFallbackFactory implements FallbackFactory<CartClient>

然后实现CartClient中的方法,每个方法都需要重写并且提供默认值(返回值)

package com.hmall.api.client.fallback;import com.hmall.api.client.CartClient;
import org.springframework.cloud.openfeign.FallbackFactory;
import java.util.Collection;/*** CartClient的回退工厂类* 当调用购物车服务失败时,会使用本工厂产生的回退对象进行容错处理*/
public class CartClientFallbackFactory implements FallbackFactory<CartClient> {/*** 创建CartClient的回退实例* * @param cause 引发回退的异常,可用于日志记录或条件判断* @return 一个CartClient的实现,用于在远程调用失败时提供备选方案*/@Overridepublic CartClient create(Throwable cause) {return new CartClient() {/*** 删除购物车中指定的商品* * @param ids 要删除的商品ID集合* 注意:此方法在回退场景下仅提供日志输出,不执行实际的删除操作*/@Overridepublic void deleteCartItemByIds(Collection<Long> ids) {System.out.println("删除购物车失败");}};}
}

服务熔断

实现

直接在控制台实现即可


http://www.mrgr.cn/news/82005.html

相关文章:

  • AI数据标注师理论部分考试题库 - 500题
  • Mysql SQL 超实用的7个日期算术运算实例(10k)
  • 基于Resnet、LSTM、Shufflenet及CNN网络的Daily_and_Sports_Activities数据集仿真
  • 【Vue】vue-router使用addRoute动态加载路由后刷新页面404
  • 自从学会Git,感觉打开了一扇新大门
  • 数据库入门级SQL优化
  • SAP SD信贷管理后台配置(上)
  • (一)开发环境搭建以及配置
  • K8S-LLM:用自然语言轻松操作 Kubernetes
  • [创业之路-225]:《华为闭环战略管理》-4-华为的商业智慧:在价值链中探索取舍之道与企业边界
  • 2024年中国新能源汽车用车发展怎么样 PaperGPT(二)
  • 论文笔记PhotoReg: Photometrically Registering 3D Gaussian Splatting Models
  • HAL 库句柄
  • uniapp 微信小程序开发使用高德地图、腾讯地图
  • 数学概念2
  • 细说STM32F407单片机CAN基础知识
  • (二)当人工智能是一个函数时,怎么去训练它?
  • CGAL windows 安装教程
  • 大厂高频总线协议面试题及参考答案(几百家面试题挑选最高频精华)
  • 斗鱼Android面试题及参考答案
  • MOS管驱动方案汇总
  • Unity设置中文
  • PHP框架+gatewayworker实现在线1对1聊天--gatewayworker说明(2)
  • 使用 commitlint 和 husky 检查提交描述是否符合规范要求
  • STM32 软件I2C读写
  • Prometheus 专栏 —— Prometheus安装、配置