
Spring Cloud Gateway 2023.0.x 系统性知识体系总结
一、整体概述与版本特性
1.1 网关在微服务架构中的核心作用
- 统一入口:所有客户端请求都经过网关,对外隐藏微服务内部架构
- 路由转发:根据请求特征将请求分发到对应的微服务实例
- 横切关注点处理:统一处理认证授权、跨域、日志、监控、限流熔断等通用功能
- 服务治理:结合注册中心实现服务动态发现与上下线无感切换
1.2 Spring Cloud Gateway 技术优势(对比Zuul)
- 非阻塞IO模型:基于Spring WebFlux和Netty实现,性能比Zuul提升50%以上,支持高并发场景
- 灵活的设计模式:基于路由、断言、过滤器的核心设计,扩展性极强
- 原生Spring生态集成:与Spring Boot、Spring Cloud Config、Nacos等无缝对接
- 丰富的内置功能:提供大量内置断言和过滤器,满足绝大多数业务需求
1.3 Spring Cloud 2023.0.x(Leyton)版本新特性
- Gateway Server MVC:新增Servlet/Spring MVC兼容的同步网关实现,适用于需要保证请求顺序性的场景(如订单处理、金融交易)
- AOT支持:Gateway Server MVC支持AOT编译,提升启动速度和内存占用
- TokenRelay过滤器增强:支持在TokenRelay过滤器中指定clientRegistrationId,可同时使用多个授权服务器
- Actuator增强:网关Actuator端点的发现功能得到增强
- 基于Spring Boot 3.2.x:要求Java 17及以上版本,使用Jakarta EE 9+规范
二、核心原理与架构
2.1 核心架构图
2.2 核心组件关系
Spring Cloud Gateway的核心抽象围绕三个概念展开:路由(Route)、断言(Predicate)、过滤器(Filter)
| 组件 | 作用 | 输入 | 输出 |
|---|---|---|---|
| Route | 网关的基本构建块,定义请求转发规则 | 无(配置对象) | 匹配成功则转发到目标URI |
| Predicate | 路由匹配条件,判断请求是否符合该路由 | ServerWebExchange(包含完整HTTP请求信息) | boolean(true表示匹配成功) |
| Filter | 请求和响应的处理逻辑,可在转发前后执行 | ServerWebExchange | 处理后的ServerWebExchange |
2.3 完整工作流程
- 客户端发送请求到Spring Cloud Gateway服务器
- HttpWebHandlerAdapter提取HTTP请求信息,组装成ServerWebExchange对象
- DispatcherHandler将请求分发到RoutePredicateHandlerMapping
- RoutePredicateHandlerMapping遍历所有路由,使用断言集合匹配请求
- 找到第一个匹配成功的路由后,构建对应的过滤器链
- Gateway Web Handler执行过滤器链的Pre阶段逻辑(按优先级从高到低)
- 发送代理请求到下游微服务
- 下游服务处理请求并返回响应
- 执行过滤器链的Post阶段逻辑(按优先级从低到高,与Pre阶段顺序相反)
- 将处理后的响应返回给客户端
2.4 关键技术基础
- 响应式编程模型:基于Reactor框架,所有操作都是非阻塞的
- Netty服务器:默认使用高性能的Netty作为网络服务器
- ServerWebExchange:封装了HTTP请求和响应,以及网关上下文信息
- WebFlux:Spring 5引入的响应式Web框架,替代传统的Spring MVC
三、路由(Route)详解
3.1 路由的组成要素
一个完整的路由由以下几个部分组成:
- id:路由的唯一标识符,用于配置和管理
- uri:请求转发的目标地址,支持两种格式:
- 固定URL:
http://example.com:8080 - 服务发现模式:
lb://service-name(lb表示使用负载均衡)
- 固定URL:
- predicates:断言集合,用于匹配HTTP请求
- filters:过滤器集合,用于处理请求和响应
- order:路由优先级,数值越小优先级越高
- metadata:可选的自定义键值对数据
3.2 路由配置方式
3.2.1 配置文件方式(application.yml)
spring:
cloud:
gateway:
routes:
- id: user-service-route
uri: lb://user-service
predicates:
- Path=/api/users/**
- Method=GET,POST
filters:
- StripPrefix=1
- AddRequestHeader=X-Gateway-Source, spring-cloud-gateway
3.2.2 Java代码方式(RouteLocatorBuilder)
@Configuration
public class GatewayConfig {
@Bean
public RouteLocator customRouteLocator(RouteLocatorBuilder builder) {
return builder.routes()
.route("user-service-route", r -> r
.path("/api/users/**")
.and()
.method(HttpMethod.GET, HttpMethod.POST)
.filters(f -> f
.stripPrefix(1)
.addRequestHeader("X-Gateway-Source", "spring-cloud-gateway"))
.uri("lb://user-service"))
.build();
}
}
3.3 动态路由
Spring Cloud Gateway支持动态路由配置,无需重启网关即可更新路由规则。实现方式:
- 实现
RouteDefinitionLocator接口,从配置中心(如Nacos、Apollo)获取路由定义 - 使用Spring Cloud Gateway提供的Actuator端点(
/actuator/gateway/routes)进行动态管理 - 结合Spring Cloud Config实现配置的集中管理和动态刷新
四、断言(Predicate)详解
4.1 断言的本质
断言是Java 8中Predicate<ServerWebExchange>接口的实现,用于判断请求是否符合某个条件。多个断言可以通过逻辑运算符(and、or、negate)组合使用。
4.2 内置断言工厂
Spring Cloud Gateway提供了丰富的内置断言工厂,覆盖了HTTP请求的各个方面:
| 断言工厂 | 作用 | 示例 |
|---|---|---|
| Path | 匹配请求路径 | - Path=/api/**,/admin/** |
| Method | 匹配HTTP方法 | - Method=GET,POST |
| Header | 匹配请求头 | - Header=X-Request-Id, \d+ |
| Query | 匹配请求参数 | - Query=name, john.* |
| Cookie | 匹配Cookie | - Cookie=sessionId, abc123 |
| RemoteAddr | 匹配客户端IP地址 | - RemoteAddr=192.168.1.1/24 |
| Host | 匹配请求Host头 | - Host=**.example.com |
| Between | 匹配时间范围 | - Between=2024-01-01T00:00:00+08:00,2024-12-31T23:59:59+08:00 |
| Before | 匹配指定时间之前 | - Before=2024-06-01T00:00:00+08:00 |
| After | 匹配指定时间之后 | - After=2024-01-01T00:00:00+08:00 |
| Weight | 按权重路由 | - Weight=group1, 80 |
4.3 自定义断言
如果内置断言无法满足需求,可以通过实现RoutePredicateFactory接口来自定义断言:
@Component
public class CustomRoutePredicateFactory extends AbstractRoutePredicateFactory<CustomRoutePredicateFactory.Config> {
public CustomRoutePredicateFactory() {
super(Config.class);
}
@Override
public Predicate<ServerWebExchange> apply(Config config) {
return exchange -> {
// 自定义匹配逻辑
String headerValue = exchange.getRequest().getHeaders().getFirst(config.getHeaderName());
return headerValue != null && headerValue.contains(config.getContainsValue());
};
}
public static class Config {
private String headerName;
private String containsValue;
// getter和setter
}
}
五、过滤器(Filter)详解
5.1 过滤器的分类
Spring Cloud Gateway的过滤器分为两大类:
| 过滤器类型 | 作用范围 | 实现方式 | 示例 |
|---|---|---|---|
| GatewayFilter | 单个路由 | 实现GatewayFilter接口或使用GatewayFilterFactory | AddRequestHeader、StripPrefix |
| GlobalFilter | 所有路由 | 实现GlobalFilter接口 | LoadBalancerClientFilter、NettyRoutingFilter |
5.2 过滤器的执行顺序
- 所有过滤器都实现了
Ordered接口,通过getOrder()方法返回优先级 - Pre阶段:按order值从小到大执行(值越小优先级越高)
- Post阶段:按order值从大到小执行(与Pre阶段顺序相反)
- 全局过滤器和路由过滤器会合并成一个过滤器链执行
5.3 常用内置过滤器
5.3.1 请求处理过滤器
- AddRequestHeader:添加请求头
- RemoveRequestHeader:移除请求头
- AddRequestParameter:添加请求参数
- RemoveRequestParameter:移除请求参数
- SetPath:设置请求路径
- RewritePath:重写请求路径
- StripPrefix:去除路径前缀
- PrefixPath:添加路径前缀
5.3.2 响应处理过滤器
- AddResponseHeader:添加响应头
- RemoveResponseHeader:移除响应头
- SetStatus:设置响应状态码
- RedirectTo:重定向请求
5.3.3 高级功能过滤器
- Retry:请求重试
- CircuitBreaker:熔断保护
- RequestRateLimiter:请求限流
- CacheRequestBody:缓存请求体(Spring Cloud Gateway 4.0+)
- LocalCacheResponseBody:缓存响应体(Spring Cloud Gateway 4.0+)
- TokenRelay:令牌中继,用于OAuth2认证
5.4 自定义过滤器
5.4.1 自定义GatewayFilter
@Component
public class CustomGatewayFilterFactory extends AbstractGatewayFilterFactory<CustomGatewayFilterFactory.Config> {
public CustomGatewayFilterFactory() {
super(Config.class);
}
@Override
public GatewayFilter apply(Config config) {
return (exchange, chain) -> {
// Pre阶段逻辑
ServerHttpRequest request = exchange.getRequest().mutate()
.header("X-Custom-Header", config.getHeaderValue())
.build();
return chain.filter(exchange.mutate().request(request).build())
.then(Mono.fromRunnable(() -> {
// Post阶段逻辑
ServerHttpResponse response = exchange.getResponse();
response.getHeaders().add("X-Custom-Response-Header", "Processed");
}));
};
}
public static class Config {
private String headerValue;
// getter和setter
}
}
5.4.2 自定义GlobalFilter
@Component
@Order(-1) // 设置优先级
public class CustomGlobalFilter implements GlobalFilter {
@Override
public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {
// Pre阶段逻辑:记录请求开始时间
exchange.getAttributes().put("startTime", System.currentTimeMillis());
return chain.filter(exchange)
.then(Mono.fromRunnable(() -> {
// Post阶段逻辑:计算请求处理时间
Long startTime = exchange.getAttribute("startTime");
if (startTime != null) {
long duration = System.currentTimeMillis() - startTime;
System.out.println("请求处理时间:" + duration + "ms");
}
}));
}
}
六、限流(Rate Limiting)详解
6.1 限流的核心概念
限流是网关的核心功能之一,用于保护下游微服务免受突发流量的冲击。Spring Cloud Gateway提供了基于Redis的令牌桶算法实现。
6.2 官方RequestRateLimiter过滤器
6.2.1 核心参数
- replenishRate:令牌桶填充速率(每秒生成多少个令牌)
- burstCapacity:令牌桶最大容量(允许的最大突发流量)
- keyResolver:限流键解析器,用于确定限流的维度(如用户ID、IP地址、请求路径等)
6.2.2 配置示例
spring:
redis:
host: localhost
port: 6379
database: 0
cloud:
gateway:
routes:
- id: user-service-route
uri: lb://user-service
predicates:
- Path=/api/users/**
filters:
- StripPrefix=1
- name: RequestRateLimiter
args:
redis-rate-limiter.replenishRate: 10 # 每秒生成10个令牌
redis-rate-limiter.burstCapacity: 20 # 令牌桶最大容量20
keyResolver: '#{@ipKeyResolver}' # 使用IP地址作为限流键
6.2.3 自定义KeyResolver
@Configuration
public class RateLimiterConfig {
@Bean
public KeyResolver ipKeyResolver() {
return exchange -> Mono.just(
exchange.getRequest().getRemoteAddress().getAddress().getHostAddress()
);
}
@Bean
public KeyResolver userKeyResolver() {
return exchange -> Mono.just(
exchange.getRequest().getHeaders().getFirst("X-User-Id")
);
}
}
6.3 集成Sentinel实现更强大的限流
Spring Cloud Gateway可以与Alibaba Sentinel集成,提供更丰富的限流功能:
- 支持QPS限流、线程数限流
- 支持基于调用关系的限流
- 支持热点参数限流
- 支持系统自适应限流
- 支持熔断降级功能
- 提供可视化的控制台进行规则管理
6.3.1 Sentinel集成配置
spring:
cloud:
sentinel:
transport:
dashboard: localhost:8080
datasource:
flow-rules:
nacos:
server-addr: localhost:8848
data-id: gateway-sentinel-flow-rules
group-id: SENTINEL_GROUP
rule-type: flow
gateway:
enabled: true
fallback:
mode: response
response-body: '{"code":429,"msg":"请求过于频繁,请稍后再试"}'
response-status: 429
七、高级特性与最佳实践
7.1 跨域配置
spring:
cloud:
gateway:
globalcors:
cors-configurations:
'[/**]':
allowedOrigins: "https://example.com"
allowedMethods:
- GET
- POST
- PUT
- DELETE
allowedHeaders: "*"
allowCredentials: true
maxAge: 3600
7.2 负载均衡
Spring Cloud Gateway默认集成了Spring Cloud LoadBalancer,当使用lb://service-name格式的URI时,会自动启用负载均衡功能。支持多种负载均衡策略:
- 轮询策略(默认)
- 随机策略
- 权重策略
- 一致性哈希策略
7.3 熔断降级
Spring Cloud Gateway集成了CircuitBreaker组件,支持多种熔断实现:
- Resilience4j(推荐)
- Spring Retry
- Hystrix(已过时)
7.4 监控与可观测性
- Actuator端点:提供
/actuator/gateway/routes、/actuator/gateway/globalfilters等端点用于监控网关状态 - Micrometer集成:自动收集网关的性能指标
- 分布式追踪:支持Zipkin、Jaeger等分布式追踪系统
- 日志:配置详细的请求和响应日志,便于问题排查
7.5 生产环境最佳实践
- 集群部署:网关作为系统入口,必须部署多个实例保证高可用
- 合理设置超时时间:避免因下游服务响应慢导致网关阻塞
- 配置合理的限流策略:根据下游服务的处理能力设置限流阈值
- 启用熔断降级:防止单个服务故障影响整个系统
- 完善的监控告警:实时监控网关的性能指标和异常情况
- 定期更新依赖:及时修复安全漏洞和性能问题
Spring Cloud Gateway 2023.0.x 面试高频问答卡片
(按知识模块分类,标注高频考点和2023.0.x专属考点)
一、整体概述与版本特性
卡片1:微服务网关的核心作用是什么?
答案:
- 统一入口:所有客户端请求都经过网关,对外隐藏微服务内部架构
- 路由转发:根据请求特征将请求分发到对应的微服务实例
- 横切关注点处理:统一处理认证授权、跨域、日志、监控、限流熔断等通用功能
- 服务治理:结合注册中心实现服务动态发现与上下线无感切换
卡片2:Spring Cloud Gateway相比Zuul有哪些技术优势?
答案:
- 非阻塞IO模型:基于Spring WebFlux和Netty实现,性能比Zuul提升50%以上,支持高并发场景
- 灵活的设计模式:基于路由、断言、过滤器的核心设计,扩展性极强
- 原生Spring生态集成:与Spring Boot、Spring Cloud Config、Nacos等无缝对接
- 丰富的内置功能:提供大量内置断言和过滤器,满足绝大多数业务需求
卡片3:2023.0.x专属 Spring Cloud 2023.0.x(Leyton)版本有哪些重要新特性?
答案:
- Gateway Server MVC:新增Servlet/Spring MVC兼容的同步网关实现,适用于需要保证请求顺序性的场景(如订单处理、金融交易)
- AOT支持:Gateway Server MVC支持AOT编译,显著提升启动速度和降低内存占用
- TokenRelay过滤器增强:支持在TokenRelay过滤器中指定clientRegistrationId,可同时使用多个授权服务器
- Actuator增强:网关Actuator端点的发现功能得到全面增强
- 基础依赖升级:基于Spring Boot 3.2.x,要求Java 17及以上版本,使用Jakarta EE 9+规范
二、核心原理与架构
卡片4:高频考点 Spring Cloud Gateway的三大核心组件是什么?各自的作用是什么?
答案:
| 组件 | 核心作用 |
|---|---|
| Route(路由) | 网关的基本构建块,定义请求转发规则,包含id、uri、断言集合、过滤器集合等 |
| Predicate(断言) | 路由匹配条件,判断请求是否符合该路由,输入为ServerWebExchange,输出为boolean |
| Filter(过滤器) | 请求和响应的处理逻辑,可在转发前后执行,用于实现横切关注点功能 |
卡片5:高频考点 简述Spring Cloud Gateway的完整工作流程
答案:
- 客户端发送请求到Spring Cloud Gateway服务器
- HttpWebHandlerAdapter提取HTTP请求信息,组装成ServerWebExchange对象
- DispatcherHandler将请求分发到RoutePredicateHandlerMapping
- RoutePredicateHandlerMapping遍历所有路由,使用断言集合匹配请求
- 找到第一个匹配成功的路由后,构建对应的过滤器链
- Gateway Web Handler执行过滤器链的Pre阶段逻辑(按优先级从高到低)
- 发送代理请求到下游微服务
- 下游服务处理请求并返回响应
- 执行过滤器链的Post阶段逻辑(按优先级从低到高,与Pre阶段顺序相反)
- 将处理后的响应返回给客户端
卡片6:Spring Cloud Gateway的关键技术基础有哪些?
答案:
- 响应式编程模型:基于Reactor框架,全链路非阻塞
- Netty服务器:默认使用高性能的Netty作为网络通信层
- ServerWebExchange:封装了HTTP请求、响应和网关上下文信息
- Spring WebFlux:Spring 5引入的响应式Web框架,替代传统的Spring MVC
三、路由(Route)详解
卡片7:一个完整的路由由哪些组成要素?
答案:
- id:路由的唯一标识符,用于配置和管理
- uri:请求转发的目标地址,支持两种格式:
- 固定URL:
http://example.com:8080 - 服务发现模式:
lb://service-name(lb表示使用负载均衡)
- 固定URL:
- predicates:断言集合,用于匹配HTTP请求
- filters:过滤器集合,用于处理请求和响应
- order:路由优先级,数值越小优先级越高
- metadata:可选的自定义键值对数据
卡片8:Spring Cloud Gateway有哪两种主要的路由配置方式?
答案:
- 配置文件方式(application.yml):通过YAML配置文件定义路由规则,简单直观,适合静态路由
- Java代码方式(RouteLocatorBuilder):通过编写Java代码创建RouteLocator Bean,灵活性更高,适合复杂路由逻辑
卡片9:高频考点 如何实现Spring Cloud Gateway的动态路由?
答案:
- 实现
RouteDefinitionLocator接口,从配置中心(如Nacos、Apollo)获取路由定义 - 使用Spring Cloud Gateway提供的Actuator端点(
/actuator/gateway/routes)进行动态管理 - 结合Spring Cloud Config实现配置的集中管理和动态刷新
四、断言(Predicate)详解
卡片10:断言的本质是什么?
答案:
断言是Java 8中Predicate<ServerWebExchange>接口的实现,用于判断请求是否符合某个条件。多个断言可以通过逻辑运算符(and、or、negate)组合使用。
卡片11:列举至少5种Spring Cloud Gateway的内置断言工厂及其作用
答案:
- Path:匹配请求路径
- Method:匹配HTTP方法
- Header:匹配请求头
- Query:匹配请求参数
- Cookie:匹配Cookie
- RemoteAddr:匹配客户端IP地址
- Host:匹配请求Host头
- Between/Before/After:匹配时间范围
- Weight:按权重路由
卡片12:如何自定义Spring Cloud Gateway的断言?
答案:
通过实现RoutePredicateFactory接口来自定义断言,步骤如下:
- 创建一个类继承
AbstractRoutePredicateFactory<Config> - 定义配置类Config,用于接收断言参数
- 重写
apply方法,实现自定义的匹配逻辑 - 将自定义断言工厂注册为Spring Bean
五、过滤器(Filter)详解
卡片13:高频考点 Spring Cloud Gateway的过滤器分为哪两类?有什么区别?
答案:
| 过滤器类型 | 作用范围 | 实现方式 | 示例 |
|---|---|---|---|
| GatewayFilter | 单个路由生效 | 实现GatewayFilter接口或使用GatewayFilterFactory | AddRequestHeader、StripPrefix |
| GlobalFilter | 所有路由生效 | 实现GlobalFilter接口 | LoadBalancerClientFilter、NettyRoutingFilter |
卡片14:高频考点 Spring Cloud Gateway过滤器的执行顺序是怎样的?
答案:
- 所有过滤器都实现了
Ordered接口,通过getOrder()方法返回优先级 - Pre阶段:按order值从小到大执行(值越小优先级越高)
- Post阶段:按order值从大到小执行(与Pre阶段顺序相反)
- 全局过滤器和路由过滤器会合并成一个过滤器链执行
卡片15:列举至少5种常用的内置过滤器及其作用
答案:
- StripPrefix:去除路径前缀
- AddRequestHeader:添加请求头
- RewritePath:重写请求路径
- AddResponseHeader:添加响应头
- SetStatus:设置响应状态码
- Retry:请求重试
- CircuitBreaker:熔断保护
- RequestRateLimiter:请求限流
- TokenRelay:令牌中继,用于OAuth2认证
卡片16:如何自定义Spring Cloud Gateway的过滤器?
答案:
有两种自定义过滤器的方式:
- 自定义GatewayFilter:
- 继承
AbstractGatewayFilterFactory<Config> - 定义配置类Config
- 重写
apply方法,实现Pre和Post阶段逻辑 - 注册为Spring Bean
- 继承
- 自定义GlobalFilter:
- 实现
GlobalFilter和Ordered接口 - 重写
filter方法,实现全局处理逻辑 - 注册为Spring Bean
- 实现
六、限流(Rate Limiting)详解
卡片17:高频考点 Spring Cloud Gateway官方提供的限流过滤器是什么?基于什么算法实现?
答案:
官方提供的限流过滤器是RequestRateLimiter,基于Redis的令牌桶算法实现。
卡片18:RequestRateLimiter过滤器的核心参数有哪些?各自的含义是什么?
答案:
- replenishRate:令牌桶填充速率(每秒生成多少个令牌)
- burstCapacity:令牌桶最大容量(允许的最大突发流量)
- keyResolver:限流键解析器,用于确定限流的维度(如用户ID、IP地址、请求路径等)
卡片19:如何自定义限流的维度?
答案:
通过实现KeyResolver接口来自定义限流维度,示例:
@Bean
public KeyResolver ipKeyResolver() {
return exchange -> Mono.just(
exchange.getRequest().getRemoteAddress().getAddress().getHostAddress()
);
}
常见的限流维度:IP地址、用户ID、请求路径、接口名称等。
卡片20:Spring Cloud Gateway集成Sentinel相比官方限流有哪些优势?
答案:
- 支持QPS限流、线程数限流
- 支持基于调用关系的限流
- 支持热点参数限流
- 支持系统自适应限流
- 支持熔断降级功能
- 提供可视化的控制台进行规则管理
- 支持规则持久化到Nacos、Apollo等配置中心
七、高级特性与最佳实践
卡片21:如何在Spring Cloud Gateway中配置全局跨域?
答案:
通过spring.cloud.gateway.globalcors配置项实现全局跨域:
spring:
cloud:
gateway:
globalcors:
cors-configurations:
'[/**]':
allowedOrigins: "https://example.com"
allowedMethods: [GET, POST, PUT, DELETE]
allowedHeaders: "*"
allowCredentials: true
maxAge: 3600
卡片22:Spring Cloud Gateway的负载均衡是如何实现的?支持哪些策略?
答案:
Spring Cloud Gateway默认集成了Spring Cloud LoadBalancer,当使用lb://service-name格式的URI时,会自动启用负载均衡功能。
支持的负载均衡策略:
- 轮询策略(默认)
- 随机策略
- 权重策略
- 一致性哈希策略
卡片23:高频考点 Spring Cloud Gateway支持哪些熔断实现?推荐使用哪一个?
答案:
支持的熔断实现:
- Resilience4j(推荐):轻量级、功能强大,是Spring Cloud官方推荐的熔断组件
- Spring Retry:简单的重试机制
- Hystrix:已过时,不推荐使用
卡片24:Spring Cloud Gateway的监控与可观测性如何实现?
答案:
- Actuator端点:提供
/actuator/gateway/routes、/actuator/gateway/globalfilters等端点用于监控网关状态 - Micrometer集成:自动收集网关的性能指标
- 分布式追踪:支持Zipkin、Jaeger等分布式追踪系统
- 日志:配置详细的请求和响应日志,便于问题排查
卡片25:高频考点 Spring Cloud Gateway生产环境有哪些最佳实践?
答案:
- 集群部署:网关作为系统入口,必须部署多个实例保证高可用
- 合理设置超时时间:避免因下游服务响应慢导致网关阻塞
- 配置分级限流策略:根据下游服务的处理能力设置不同的限流阈值
- 启用熔断降级:防止单个服务故障影响整个系统
- 完善的监控告警:实时监控网关的性能指标和异常情况
- 定期更新依赖:及时修复安全漏洞和性能问题
- 启用HTTPS:保证数据传输安全
- 配置合理的缓存策略:减少下游服务的压力