下载完成后在命令行输入如下命令运行Sentinel控制台:
java -jar sentinel-dashboard-1.7.0.jar
Sentinel控制台默认运行在8080端口上,登录账号密码均为sentinel
,通过如下地址可以进行访问:http://localhost:8080
Sentinel控制台可以查看单台机器的实时监控数据。
创建sentinel-service模块
这里我们创建一个sentinel-service模块,用于演示Sentinel的熔断与限流功能。
在pom.xml中添加相关依赖,这里我们使用Nacos作为注册中心,所以需要同时添加Nacos的依赖:
org.springframework.boot
spring-boot-starter-web
com.alibaba.cloud
spring-cloud-starter-alibaba-nacos-discovery
com.alibaba.cloud
spring-cloud-starter-alibaba-sentinel
org.springframework.cloud
spring-cloud-starter-netflix-ribbon
org.springframework.cloud
spring-cloud-starter-openfeign
在application.yml中添加相关配置,主要是配置了Nacos和Sentinel控制台的地址:
server:
port: 8401
spring:
application:
name: sentinel-service
cloud:
nacos:
server-addr: http://localhost:8848
sentinel:
transport:
dashboard: http://localhost:8080
port: 8719
service-url:
user-service: http://nacos-user-service
management:
endpoints:
web:
exposure:
include: ‘*’
限流功能
Sentinel Starter 默认为所有的 HTTP 服务提供了限流埋点,我们也可以通过使用@SentinelResource来自定义一些限流行为。
用于测试熔断和限流功能。
@RestController
@RequestMapping(“/rateLimit”)
public class RateLimitController {
/**
按资源名称限流,需要指定限流处理逻辑
@return
*/
@GetMapping(“/byResource”)
@SentinelResource(value = “byResource”, blockHandler = “handleException”)
public Result byResource() {
return new Result(“按资源名称限流”, 200);
}
/**
按url限流,有默认的限流处理逻辑
@return
*/
@GetMapping(“byUrl”)
@SentinelResource(value = “byUrl”, blockHandler = “handleException”)
public Re