UU跑腿基于Higress的云原生网关实践
王德冲
发布时间 2023-03-30
UU跑腿介绍
UU跑腿隶属于郑州时空隧道信息技术有限公司,是更专业的同城即时生活服务平台,以共享劳动力与时间为众包理念,人人都可注册成为跑腿师傅,并为附近的人提供帮取送、帮买、全能帮、帮排队等多样化同城即时服务,为中小企业、电商、本地商户提供安全专业的高端配送服务。UU跑腿秉承“让生活更美好”的理念,不断创新、不断进步,为用户提供更加优质的服务体验。
背景需求
UU跑腿对于云原生网关的要求是,能同时满足流量网关,微服务网关,以及安全网关的场景诉求,用一个网关来解决之前需要部署多个网关才能解决的问题:
- 具备高可靠性和高性能,可以替代之前部署的 Nginx Ingress 流量网关
- 同时支持 K8s 生态和传统微服务生态接入,支持(HTTP转Dubbo)协议转换,可以替代之前部署的 Spring Cloud Gateway 微服务网关
- 能够支持在网关入口处完成鉴权,避免每个后端服务重复实现鉴权功能,实现安全网关的能力
- 具备易用的控制台进行 API 的治理,以及具备丰富的可观测指标
迁移 Higress 前的架构
之前存在的主要痛点:
- Spring Cloud Gateway 自身参数调整改动需要重新部署影响流量,且动态路由需要进行复杂的配置,包括路由规则,容易出现配置错误导致系统异常
- 运维需要同时维护 Nginx Ingress 和 Spring Cloud Gateway,面对流量高峰进行进行扩容相关操作时,运维负担比较重,而且这样两层网关的请求的链路较长,可用性低、成本高
迁移 Higress 后的架构
Higress云原生网关实现负载均衡、路由、安全认证等功能。通过网关对外提供服务统一入口,并对请求进行鉴权、限流和监控等操作,用简单的架构保证了整体系统的稳定性和可靠性。
- 合并流量网关(K8s Nginx Ingress)和微服务网关(Spring Cloud Gateway ),降低网关成本,高性能服务;
- 同时支持 K8s service 和 Nacos 服务注册发现,满足技术需求对 K8s 生态和传统微服务生态接入。
- Nginx Ingress 完美迁移到 Higress,十分丝滑