简介
Sentinel 主要是用于解决在大规模的微服务场景下,避免服务出现雪崩,提高服务的可用性。限流和降级是现在比较主流的手段。
Sentinel 以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。
使用
接下来说一下Sentinel 与springcloud gateway 的整合 以及简单的使用,我这边是gateway 跟sentinel的整合。
- 下载sentinel-dashboard.jar 或者是源码自行打包
地址:https://github.com/alibaba/Sentinel/releases - 启动sentinel-dashboard
sentinel-dashboard 也是springboot项目 用如下命令启动就可以了
java -Dserver.port=8085 -Dcsp.sentinel.dashboard.server=localhost:8085 -Dproject.name=sentinel-dashboard -jar target/sentinel-dashboard.jar - gateway项目配置依赖包
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-sentinel-gateway</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba.csp</groupId>
<artifactId>sentinel-datasource-nacos</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-gateway</artifactId>
<version>2.2.2.RELEASE</version>
</dependency>
- gateway配置文件
#配置sentinel监控中心的地址
spring.cloud.sentinel.transport.dashboard=127.0.0.1:8085
#配置数据源
spring.cloud.sentinel.datasource.ds.nacos.server-addr=172.26.130.36:8848
spring.cloud.sentinel.datasource.ds.nacos.data-id=sentinel
spring.cloud.sentinel.datasource.ds.nacos.username=nacos
spring.cloud.sentinel.datasource.ds.nacos.password=nacos
spring.cloud.sentinel.datasource.ds.nacos.group-id=DEFAULT_GROUP
spring.cloud.sentinel.datasource.ds.nacos.data-type=json
spring.cloud.sentinel.datasource.ds.nacos.rule-type=degrade
#这是springcloud中配置的一个路由规则
spring.cloud.gateway.routes[0].id=web
spring.cloud.gateway.routes[0].uri=lb://api-server
spring.cloud.gateway.routes[0].predicates[0]=Path=/test/**
spring.cloud.gateway.routes[0].filters[0]=StripPrefix=1
配置完先启动控制台跟nacos ,然后启动gateway 项目
dashboard需要有调用才可以看到我们得资源节点,从而对我们得资源进行限流,熔断等操作。