Spring Cloud入门-Sentinel实现服务限流、熔断与降级(Hoxton版本)

下载完成后在命令行输入如下命令运行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:

配置Nacos地址

server-addr: http://localhost:8848

sentinel:

transport:

配置Sentinel dashborad地址

dashboard: http://localhost:8080

port: 8719

service-url:

user-service: http://nacos-user-service

management:

endpoints:

web:

exposure:

include: ‘*’

限流功能


Sentinel Starter 默认为所有的 HTTP 服务提供了限流埋点,我们也可以通过使用@SentinelResource来自定义一些限流行为。

创建RateLimitController类

用于测试熔断和限流功能。

@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

你可能感兴趣的:(spring,cloud,sentinel,spring)