本文介绍如何将服务从Spring Cloud Gateway迁移到云原生 API 网关。
步骤1:明确服务来源
如果您当前的服务来源为以下几种,可以直接迁移 SCG 配置。
K8S 服务(使用 TKE 或 EKS)。
注册中心服务(使用 TSE 或自建的 Nacos/Consul/Polaris)。
未依赖任何服务发现机制,使用域名/固定 IP/IP列表。
如果您当前的服务来源为其他类型的注册中心,可以先执行相应的迁移操作将服务注册到 Nacos/Consul/Polaris,再进行 SCG 配置迁移。
步骤2:迁移 Spring Cloud Gateway 配置
SCG 相关功能配置可以在控制台进行相应操作完成:
1. 注册中心/K8S 集群
2. 服务配置
3. 路由配置
4. 常用的 Predicate 配置
Host/Method/Path Route Predicate:云原生 API 网关支持根据Host,Method或Path进行路由匹配,可在创建路由时设置匹配条件。
Header/Cookie/Query Route Predicate:云原生 API 网关支持根据上述参数进行路由,可通过灰度规则实现,可参考以下文档进行配置:灰度发布。
5. 默认Filter
Spring Cloud Gateway的 filter 对应云原生 API 网关的配置如下:
GatewayFilter | 对应的云原生API网关能力 | 相关文档 |
AddRequestHeader, RemoveRequestHeader, AddRequestParameter, AddResponseHeader, SetResponseHeader | 使用 tse-proxy-rewrite 插件 | |
Hystrix, RequestRateLimiter | 限流能力 | |
PrefixPath | 默认根据前缀匹配方式进行路由匹配 | - |
PreserveHostHeader, StripPath, Retry | 创建路由时支持保持 Host、StripPath 选项、支持设置重试次数 | |
SetPath, RewritePath | 使用 Request Transformer/Response Transformer 插件 | - |
6. 自定义Filter
6.1 认证鉴权
云原生 API 网关支持主流认证鉴权方式,可参考以下文档进行配置。
IP访问控制
6.2 自定义Filter
步骤3:配置网关监控告警
云原生 API 网关支持查看监控告警,您可以配置相关监控信息掌握当前网关状况,请参考以下文档使用监控告警。
查看默认监控
步骤4:流量迁移
在完成上述准备过程后,可按照灰度方式逐步进行流量切换,最终完成流量迁移。
第一阶段:选取部分非核心业务场景配置服务和路由,修改访问地址,进行小规模验证。
第二阶段:逐步扩展至核心业务,对核心业务进行配置变更,并迁移部分核心场景流量。
第三阶段:待充分验证后,切换域名解析进行全量迁移。