admin管理员组

文章数量:823462

springboot中sentinel整合nacos进行限流详细教学

大家知道sentinel可以进行限流,通过sentinel-dashboard后台进行配置,但这些配置都是保存在内存中的,一旦客户端口或者服务端重启,配置信息将会丢失,所以需要进行持久化配置,本文章主要教大家在本地通过Windows系统进行限流

首先引入依赖:

<dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-alibaba-sentinel</artifactId><version>2.1.0.RELEASE</version>
</dependency>
<dependency><groupId>com.alibaba.csp</groupId><artifactId>sentinel-spring-webmvc-adapter</artifactId><version>1.7.1</version>
</dependency>
<dependency><groupId>com.alibaba.csp</groupId><artifactId>sentinel-core</artifactId><version>1.6.3</version>
</dependency>
<dependency><groupId>com.google.code.gson</groupId><artifactId>gson</artifactId><version>2.8.5</version>
</dependency><!-- Sentinel Datasource 依赖 -->
<dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-alibaba-sentinel-datasource</artifactId><version>2.1.0.RELEASE</version>
</dependency><!-- Sentinel Datasource Nacos 依赖 -->
<dependency><groupId>com.alibaba.csp</groupId><artifactId>sentinel-datasource-nacos</artifactId><version>1.4.2</version>
</dependency>

application.properties做如下配置:

#**********************sentinel start****************************#
spring.cloud.sentinel.transport.dashboard=localhost:8080
spring.cloud.sentinel.eager=false
spring.cloud.sentinel.datasource.ds.nacos.server-addr=172.23.100.130:8848
spring.cloud.sentinel.datasource.ds.nacos.dataId=yzf-api-gateway-sentinel
spring.cloud.sentinel.datasource.ds.nacos.groupId=yzf-api-gateway_group
spring.cloud.sentinel.datasource.ds.nacos.rule-type=flow
#************************sentinel end*****************************#

注意addr的值前缀千万不要加http://,否则不生效!!!!

下载sentinel-dashboard的jar包,然后启动

通过地址:.4.0

下载nacos的包,

导入数据库配置

打开bin/startup.cmd 文件,将MODE从cluster改为 standalone,如下:

修改完后双击bin/startup.cmd文件,启动成功

打开浏览器访问:http://localhost:8848/nacos/index.html

输入用户名/密码访问 nacos/nacos 登录nacos

进行配置

[

{

"resource": "/test/test3",

"limitApp": "default",

"grade": 1,

"count": 3,

"strategy": 0,

"controlBehavior": 0,

"clusterMode": false

}

]

【流控规则】配置项说明:
resource:资源名
limitApp:针对来源,若为 default 则不区分调用来源
grade:阈值类型,0表示线程数,1表示QPS
count:单机阈值
strategy:流控模式,0表示直接,1表示关联,2表示链路
controlBehavior:流控效果,0表示快速失败,1表示Warm Up,2表示排队等待
clusterMode:是否集群
 

注意:sentinel-dashboard服务不是必须的,因为已经通过nacos做了持久化,如果想要监测拦截日志可以启动sentinel-dashboard

本文标签: springboot中sentinel整合nacos进行限流详细教学