Spring cloud Gateway常用配置
Spring Cloud Gateway是Spring Cloud的一个全新项目,该项目是基于Spring 5.0,Spring Boot 2.0和Project Reactor等技术构建的API网关,它旨在提供一种简单有效的方式来转发请求。
以下是Spring Cloud Gateway的一些常用配置:
- 路由配置
路由配置是Gateway最基础的配置,通过配置路由,我们可以决定请求如何从Gateway路由到后端服务。
spring:
cloud:
gateway:
routes:
- id: after_route
uri: https://example.org
predicates:
- Path=/foo/**
在这个例子中,我们定义了一个路由,其中id为after\_route,这个路由会把匹配/foo/**的请求路由到https://example.org。
- 过滤器配置
过滤器配置可以帮助我们在发送请求到下游服务之前或者之后修改请求或者响应。
spring:
cloud:
gateway:
routes:
- id: add_response_header_route
uri: https://example.org
filters:
- AddResponseHeader=X-Response-Foo, Bar
在这个例子中,我们定义了一个过滤器,其中id为add\_response\_header\_route,这个过滤器会在请求发送后给响应添加一个名为X-Response-Foo,值为Bar的header。
- 全局过滤器配置
全局过滤器可以在所有的路由中使用。
@Configuration
public class GatewayConfig {
@Bean
public GlobalFilter customGlobalFilter() {
return (exchange, chain) -> {
System.out.println("Do something in pre filter");
return chain.filter(exchange).then(Mono.fromRunnable(() -> {
System.out.println("Do something in post filter");
}));
};
}
}
在这个例子中,我们定义了一个全局过滤器,它会在所有的路由中被使用。
- 限流配置
限流配置可以帮助我们控制请求的流量。
spring:
cloud:
gateway:
routes:
- id: request_rate_route
uri: https://example.org
filters:
- name: RequestRateLimiter
args:
redis-rate-limiter.replenishRate: 1
redis-rate-limiter.burstCapacity: 2
在这个例子中,我们定义了一个限流过滤器,其中id为request\_rate\_route,这个过滤器会限制请求的流量,设置的限流策略是每秒钟1个请求,最多可以缓冲2个请求。
以上就是Spring Cloud Gateway的一些常用配置,具体使用时需要根据实际需求进行调整。
评论已关闭