详细教学"/>
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进行限流详细教学
发布评论