1.下载Sentinel.jar可以图形界面配置限流和降级规则 地址:可能需要翻墙 下载jar文件 2.引入maven依赖

com.alibaba.cloud

spring-cloud-alibaba-sentinel-gateway

2.2.2.RELEASE

com.alibaba.cloud

spring-cloud-starter-alibaba-sentinel

2.2.2.RELEASE

com.alibaba.csp

sentinel-spring-cloud-gateway-adapter

1.8.0

3.写个自动注入Resource的过滤器类(可以不写注解直接使用)

@Configuration

public class GatewayConfiguration {

private final List viewResolvers;

private final ServerCodecConfigurer serverCodecConfigurer;

public GatewayConfiguration(ObjectProvider> viewResolversProvider,

ServerCodecConfigurer serverCodecConfigurer) {

this.viewResolvers = viewResolversProvider.getIfAvailable(Collections::emptyList);

this.serverCodecConfigurer = serverCodecConfigurer;

}

@Bean

@Order(Ordered.HIGHEST_PRECEDENCE)

public SentinelGatewayBlockExceptionHandler sentinelGatewayBlockExceptionHandler() {

// Register the block exception handler for Spring Cloud Gateway.

return new SentinelGatewayBlockExceptionHandler(viewResolvers, serverCodecConfigurer);

}

@Bean

@Order(Ordered.HIGHEST_PRECEDENCE)

public GlobalFilter sentinelGatewayFilter() {

return new SentinelGatewayFilter();

}

}

4.写配置文件 application.properties

# 服务端口

server.port=80

# 服务名

spring.application.name=service-gateway

#服务熔断

spring.cloud.sentinel.transport.dashboard=localhost:18080

# nacos服务地址

spring.cloud.nacos.discovery.server-addr=192.168.56.1:8848

spring.main.allow-bean-definition-overriding=true

spring.profiles.active=dev

#使用服务发现路由

spring.cloud.gateway.discovery.locator.enabled=true

#设置路由id

spring.cloud.gateway.routes[0].id=service-cmn

#设置路由的uri

spring.cloud.gateway.routes[0].uri=lb://service-cmn

#设置路由断言,代理servicerId为auth-service的/auth/路径

spring.cloud.gateway.routes[0].predicates= Path=/*/cmn/**

5.cmd命令行启动jar文件访问localhost:18080页面,自己设置QPS java -jar -server.port=18080 sentinel-dashboard.jar --------不在微服务中使用,在普通springboot也可以使用-------- 1.maven依赖

org.springframework.boot

spring-boot-starter-web

com.alibaba.cloud

spring-cloud-starter-alibaba-sentinel

org.projectlombok

lombok

true

org.springframework.boot

spring-boot-starter-test

test

2.service中写

@Service

public class UserService {

//不可以用在类上

@SentinelResource(value = "sayHello",fallback = "sayHellofail")

public String sayHello(){

return "Hello,World";

}

public String sayHellofail(){ //限流的方法

return "I'am sorry";

}

}

3.controller

@RestController

public class UserController {

@Autowired

UserService userService;

@RequestMapping("/hello")

public String hello(){

return userService.sayHello();

}

}

3.sentinel控制台查看

//快速访问

相关链接

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: