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

sentinel使用手册

1.引入依赖

<dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-sentinel</artifactId></dependency>

2.yaml

spring:cloud:sentinel:transport:dashboard: localhost:8090 #sentinel控制台地址http-method-specify: true # 是否设置请求方式作为资源名称
feign:sentinel:enabled: true # 开启feign对sentinel的支持

3.降级

3.1 引入依赖

<dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-sentinel</artifactId></dependency>

3.2 创建降级方案

触发限流或熔断后的请求不一定要直接报错,也可以返回一些默认数据或者友好提示,用户体验会更好。
给FeignClient编写失败后的降级逻辑有两种方式:

  • 方式一:FallbackClass,无法对远程调用的异常做处理
  • 方式二:FallbackFactory,可以对远程调用的异常做处理,我们一般选择这种方式。

这里我们演示方式二的失败降级处理。
步骤一:在hm-api模块中给ItemClient定义降级处理类,实现FallbackFactory

@Component
public class ItemClientFallBackFactory implements FallbackFactory<ItemClient> {@Overridepublic ItemClient create(Throwable cause) {return new ItemClient() {@Overridepublic PageDTO<ItemDTO> queryItemByPage(PageQuery query) {//这里写降级逻辑return null;}@Overridepublic List<ItemDTO> queryItemByIds(List<Long> ids) {//这里写降级逻辑return List.of();}};}
}

步骤二: 在hm-api模块中的ItemClient接口中使用ItemClientFallbackFactory:

@FeignClient("item-service", fallbackFactory = ItemClientFallBackFactory.class)
public interface ItemClient {@GetMapping("/items/page")PageDTO<ItemDTO> queryItemByPage(PageQuery query);@GetMapping("/items")List<ItemDTO> queryItemByIds(@RequestParam("ids") List<Long> ids);
http://www.lryc.cn/news/495317.html

相关文章:

  • 搜索二维矩阵 II(java)
  • Python语法基础(四)
  • 03_Django视图
  • 如何从 Hugging Face 数据集中随机采样数据并保存为新的 Arrow 文件
  • 11 设计模式之代理模式(送资料案例)
  • MongoDB聚合操作
  • 第二十三周周报:High-fidelity Person-centric Subject-to-Image Synthesis
  • Cesium 与 Leaflet:地理信息可视化技术比较
  • Linux 服务器使用指南:诞生与演进以及版本(一)
  • 龙蜥 Linux 安装 JDK
  • Python小白语法基础20(模块与包)
  • 详解 Qt QtPDF之QPdfPageNavigator 页面跳转
  • 通俗易懂:序列标注与命名实体识别(NER)概述及标注方法解析
  • 【C语言】二叉树(BinaryTree)的创建、3种递归遍历、3种非递归遍历、结点度的实现
  • 2024年11月文章一览
  • 重生之我在异世界学编程之C语言:二维数组篇
  • 和鲸科技创始人CEO范向伟出席首届工业智算产业发展研讨会,共话 AI 创新与产业化落地
  • postgres数据备份与主从配置
  • 【二分查找】力扣 275. H 指数 II
  • 使用uni-app进行开发前准备
  • AI开发-深度学习框架-PyTorch-torchnlp
  • VBA数据库解决方案第十七讲:Recordset对象记录位置的定位方法
  • Ubuntu 操作系统
  • Maven 内置绑定到底怎么回事?
  • 如何把Qt exe文件发送给其他人使用
  • 【汇编语言】call 和 ret 指令(三) —— 深度解析汇编语言中的批量数据传递与寄存器冲突
  • 定义函数合并字符串—超详细讲解
  • 实现 vue3 正整数输入框组件
  • Leetcode - 周赛425
  • c++(斗罗大陆2)