console.log|

Tod4

园龄:2年11个月粉丝:21关注:0

Sentinel(二)网关流控配置

Sentinel(二)网关流控


​ 官网介绍:https://github.com/alibaba/Sentinel/wiki/网关限流

1 引入依赖

<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-sentinel-gateway</artifactId>
<version>2.2.2.RELEASE</version>
</dependency>

sentinel-gateway的版本需要对应alibaba-spring-cloud的版本

结果是怎么弄sentinel的控制台也不显示网关,我是真烦阿里的产品。。文档做得一言难尽

先记录一下,以后用到再搞吧

2 网关流控规则

  • 设置route_id后即可针对某个路由进行流控
  • 在针对请求属性的设置中,可以选择具体参数匹配模式来匹配请求的属性
  • QPS阈值进行流控,流控效果有快速失败匀速排队
image-20230809101547721
新增自定义API分组
  • 可以将多个自定义API进行分组,在进行流控的时候可以针对一组的API进行流控
  • 每个API的匹配模式可以分为:
    • 精确
    • 前缀
    • 正则
  • image-20230809103348947

3 网关层自定义返回

方式一:配置返回格式和返回的状态码:
spring.cloud.sentinel.scg.fallback.content-type=application/json
spring.cloud.sentinel.scg.fallback.response-status=400
方式二:自定义返回
@Configuration
public class SentinelGatewayConfig {
public SentinelGatewayConfig() {
GatewayCallbackManager.setBlockHandler(new BlockRequestHandler() {
@Override
public Mono<ServerResponse> handleRequest(ServerWebExchange serverWebExchange, Throwable throwable) {
R error = R.error(BizCodeEnum.TOO_MANY_REQUESTS);
String s = JSON.toJSONString(error);
return ServerResponse.ok().body(Mono.just(s), String.class);
}
});
}
}
posted @   Tod4  阅读(222)  评论(0编辑  收藏  举报
   
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起