概述
流量控制和熔断机制是网关的必备的功能之一。Soul网关以插件的形式,对业界比较主流的限流和熔断框架进行整合。只需要少量配置就可以使用第三方的框架。今天介绍sentinel插件的使用。
如果对Sentinel不熟悉可以去Sentinel官网简单的了解一下。
开始进入正题:
插件设置
首先在Soul-Admin -> 系统管理 -> 插件管理 -> sentinel,设置为开启
在sentinel插件配置”选择器“和”规则“:
选择器配置:
规则配置:
规则配置说明:
对”/http/order/findById“的每秒请求数(QPS)进行限流配置。如果每秒请求数大于10,则采取的流控策略是”直接拒绝“。
插件使用
在网关项目的pom.xml中,添加如下:
<dependency>
<groupId>org.dromara</groupId>
<artifactId>soul-spring-boot-starter-plugin-sentinel</artifactId>
<version>${project.version}</version>
</dependency>
启动网关和下游应用。现在我们可以验证一下插件是否生效。
使用wrk工具对请求进行压测
wrk -c1 -t1 -d1s http://127.0.0.1:9195/http/order/findById\?id\=1
然后,看一下sentinel的metrics日志输出结果:
cat org-dromara-soul-bootstrap-SoulBootstrapApplication-metrics.log.2021-01-27
1611706505000|2021-01-27 08:15:05|1354204739504877568_/http_sentinel/order/findById|10|330|10|0|0|0|0|0
1611706506000|2021-01-27 08:15:06|1354204739504877568_/http_sentinel/order/findById|10|1249|10|0|0|0|0|0
第1列:时间戳
第2列:格式化后的时间戳
第3列:是请求的URL
第4列:即此刻通过Sentinel规则check的数量(passed QPS),有10个请通过
第5列:即此刻通过 Sentinel 规则 check 的数量(passed QPS),有1249个请求被拒绝
第6列:每秒通过的请求数
通过日志输出的结果可以看出使用sentinel的限流配置生效。
总结
学习sentinel插件的设置和使用,下次对sentinel插件的源码进行分析。