目录
3.1 编写一个service,在里面添加一个dosomething方法
3.2 在Controller中声明两个方法,分别调用service中的dosomething方法
3.3.1 将SpringCloud Alibaba的版本调整2.1.1RELEASE
3.3.2 配置文件中关闭sentinel官方的CommonFilter实例化
3.3.3 添加配置类,自己构建CommonFilter实例
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 链路流控模式
链路流控模式指的是,当从某个接口过来的资源达到限流条件时,开启限流。它的功能有点类似于针对来源配置项,区别在于:针对来源是针对上级微服务,而链路流控是针对上级接口,也就是说它的粒度更细。