sentinel流控模式

目录

1 直接流控模式

2 关联流控模式

2.1 配置限流规则

2.2 jmeter压/order/message2接口

3 链路流控模式

3.1 编写一个service,在里面添加一个dosomething方法

3.2 在Controller中声明两个方法,分别调用service中的dosomething方法

3.3 禁止收敛URL的入口context

3.3.1 将SpringCloud Alibaba的版本调整2.1.1RELEASE

3.3.2 配置文件中关闭sentinel官方的CommonFilter实例化

3.3.3 添加配置类,自己构建CommonFilter实例

3.4 控制台配置限流规则

3.5 测试接口


sentinel共有三种流控模式:

  • 直接(默认):接口达到限流条件时,开启限流
  • 关联:当关联的资源达到限流条件时,开启限流,适合做应用让步。例如为一个查询的接口添加关联流控,关联资源为一个更新的接口,当更新的接口达到阈值时,开启查询接口的限流,为更新接口让步服务器资源。
  • 链路:当从某个接口过来的资源达到限流条件时,开启限流

下面分别演示三种模式:

1 直接流控模式

直接流控模式是最简单的模式,当指定的接口达到限流条件时开启限流。效果参考https://blog.csdn.net/qq_31155349/article/details/108470606中的4.3.4小节

2 关联流控模式

关联流控模式指的是,当指定接口关联的接口达到限流条件时,开启对指定接口开启限流。

2.1 配置限流规则

将流控模式设置为关联,关联资源设置为/order/message2

2.2 jmeter压/order/message2接口

上图设置意味着每秒发送5次请求,即QPS=5。超过流控阈值。

jmeter启动压测,浏览器访问/order/message1接口,会发现已经被限流:

3 链路流控模式

链路流控模式指的是,当从某个接口过来的资源达到限流条件时,开启限流。它的功能有点类似于针对来源配置项,区别在于:针对来源是针对上级微服务,而链路流控是针对上级接口,也就是说它的粒度更细。

### Sentinel 链路模式的配置与使用 #### 1. 基本概念说明 在微服务架构中,当多个接口调用同一 Service 方法时,可以利用 Sentinel 的 `@SentinelResource` 注解来定义资源并对其进行制。对于此类场景下的资源配置,可以选择采用 **链路模式** 来实现更精细的量管理[^1]。 #### 2. 配置项解释 为了使链路模式正常工作,需设置参数 `web-context-unify=false`。默认情况下此选项为 true,意味着所有请求都会被统一到根路径下处理;而将其设为 false 后,则可以根据不同 URL 实现独立的链路逻辑[^4]。 #### 3. YAML 文件中的具体配置实例 以下是 Spring Boot 应用程序中关于 Sentinel 组件的相关配置示例: ```yaml server: port: 8061 spring: application: name: order-sentinel cloud: sentinel: transport: dashboard: 127.0.0.1:8080 web-context-unify: false # 关闭上下文聚合,默认开启 ``` 上述配置片段展示了如何通过修改应用程序属性文件来启用链路级别的 QPS 制功能[^3]。 #### 4. Java 代码层面的应用实践 假设存在如下业务逻辑,在其中应用了 `@SentinelResource` 注解以标记受保护的服务方法: ```java import com.alibaba.csp.sentinel.annotation.SentinelResource; @Service public class OrderServiceImpl implements IOrderService { @Override @SentinelResource(value = "createOrder", blockHandlerClass = BlockExceptionHandler.class, blockHandler = "handleException") public String createOrder(String userId){ // 创建订单的具体操作... return "success"; } } ``` 在此基础上,可以通过 Sentinel Dashboard 或者 API 动态调整针对特定 HTTP 请求路径所对应的资源对象实施精准化的访问频率限制策略[^2]。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值