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

7、sentinel

控制台访问地址:http://localhost:8080/
在这里插入图片描述

依赖

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

配置文件

spring:cloud:sentinel:transport:dashboard: localhost:8080# 不用等到第一次发送请求,就可以连接到控制台eager: true
feign:sentinel:# 开启兜底返回 @FeignClient(value = "ms2", fallback = Ms2FeignFallBack.class)enabled: true

流量控制

比如QPS=1,1s只能处理一个请求,其余请求会走异常处理方法(直接失败的情况下),也可以设置其他请求排队。

对controller方法流控

/*** 处理controller接口的被限流后的异常处理操作*/
@Component
public class MyBlockExceptionHandler implements BlockExceptionHandler {@Overridepublic void handle(HttpServletRequest request, HttpServletResponse response, BlockException e) throws Exception {response.setContentType("application/json;charset=utf-8");Map<String, Object> map = new LinkedHashMap<>();map.put("code", 500);map.put("msg", "sentinel限流:" + e.getClass());String string = new ObjectMapper().writeValueAsString(map);PrintWriter writer = response.getWriter();writer.write(string);writer.flush();writer.close();}
}

对@SentinelResource(value = “sm”, blockHandler = “smFallBack”)修饰的方法流控

public String smFallBack(String uuid, BlockException blockException) {return uuid + blockException.getClass();
}

对feign方法流控

Ms2Feign

@FeignClient(value = "ms2", fallback = Ms2FeignFallBack.class)
public interface Ms2Feign {
}

Ms2FeignFallBack

@Component
public class Ms2FeignFallBack implements Ms2Feign {@Overridepublic String aa() {return "aa的兜底回调函数";}@Overridepublic String bb(String name, int age) {return null;}@Overridepublic String cc(String name, int age) {return null;}@Overridepublic String dd(FeignEntity feignEntity) {return null;}@Overridepublic String ee(Map<String, Object> reqMap) {return null;}@Overridepublic String ff(String auth, Map<String, Object> reqMap) {return null;}
}

熔断

开启熔断器后,超时会走熔断方法,不会再去调feign方法,直到熔断器关闭。
未开启熔断器,每次都会调,超时再走熔断方法。

在这里插入图片描述
在这里插入图片描述

相关文章:

  • 微信小程序通过mqtt控制esp32
  • 手写call,bind,apply
  • Jetson Orin Nano GPIO 实战,用 devmem 玩转 Pinmux 引脚复用配置
  • 【数据可视化-19】智能手机用户行为可视化分析
  • AI与思维模型【71】——断裂点理论
  • 第五章 SQLite数据库:5、SQLite 进阶用法:ALTER 命令、TRUNCATE 操作、视图创建、事务控制和子查询的操作
  • 【Java面试系列】Spring Cloud微服务架构中的分布式事务解决方案与Seata实现原理详解 - 3-5年Java开发必备知识
  • 每日算法-250420
  • qwen 32B 模型配置文件参数解释;48 个堆叠的解码器层是什么意思; `max_window_layers`的作用; 定义 `device_map`
  • 文件上传漏洞:Pass-01
  • Linux安装mysql_exporter
  • UE虚幻4虚幻5动画蓝图调试,触发FellOutOfWorld事件和打印输出,继续DeepSeek输出
  • C++学习之游戏服务器开发⑩ZINX的TCP通道实现
  • 机制的作用
  • Origin将双Y轴柱状图升级为双向分组柱状图
  • 在 Ubuntu 系统上安装 PostgreSQL
  • Arduino示例代码讲解:Project 08 - Digital Hourglass 数字沙漏
  • javascript day4
  • C语言之图像文件的属性
  • Java(自用查看版)
  • CMG亚太总站:没有邀请韩国偶像团体举办巡回演出
  • 国际著名学者Charles M. Lieber全职受聘清华深圳国际研究生院
  • “译通天下·言立寰宇”:华东师大翻译家的精神传承
  • 大型长读长RNA测序数据集发布,有助制定精准诊疗策略
  • 举牌超200轮!中铁建7.76亿元竞得北京通州梨园宅地
  • 第二艘国产大型邮轮实现坞内起浮,重点强化邮轮供应链本土化建设