Spring Cloud Gateway
Spring Cloud Gateway 是 Spring 开发的网关,提供了路由功能。
概念
- Route(路线):Gateway 的基础组成块,由 ID、目标 URI、一系列断言和一系列过滤器组成。断言返回 true 代表路线被匹配。
- Predicate(断言):Java 8 的 Predicate,输入是
ServerWebExchange
。用于匹配 HTTP 请求,例如请求参数、请求头等。 - Filter(过滤器):
GatewayFilter
实例。用于修改请求和响应。
工作原理
路由配置
- yml配置
spring:
cloud:
gateway:
routes:
- id: order
uri: http://127.0.0.1:8010
predicates:
- Path=/order/**
- 代码配置
@Bean
public RouteLocator customRouteLocator(RouteLocatorBuilder builder) {
return builder.routes()
.route("pay", r -> r.path("/pay/**")
.uri("http://127.0.0.1:8020")
)
.build();
}