Spring Cloud Gateway使用
阅读原文时间:2021年11月25日阅读:1

简介

Spring Cloud Gateway是Spring Cloud官方推出的网关框架,网关作为流量入口,在微服务系统中有着十分重要的作用,常用功能包括:鉴权、路由转发、熔断、限流等。

Spring Cloud Gateway是通过Spring WebFlux的HandlerMapping做为底层支持来匹配到转发路由,使用时不要引入SpringMVC,否则初始化时会出错;Spring Cloud Gateway内置了很多Predicates工厂,这些 Predicates 工厂通过不同的 HTTP 请求参数来匹配,多个 Predicates 工厂可以组合使用。

使用

1、添加依赖

org.springframework.cloud spring-cloud-starter-gateway

2、配置(结合Eureka使用)

server:
port:
spring:
cloud:
gateway:
discovery:
locator:
enabled: true
lower-case-service-id: true #设置serviceId小写,默认大写
routes:
- id: user-server
uri: lb://user-server #lb表示从注册中心获取服务
predicates:
- Path=/userapi/** # 如果请求地址满足/userapi/**,则转发到user-server服务
filters:
- StripPrefix=1 # 去除原请求地址中的userapi
eureka:
client:
serviceUrl:
defaultZone: http://localhost:8088/eureka/

3、集成Hystrix

依赖

org.springframework.cloud spring-cloud-starter-netflix-hystrix

配置

filters:

  • name: Hystrix
    args:
    name : default
    fallbackUri: 'forward:/dfallback'
    hystrix:
    command:
    default:
    execution:
    isolation:
    thread:
    timeoutInMilliseconds:

java端

@RestController
public class DHystrixController {
@RequestMapping("/dfallback")
public Map dfallback(){
System.out.println("降级了。。。");
Map map = new HashMap();
map.put("rCode","-1");
map.put("rMsg","出错了");
return map;
}
}