1. 基础入门篇:快速构建你的第一个 Higress 网关
1.1 初识 Higress:云原生时代的下一代网关
1.1.1 Higress 的诞生背景与核心定位
Higress 是由阿里巴巴开源的一款新一代云原生 API 网关,其诞生源于阿里巴巴内部对高性能、高可用网关的迫切需求。在传统的微服务架构中,流量网关、微服务网关和安全网关通常是分离的,这种架构不仅增加了部署和运维的复杂性,也带来了性能瓶颈和扩展性限制。为了解决这些问题,阿里巴巴基于其在双十一等大促活动中积累的丰富经验,以及对云原生技术的深刻理解,推出了 Higress。Higress 的核心定位是 「四合一」网关,即将流量网关、微服务网关、安全网关和 AI 网关的能力融为一体,旨在为企业提供一个统一、高效、安全的流量入口解决方案 。它不仅仅是一个简单的网关,更是一个集成了流量治理、服务发现、安全防护、协议转换和插件扩展等多种功能的综合性平台,旨在简化云原生应用的部署和运维,降低企业的技术门槛和成本。
Higress 的设计初衷是为了解决传统网关在面对现代应用架构时的诸多痛点。例如,传统的 Nginx 或基于 OpenResty 的网关在配置变更时需要 reload,这会导致长连接中断,对 WebSocket、gRPC 等需要保持长连接的业务造成严重影响 。此外,传统网关在 gRPC 和 Dubbo 等协议的负载均衡能力上也存在不足。Higress 通过采用 Envoy 作为数据平面,并利用 Istio 的控制平面能力,从根本上解决了这些问题。Envoy 的热更新机制使得配置变更可以无损生效,避免了连接中断的问题。同时,Envoy 原生支持多种协议,并提供了强大的负载均衡能力,能够更好地满足现代微服务架构的需求。因此,Higress 的核心定位不仅是替代传统的网关产品,更是为了推动企业向云原生架构的平滑演进,提供一个功能强大、易于扩展、性能卓越的统一网关解决方案 。
1.1.2 核心优势:基于 Istio 与 Envoy 的高性能架构
Higress 的核心优势在于其先进的架构设计,它基于业界广泛认可的云原生技术栈——Istio 和 Envoy 构建。Envoy 作为数据平面,是一个高性能的 C++ 代理,负责处理所有进出流量。它采用了事件驱动的架构,能够充分利用现代多核 CPU 的性能,提供极高的吞吐量和低延迟。与传统的基于 Nginx 的网关相比,Envoy 在处理复杂的路由规则、协议转换和流量治理方面具有显著的性能优势。Istio 作为控制平面,负责管理和配置 Envoy 代理,提供服务发现、流量管理、安全策略和可观测性等核心功能。通过将控制平面与数据平面解耦,Higress 实现了配置的集中管理和动态下发,使得网关的运维更加简单高效。
这种架构带来的另一个重要优势是强大的扩展性。Higress 支持通过 WebAssembly (Wasm) 和原生 Go 语言开发插件,这使得开发者可以根据自己的业务需求,灵活地扩展网关的功能。Wasm 插件具有语言无关、沙箱隔离、热加载等优点,可以安全地在网关运行时动态加载和卸载,而无需重启网关。Go 插件则可以利用 Go 语言的高性能和丰富的生态系统,实现更复杂的业务逻辑。这种插件机制极大地增强了 Higress 的灵活性和可定制性,使其能够适应各种复杂的业务场景。例如,企业可以开发自定义的认证鉴权插件、流量染色插件、协议转换插件等,以满足特定的安全和业务需求。这种基于标准、开放和可扩展的架构,使得 Higress 不仅是一个功能强大的网关产品,更是一个充满活力的技术生态,能够持续演进并满足未来不断变化的需求 。
1.1.3 主要功能概览:流量治理、安全防护与插件扩展
Higress 提供了丰富的功能,涵盖了流量治理、安全防护和插件扩展等多个方面,旨在为企业提供一个全面的 API 网关解决方案。在流量治理方面,Higress 支持基于路径、主机名、请求头等多种条件的路由规则,可以实现精细化的流量控制。它还提供了多种负载均衡算法,如轮询、随机、最少连接等,并支持会话保持和熔断降级等高级功能,能够有效保障后端服务的稳定性和高可用性。此外,Higress 还支持服务发现,可以与 Nacos、Consul、Zookeeper 等多种注册中心集成,实现服务的自动发现和动态路由 。
在安全防护方面,Higress 提供了多层次的安全策略。它支持 SSL/TLS 终止和双向认证,保障数据传输的安全。同时,Higress 还集成了 WAF(Web 应用防火墙)功能,可以有效防御 SQL 注入、XSS 跨站脚本等常见的 Web 攻击。此外,Higress 还支持多种认证鉴权机制,如 JWT、OAuth2.0、HMAC 等,可以对 API 的访问进行严格的权限控制,防止未授权访问。通过这些安全功能,Higress 能够为企业构建一个坚固的安全防线,保护后端服务免受各种网络攻击和安全威胁 。
插件扩展是 Higress 的一大特色。它提供了强大的插件机制,允许开发者使用 Wasm 或 Go 语言开发自定义插件,以扩展网关的功能。Higress 官方和社区已经提供了数十个现成的通用插件,涵盖了流量监控、认证鉴权、协议转换、缓存加速等多个方面。例如,企业可以使用 Key Rate Limit 插件对 API 的访问频率进行限制,防止恶意刷接口;使用 AI 缓存插件对大模型的响应结果进行缓存,降低调用成本;使用数据脱敏插件对敏感信息进行处理,保障数据安全。这种开放的插件机制使得 Higress 具有极高的灵活性和可定制性,能够满足企业各种个性化的需求 。
1.1.4 适用场景:微服务、AI 应用与混合云架构
Higress 凭借其强大的功能和灵活的架构,适用于多种复杂的业务场景。在微服务架构中,Higress 可以作为统一的流量入口,实现服务的路由、负载均衡、熔断降级等功能,简化微服务之间的通信和治理。它可以与 Nacos、Dubbo、Spring Cloud 等主流的微服务框架深度集成,提供一站式的微服务网关解决方案。例如,企业可以将部署在 Kubernetes 集群内外的微服务都注册到 Nacos 中,然后通过 Higress 进行统一的路由和管理,实现业务的平滑迁移和渐进式演进 。
在AI 应用场景中,Higress 也展现出了巨大的潜力。随着大语言模型(LLM)的兴起,企业需要管理和调用多个不同的 AI 模型,这带来了巨大的复杂性和成本压力。Higress 可以作为 AI 网关,提供统一的模型接入、认证授权、流量控制、成本优化和可观测性等功能。它支持对接国内外主流的 LLM 提供商,并提供多模型负载均衡、Token 流控、AI 缓存等 AI 场景特有的功能,帮助企业更高效、更安全地使用 AI 服务。例如,携程旅游就利用 Higress 构建了 AI 网关,实现了对大模型服务的统一管理和治理 。
在混合云和多云架构中,Higress 同样能够发挥重要作用。企业可以将 Higress 部署在不同的云环境或数据中心,通过统一的管理控制台进行集中管理,实现跨云的流量调度和负载均衡。这不仅可以提高业务的容灾能力和可用性,还可以帮助企业优化资源成本,避免被单一云厂商锁定。例如,美洽科技就利用 Higress 实现了多云环境下的统一网关技术架构,提升了系统的灵活性和可靠性 。总之,无论是微服务、AI 应用还是混合云架构,Higress 都能够提供一个强大、灵活、可靠的解决方案,帮助企业应对现代应用架构带来的各种挑战。
1.2 在 Kubernetes 环境中部署 Higress Gateway
1.2.1 环境准备与依赖检查
在 Kubernetes 环境中部署 Higress 之前,需要确保环境满足一定的要求。首先,你需要一个可用的 Kubernetes 集群,版本建议在 1.20 以上。你可以使用 Minikube、Kind、K3s 等工具在本地搭建一个测试集群,也可以使用云厂商提供的托管 Kubernetes 服务,如阿里云的 ACK、腾讯云的 TKE 等。其次,你需要安装并配置好 kubectl
命令行工具,并确保它能够连接到你的 Kubernetes 集群。kubectl
是管理 Kubernetes 集群的主要工具,用于部署应用、查看资源状态等。
除了 Kubernetes 集群和 kubectl
,你还需要安装 Helm。Helm 是 Kubernetes 的包管理器,类似于 Linux 中的 apt 或 yum。它可以帮助你更方便地安装、升级和管理复杂的 Kubernetes 应用。Higress 提供了官方的 Helm Chart,通过 Helm 可以一键完成 Higress 的安装和部署。你可以从 Helm 的官方网站下载并安装最新版本的 Helm 客户端。安装完成后,可以通过 helm version
命令来验证 Helm 是否安装成功。确保这些依赖工具都已正确安装和配置,是顺利部署 Higress 的前提。在部署前,建议先检查集群的资源情况,确保有足够的 CPU 和内存资源来运行 Higress 的各个组件。
1.2.2 使用 Helm 快速安装 Higress
使用 Helm 安装 Higress 是一个非常简单和快速的过程。首先,你需要添加 Higress 的官方 Helm 仓库。打开终端,执行以下命令:
helm repo add higress.io https://higress.io/helm-charts
这条命令会将 Higress 的 Helm 仓库添加到你的本地 Helm 配置中。添加完成后,建议执行 helm repo update
命令来更新仓库的索引,确保你能够获取到最新版本的 Higress Chart。
接下来,你就可以使用 helm install
命令来安装 Higress 了。以下是一个基本的安装命令示例:
helm install higress -n higress-system higress.io/higress --create-namespace
这条命令的含义是,使用名为 higress.io/higress
的 Chart 来安装一个名为 higress
的 release,并将其部署到 higress-system
这个命名空间中。--create-namespace
参数表示如果 higress-system
命名空间不存在,则会自动创建。安装过程可能需要几分钟时间,Helm 会自动下载 Chart 并根据默认的配置值在 Kubernetes 集群中创建相应的资源,包括 Deployment、Service、ConfigMap 等。
如果你想在本地 PC 环境(如使用 kind 或 k3s)进行测试,可以使用以下命令进行安装,它会进行一些本地化的配置:
helm install higress -n higress-system higress.io/higress --create-namespace --render-subchart-notes --set global.local=true --set higress-console.o11y.enabled=false --set higress-console.domain=console.higress.io --set higress-console.admin.password.value=admin
这个命令通过 --set
参数覆盖了一些默认的配置值,例如 global.local=true
表示在本地环境运行,higress-console.admin.password.value=admin
则设置了控制台的初始管理员密码 。
1.2.3 验证部署:检查 Pod 状态与服务暴露
安装完成后,需要验证 Higress 是否已经成功部署。首先,可以检查 higress-system
命名空间下的 Pod 状态。执行以下命令:
kubectl get pods -n higress-system
如果一切正常,你应该会看到类似以下的输出,所有 Pod 的状态都应该是 Running
:
NAME READY STATUS RESTARTS AGE
higress-console-7b9f8f6c5-x9k2z 1/1 Running 0 2m
higress-controller-6d4f8f7c5-d4f5g 1/1 Running 0 2m
higress-gateway-7f8b9f8c5-p7q3r 1/1 Running 0 2m
higress-gateway
是数据平面的核心组件,负责流量的转发;higress-controller
是控制平面的核心组件,负责配置的管理和下发;higress-console
则提供了可视化的管理界面。
接下来,你需要访问 Higress 的控制台来确认服务是否正常运行。默认情况下,Higress 的网关服务会通过 LoadBalancer 类型的 Service 暴露出来。如果你在云厂商的托管 Kubernetes 环境中,通常会自动分配一个公网 IP。如果你在本地环境,可以使用 kubectl port-forward
命令将服务端口映射到本地:
kubectl port-forward -n higress-system service/higress-console 8080:80
然后,你就可以通过浏览器访问 http://localhost:8080
来打开 Higress 的控制台了。使用安装时设置的用户名和密码(默认为 admin/admin)登录,如果能够成功登录并看到控制台界面,就说明 Higress 已经成功部署并可以正常使用了。
1.2.4 常见问题与故障排查
在部署 Higress 的过程中,可能会遇到一些常见的问题。例如,Pod 无法启动或一直处于 Pending
状态。这通常是由于集群资源不足,或者镜像拉取失败导致的。你可以通过 kubectl describe pod <pod-name> -n higress-system
命令来查看 Pod 的详细事件信息,从而定位问题。如果是资源不足,可以尝试增加集群的节点或调整 Pod 的资源请求和限制。如果是镜像拉取失败,可以检查网络连接,或者配置镜像加速器。
另一个常见的问题是服务无法访问。这可能是由于 Service 的类型配置不正确,或者防火墙规则限制了访问。你可以通过 kubectl get svc -n higress-system
命令来查看服务的类型和端口信息。如果服务类型是 ClusterIP
,那么它只能在集群内部访问。如果你想从外部访问,需要将服务类型修改为 NodePort
或 LoadBalancer
。此外,还需要检查集群的安全组或防火墙规则,确保允许访问相应的端口。
如果在访问控制台时遇到问题,例如页面无法打开或登录失败,可以检查 higress-console
Pod 的日志。使用 kubectl logs <higress-console-pod-name> -n higress-system
命令来查看日志信息,可能会发现一些有用的错误提示。例如,可能是数据库连接失败,或者配置文件有误。通过仔细分析日志,通常可以找到问题的根源并加以解决。Higress 社区也提供了丰富的文档和活跃的钉钉群,遇到问题时可以查阅文档或在社区中寻求帮助 。
1.3 通过 Docker Compose 安装 Higress(无需 K8s)
1.3.1 获取 Higress Docker 镜像
对于没有 Kubernetes 环境的用户,或者希望在本地快速体验 Higress 的用户,可以使用 Docker Compose 进行安装。首先,你需要确保你的机器上已经安装了 Docker 和 Docker Compose。然后,你需要获取 Higress 的 Docker 镜像。Higress 提供了一个 all-in-one
的镜像,包含了网关运行所需的所有组件,非常方便。
你可以使用 docker pull
命令来拉取最新的 Higress 镜像:
docker pull higress-registry.cn-hangzhou.cr.aliyuncs.com/higress/all-in-one:latest
这条命令会从阿里云的容器镜像服务中拉取最新的 Higress all-in-one
镜像。拉取过程可能需要一些时间,取决于你的网络速度。拉取完成后,你可以使用 docker images
命令来查看本地的镜像列表,确认镜像是否已经成功下载。
1.3.2 编写 docker-compose.yml 配置文件
接下来,你需要创建一个 docker-compose.yml
文件来定义 Higress 的服务。这个文件描述了如何启动 Higress 容器,包括端口映射、卷挂载等配置。以下是一个基本的 docker-compose.yml
文件示例:
version: '3.8'
services:
higress:
image: higress-registry.cn-hangzhou.cr.aliyuncs.com/higress/all-in-one:latest
container_name: higress-ai
ports:
- "8001:8001"
- "8080:8080"
- "8443:8443"
volumes:
- ./data:/data
restart: always
在这个配置文件中,我们定义了一个名为 higress
的服务。image
指定了要使用的 Docker 镜像。container_name
设置了容器的名称。ports
部分定义了端口映射,将容器内部的端口映射到宿主机的端口。8001
是 Higress 控制台的端口,8080
是 HTTP 网关的端口,8443
是 HTTPS 网关的端口。volumes
部分将宿主机的 ./data
目录挂载到容器的 /data
目录,用于持久化存储 Higress 的配置和数据。restart: always
表示如果容器意外停止,会自动重启。
1.3.3 启动容器与端口映射详解
配置文件编写完成后,就可以使用 docker-compose up
命令来启动 Higress 容器了。在 docker-compose.yml
文件所在的目录下,执行以下命令:
docker-compose up -d
-d
参数表示在后台以守护进程的方式运行容器。启动后,你可以使用 docker-compose ps
命令来查看容器的状态。如果一切正常,你应该会看到 higress-ai
容器的状态是 Up
。
端口映射是 Docker Compose 中的一个重要概念。通过端口映射,你可以将容器内部的服务暴露给宿主机或外部网络。在我们的配置中,我们将容器的 8001
端口映射到了宿主机的 8001
端口。这意味着,当你在宿主机上访问 http://localhost:8001
时,请求会被转发到容器内部的 Higress 控制台服务。同样,8080
和 8443
端口分别映射了 HTTP 和 HTTPS 网关服务。你需要确保这些端口在宿主机上没有被其他服务占用,否则容器会启动失败。
1.3.4 访问 Higress UI 控制台与初始化配置
容器启动成功后,你就可以通过浏览器访问 Higress 的控制台了。打开浏览器,输入 http://localhost:8001
,你应该会看到 Higress 的登录页面。首次登录时,你需要使用初始的用户名和密码。这些凭据通常会在容器的启动日志中打印出来。你可以使用 docker logs higress-ai
命令来查看容器的日志,找到初始的用户名和密码。
登录成功后,你就可以开始使用 Higress 的控制台进行各种配置了。例如,你可以添加服务来源,配置域名和路由规则,设置安全策略等。由于我们之前配置了卷挂载,Higress 的配置和数据会被持久化到宿主机的 ./data
目录中。这意味着,即使你停止并删除容器,你的配置也不会丢失。下次启动容器时,Higress 会自动加载之前的配置。这种方式非常适合在本地进行开发和测试,可以快速搭建一个功能完整的 Higress 环境,而无需复杂的 Kubernetes 集群。
2. 核心功能篇:深入探索 Higress 的强大能力
2.1 深入理解 Higress 的功能组件
2.1.1 控制平面(Control Plane)与数据平面(Data Plane)架构
Higress 的架构遵循了云原生网关的经典设计模式,即控制平面(Control Plane)和数据平面(Data Plane)的分离。这种架构的核心思想是将流量的处理逻辑(数据平面)与配置的管理和下发逻辑(控制平面)解耦,从而实现更高的灵活性、可扩展性和可维护性。数据平面由一组 Envoy 代理组成,它们是实际处理网络流量的组件。Envoy 代理被部署为 Higress 网关的实例,负责接收、处理和转发来自客户端的请求。Envoy 以其高性能、丰富的特性和可扩展性而闻名,支持多种协议(如 HTTP/1.1, HTTP/2, gRPC, TCP),并提供了强大的流量治理能力,如负载均衡、熔断、限流、重试等。
控制平面则负责管理和配置所有的 Envoy 代理。它由 Higress Controller 和 Higress Console 等组件构成。Higress Controller 是控制平面的核心,它监听 Kubernetes 中的资源对象(如 Ingress, Gateway API, Higress 的 CRD 等)的变化,并将这些配置转换为 Envoy 能够理解的格式(即 xDS 协议),然后通过 gRPC 流式地将配置推送给数据平面的 Envoy 代理。Higress Console 则提供了一个可视化的 Web 界面,让用户可以方便地管理和监控网关的配置和状态。这种控制平面与数据平面分离的架构,使得 Higress 能够实现配置的热更新,即在不重启网关实例的情况下,动态地更新路由规则、安全策略等配置,从而保证了业务的连续性和高可用性。
2.1.2 Higress Controller 的核心作用与工作机制
Higress Controller 是 Higress 控制平面的「大脑」,其核心作用是作为 Kubernetes 资源与 Envoy 代理之间的桥梁。它通过监听 Kubernetes API Server 中的资源变化,来动态地管理和配置数据平面的 Envoy 代理。具体来说,Higress Controller 会监听多种 Kubernetes 资源,包括标准的 Ingress 资源、新兴的 Gateway API 资源,以及 Higress 自定义的 CRD(Custom Resource Definition),如 McpBridge, Http2Rpc 等。当用户通过 kubectl
命令或 Higress Console 创建、更新或删除这些资源时,Kubernetes API Server 会产生相应的事件。
Higress Controller 通过 Informer 机制,实时地获取这些事件,并将其转换为内部的数据模型。然后,它会根据这些数据模型,生成符合 xDS(Discovery Service)协议的配置信息。xDS 是 Envoy 的数据平面 API,用于动态地发现和配置 Envoy 代理的各种行为,如监听器(Listener)、路由(Route)、集群(Cluster)和端点(Endpoint)。最后,Higress Controller 通过 gRPC 流式连接,将这些 xDS 配置推送给数据平面的所有 Envoy 代理。Envoy 代理接收到新的配置后,会立即生效,而无需重启。这种基于事件驱动的、声明式的配置管理机制,是 Higress 实现配置热更新和高可用性的关键。它使得网关的配置管理变得非常简单和可靠,用户只需要声明期望的状态,Higress Controller 就会自动将实际状态调整为期望状态。
2.1.3 Gateway 组件的流量处理与 Envoy 代理
Higress Gateway 是 Higress 数据平面的核心组件,它实际上是一个或多个 Envoy 代理的实例。这些 Envoy 代理负责处理所有进出网关的流量。当一个请求到达 Higress Gateway 时,Envoy 代理会根据其内部的配置(由 Higress Controller 下发)来决定如何处理这个请求。首先,Envoy 会根据请求的协议(如 HTTP/HTTPS)和端口,匹配到相应的监听器(Listener) 。监听器是 Envoy 接收流量的入口点。
然后,Envoy 会根据监听器中的路由配置(Route Configuration) 来决定将请求转发到哪个后端服务。路由配置可以基于请求的路径、主机名、请求头等多种条件进行匹配。例如,你可以配置一个路由规则,将所有路径为 /api/v1/users
的请求转发到 user-service
服务。匹配到路由后,Envoy 会根据路由中定义的集群(Cluster) 信息,将请求转发到对应的后端服务。集群定义了一组逻辑上相同的后端服务实例,以及访问这些实例的负载均衡策略。Envoy 支持多种负载均衡算法,如轮询、加权轮询、最少请求等。最后,Envoy 会根据集群中的端点(Endpoint) 信息,选择一个具体的后端服务实例,并将请求转发过去。在整个过程中,Envoy 还可以执行各种过滤器(Filter)链,如认证鉴权、限流、熔断、日志记录等,以实现丰富的流量治理和安全功能。
2.1.4 配置管理机制:路由、服务发现与证书管理
Higress 提供了一套灵活而强大的配置管理机制,涵盖了路由、服务发现和证书管理等多个方面。在路由管理方面,Higress 支持多种方式来定义路由规则。最常用的是通过 Kubernetes 的 Ingress 资源。你可以创建一个 Ingress 资源,指定域名、路径和后端服务,Higress Controller 会自动将其转换为 Envoy 的路由配置。此外,Higress 还支持新兴的 Gateway API,它提供了比 Ingress 更强大、更灵活的路由功能。对于更复杂的路由需求,Higress 还提供了自定义的 CRD,如 Http2Rpc,可以实现 HTTP 到 Dubbo 等 RPC 协议的转换。
在服务发现方面,Higress 可以与多种服务注册中心集成,实现服务的自动发现和动态路由。除了 Kubernetes 原生的服务发现机制外,Higress 还支持 Nacos、Consul、Zookeeper、Eureka 等主流的注册中心 。这意味着,无论你的后端服务是部署在 Kubernetes 集群内,还是部署在传统的虚拟机或物理机上,只要它们注册到了相应的服务注册中心,Higress 都能够自动发现它们,并将其作为路由的后端服务。这种多服务发现的支持,使得 Higress 能够很好地适应混合部署的场景,帮助企业平滑地向云原生架构演进。
在证书管理方面,Higress 提供了便捷的 HTTPS 支持。你可以通过创建 Kubernetes 的 Secret 资源来存储 TLS 证书和私钥,然后在 Ingress 或 Gateway API 中引用这个 Secret,即可为指定的域名启用 HTTPS。Higress 还支持自动签发和续期 Let’s Encrypt 证书,进一步简化了证书管理的复杂性。通过这些配置管理机制,Higress 为用户提供了一个统一、灵活且易于使用的网关配置平台。
2.2 Higress 网关的配置与管理实践
2.2.1 使用 UI 控制台进行可视化配置
Higress 提供了一个功能强大且用户友好的 UI 控制台,极大地降低了网关的配置和管理门槛。通过控制台,用户无需编写复杂的 YAML 文件,即可通过可视化的界面完成大部分日常操作。登录控制台后,用户可以在「服务来源」页面添加和管理后端服务,支持多种来源类型,如 Kubernetes 服务、Nacos 注册中心、固定 IP 地址等。在「路由管理」页面,用户可以创建和编辑路由规则,通过简单的表单填写,即可定义基于域名、路径、请求头等多种条件的匹配规则,并指定目标服务。
此外,控制台还提供了丰富的插件管理功能。用户可以在「插件市场」中浏览和搜索官方及社区提供的各种插件,如认证鉴权、流量控制、安全防护等。通过一键启用和简单的参数配置,即可将插件应用到指定的路由或全局。例如,要为某个 API 启用 JWT 认证,只需在插件市场中找到 JWT Auth 插件,点击启用,并配置好密钥和声明等信息即可。控制台还集成了监控和日志功能,用户可以实时查看网关的流量、延迟、错误率等关键指标,并检索访问日志,方便进行问题排查和性能分析。这种可视化的管理方式,使得无论是开发人员还是运维人员,都能快速上手,高效地管理 Higress 网关。
2.2.2 通过命令行与 API 进行管理
除了 UI 控制台,Higress 还支持通过 命令行工具(CLI)和 RESTful API 进行管理,这为自动化和集成提供了便利。Higress 提供了 higress
命令行工具,用户可以通过它来执行各种管理操作,如创建路由、配置插件、查看状态等。例如,可以使用 higress route create
命令来创建一个新的路由,使用 higress plugin enable
命令来启用一个插件。CLI 工具非常适合在脚本中使用,可以实现网关配置的自动化部署和管理。
同时,Higress 的所有管理功能都通过 RESTful API 暴露出来。这意味着用户可以通过任何支持 HTTP 的编程语言或工具来调用这些 API,实现对网关的远程管理。例如,可以在 CI/CD 流水线中,通过调用 Higress 的 API 来自动更新路由配置,实现应用的灰度发布。API 的调用方式非常标准,通常需要进行身份验证(如使用 API Key 或 JWT Token),然后通过发送 HTTP 请求(如 GET, POST, PUT, DELETE)到指定的端点来完成操作。通过命令行和 API,Higress 为用户提供了灵活多样的管理方式,既可以满足手动操作的需求,也可以支持高度自动化的运维场景。
2.2.3 路由规则配置:基于路径、主机名的路由
路由是网关最核心的功能之一,Higress 提供了灵活且强大的路由规则配置能力。用户可以通过多种方式来定义路由,其中最常用的是通过 Kubernetes Ingress 资源。一个典型的 Ingress 资源配置如下:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: example-ingress
namespace: default
spec:
ingressClassName: higress
rules:
- host: example.com
http:
paths:
- path: /api
pathType: Prefix
backend:
service:
name: my-backend-service
port:
number: 80
在这个例子中,我们定义了一个路由规则,将所有发往 example.com
域名且路径以 /api
开头的请求,转发到名为 my-backend-service
的后端服务的 80 端口。ingressClassName: higress
指定了使用 Higress 作为 Ingress 控制器。
除了基于路径和主机名的路由,Higress 还支持更复杂的匹配条件。例如,可以通过 Higress 的 CRD(Custom Resource Definition) 来定义基于请求头、Cookie、查询参数等的路由规则。此外,Higress 还支持 Gateway API,这是一个比 Ingress 更现代、更强大的 Kubernetes 网关 API,提供了更丰富的路由功能和更清晰的资源模型。通过 Gateway API,用户可以定义更复杂的路由策略,如流量拆分、请求重写、响应修改等。这些灵活的路由配置能力,使得 Higress 能够轻松应对各种复杂的流量调度需求。
2.2.4 负载均衡策略与健康检查配置
为了确保后端服务的高可用性和高性能,Higress 提供了多种负载均衡策略和健康检查机制。在负载均衡方面,Higress 支持多种算法,包括:
- 轮询(Round Robin) :默认的负载均衡算法,将请求依次分发到后端服务的各个实例。
- 加权轮询(Weighted Round Robin) :根据每个实例的权重来分发请求,权重越高的实例接收到的请求越多。这可以用于实现基于实例性能的流量分配。
- 最少连接(Least Connections) :将请求分发到当前连接数最少的实例,适用于处理长连接请求的场景。
- 一致性哈希(Consistent Hashing) :根据请求的某个属性(如 IP 地址、Cookie 等)进行哈希计算,将请求分发到固定的实例。这可以用于实现会话保持。
用户可以通过在 DestinationRule 资源中配置 loadBalancer
字段来指定负载均衡策略。例如:
apiVersion: networking.istio.io/v1beta1
kind: DestinationRule
metadata:
name: my-backend-service
spec:
host: my-backend-service
trafficPolicy:
loadBalancer:
simple: LEAST_CONN
在健康检查方面,Higress 支持对后端服务实例进行主动和被动的健康检查。主动健康检查是指 Higress 会定期向后端实例发送探测请求,如果实例连续多次响应失败,则会被标记为不健康,并从负载均衡池中移除。被动健康检查是指 Higress 会根据实际的请求响应情况来判断实例的健康状态,如果某个实例连续返回 5xx 错误,也会被标记为不健康。通过健康检查机制,Higress 可以自动剔除故障实例,避免将流量发送到不可用的服务上,从而提高了整个系统的可用性。
2.2.5 配置的导入导出、备份与热更新
为了方便配置的迁移、备份和恢复,Higress 提供了配置的导入导出功能。用户可以在 Higress 控制台中,将当前网关的所有配置(包括路由、服务、插件、证书等)导出为一个 JSON 或 YAML 文件。这个文件可以作为配置的备份,也可以用于在其他环境中快速复现相同的配置。同样,用户也可以将之前导出的配置文件导入到 Higress 中,实现配置的快速恢复或迁移。
热更新是 Higress 的一个核心特性,它指的是在不重启网关实例的情况下,动态地加载和应用新的配置。当用户通过控制台、CLI 或 API 修改了路由规则、插件配置等,Higress Controller 会立即将变更后的配置推送给数据平面的 Envoy 代理。Envoy 代理接收到新配置后,会将其加载到内存中,并立即生效,整个过程对正在处理的流量没有任何影响。这种热更新能力,使得 Higress 能够实现零停机部署和配置变更,保证了业务的连续性。这对于需要保持长连接的业务(如 WebSocket、AI 对话)尤为重要,可以避免因配置变更导致的连接中断和用户体验下降。
2.3 Higress 网关高可用架构设计与部署实践
2.3.1 高可用架构设计原则
在设计 Higress 网关的高可用架构时,需要遵循以下几个核心原则:
- 消除单点故障(SPOF) :确保网关的任何一个组件(如控制平面、数据平面)都不是单点。这意味着需要部署多个实例,并实现故障的自动检测和转移。
- 冗余部署:在多个可用区(Availability Zone)或节点上部署 Higress 实例,以防止因单个可用区或节点故障导致整个网关服务不可用。
- 负载均衡:在网关实例前端部署负载均衡器(如云服务提供的 SLB 或 NLB),将流量均匀地分发到多个网关实例上,避免单个实例过载。
- 健康检查与自动恢复:配置完善的健康检查机制,及时发现不健康的实例,并将其从服务列表中移除。同时,利用 Kubernetes 等平台的自愈能力,自动重启或重建故障的实例。
- 数据持久化与备份:对于网关的配置数据,需要进行持久化存储,并定期备份,以防止数据丢失导致配置无法恢复。
通过遵循这些原则,可以构建一个稳定、可靠、能够抵御各种故障的 Higress 高可用架构。
2.3.2 多实例部署与流量负载均衡
实现 Higress 高可用的基础是多实例部署。在 Kubernetes 环境中,可以通过将 Higress Gateway 的 Deployment 的副本数(replicas)设置为大于 1 的值,来启动多个网关实例。例如,可以设置 replicas: 3
,这样集群中就会运行 3 个 Higress Gateway Pod。为了确保这些 Pod 分布在不同的节点上,可以使用 Pod 反亲和性(Pod Anti-Affinity) 规则,强制要求同一个 Deployment 的 Pod 不能被调度到同一个节点上。
在多个网关实例部署好之后,需要在前端部署一个负载均衡器来分发流量。在云厂商的 Kubernetes 环境中,通常可以使用 LoadBalancer 类型的 Service。当创建一个 LoadBalancer 类型的 Service 时,云厂商会自动创建一个外部的负载均衡器,并将其与 Service 关联起来。这个负载均衡器会有一个公网 IP 地址,所有发往这个 IP 的流量都会被负载均衡器分发到后端的 Higress Gateway Pod 上。在本地或非云环境中,可以使用 NodePort 类型的 Service,或者部署一个独立的负载均衡器(如 HAProxy、Nginx)来实现流量的分发。通过多实例部署和负载均衡,可以有效地提高网关的处理能力和可用性。
2.3.3 利用 Kubernetes 特性实现故障转移
Kubernetes 本身就提供了强大的故障转移能力,可以充分利用这些特性来保障 Higress 的高可用。首先,Deployment 控制器会确保指定数量的 Pod 副本始终处于运行状态。如果某个 Higress Gateway Pod 因为节点故障或程序崩溃而停止,Deployment 控制器会自动在其他健康的节点上创建一个新的 Pod 来替代它,从而保证服务的连续性。
其次,Service 和 Endpoints 机制也参与了故障转移。Kubernetes 的 Service 对象会维护一个后端 Pod 的 IP 地址列表(即 Endpoints)。当 Higress Gateway Pod 的状态变为不健康时(例如,其 readiness probe 失败),Kubernetes 会自动将其 IP 地址从 Endpoints 列表中移除。这样,前端的负载均衡器就不会再向这个不健康的 Pod 转发流量,直到它恢复健康。这个过程是自动的,无需人工干预。通过结合 Deployment 的自愈能力和 Service 的动态端点管理,Kubernetes 为 Higress 提供了一个健壮的故障转移机制。
2.3.4 高可用架构的监控与维护
构建高可用架构只是第一步,持续的监控与维护同样重要。需要对 Higress 网关的各项关键指标进行全面的监控,包括:
- 业务指标:QPS、请求延迟(P50, P90, P99)、错误率(4xx, 5xx)等。
- 资源指标:CPU 使用率、内存使用量、网络带宽、连接数等。
- 健康状态:Pod 状态、节点状态、负载均衡器后端健康状态等。
通过 Prometheus 和 Grafana 等工具,可以建立完善的监控体系,并设置合理的告警阈值。当指标异常时,能够及时收到告警通知,并进行处理。此外,还需要定期进行维护操作,如:
- 版本升级:及时将 Higress 升级到最新版本,以获取新功能和安全修复。
- 配置审计:定期审查网关的配置,确保其符合安全和性能最佳实践。
- 容量规划:根据业务增长趋势,提前规划网关的容量,避免因流量增长导致性能瓶颈。
- 演练:定期进行故障演练(如模拟节点宕机、网络中断),验证高可用架构的有效性,并提升团队的应急响应能力。
通过持续的监控和维护,可以确保 Higress 高可用架构的长期稳定运行。
2.4 插件与扩展机制解析 —— Hacker 的最爱
2.4.1 插件机制概述:基于 Wasm 与 Go 的扩展
Higress 的插件机制是其最具吸引力的特性之一,它为开发者提供了强大的扩展能力,使得网关可以灵活地适应各种复杂的业务需求。Higress 主要支持两种插件开发方式:WebAssembly (Wasm) 和原生 Go 语言。
WebAssembly (Wasm) 是一种可移植、体积小、加载快的二进制指令格式。Higress 利用 Envoy 内置的 Wasm 运行时,允许开发者使用多种语言(如 Go, Rust, C++, AssemblyScript 等)编写插件。Wasm 插件具有以下优点:
- 语言无关:开发者可以选择自己熟悉的语言进行开发。
- 沙箱隔离:插件运行在独立的沙箱环境中,与网关核心进程隔离,保证了安全性和稳定性。即使插件崩溃,也不会影响网关的正常运行。
- 热加载:插件可以动态地加载和卸载,无需重启网关,实现了对流量的无损扩展。
原生 Go 语言插件则利用了 Go 语言的高性能和丰富的生态系统。通过 Go 语言,开发者可以实现更复杂、性能要求更高的插件逻辑。Go 插件与 Higress 的控制平面集成更紧密,可以访问更多的内部 API。
这种灵活的插件机制,使得 Higress 不仅仅是一个网关产品,更是一个可编程的流量处理平台。开发者可以利用插件实现各种自定义功能,如自定义认证鉴权、流量染色、协议转换、数据脱敏、缓存加速等,极大地拓展了网关的应用边界。
2.4.2 插件生命周期管理与加载机制
Higress 对插件的生命周期进行了完善的管理,包括加载、启用、禁用和卸载等阶段。插件的管理主要通过 WasmPlugin 这个自定义资源定义(CRD)来实现。用户可以通过创建一个 WasmPlugin 资源来定义一个插件,并指定其相关的配置。
插件的加载机制如下:
- 定义插件:用户创建一个 WasmPlugin 资源,在其中指定插件的名称、镜像地址(对于 Wasm 插件)、配置参数等信息。
- Controller 监听:Higress Controller 会监听到 WasmPlugin 资源的创建。
- 配置转换:Controller 将 WasmPlugin 的配置转换为 Envoy 能够理解的配置格式,即一个
envoy.filters.http.wasm
或envoy.filters.network.wasm
过滤器。 - 配置下发:Controller 通过 xDS 协议将这个过滤器配置推送给数据平面的 Envoy 代理。
- Envoy 加载:Envoy 代理接收到配置后,会从指定的镜像地址拉取 Wasm 插件的二进制文件,并将其加载到沙箱环境中。
- 插件生效:插件加载成功后,其逻辑就会被插入到 Envoy 的处理链中,开始对流量进行处理。
通过修改 WasmPlugin 资源的 spec
字段,可以实现插件配置的动态更新。通过删除 WasmPlugin 资源,可以实现插件的卸载。整个生命周期管理过程都是自动化的,并且支持热更新,对业务流量无影响。
2.4.3 开发自定义插件:流量监控、认证鉴权、协议转换
利用 Higress 的插件机制,开发者可以轻松实现各种强大的自定义功能。以下是一些常见的插件开发场景:
- 流量监控:可以开发一个插件,在请求处理的各个阶段(如接收请求、转发请求、接收响应、返回响应)记录详细的日志,包括请求头、响应体、处理耗时等。这些数据可以用于性能分析、问题排查和业务监控。
- 认证鉴权:可以实现自定义的认证逻辑,例如对接企业内部的单点登录(SSO)系统、LDAP 目录服务等。插件可以在请求进入网关时,验证用户的身份信息,并根据权限决定是否允许访问。
- 协议转换:可以实现不同协议之间的转换,例如将外部的 HTTP 请求转换为内部的 gRPC 或 Dubbo 调用,或者将 GraphQL 查询转换为多个 REST API 调用。这可以极大地简化前后端的集成。
- 数据脱敏:可以在响应返回给客户端之前,对响应体中的敏感信息(如手机号、身份证号、密码等)进行脱敏处理,保障数据安全。
- 缓存加速:可以实现一个缓存插件,将后端服务的响应结果缓存起来。当有相同的请求再次到来时,可以直接从缓存中返回结果,而无需再次访问后端服务,从而降低延迟,减轻后端压力。
这些只是插件开发的一些示例,实际上,只要能够用代码实现的逻辑,几乎都可以通过插件的方式集成到 Higress 网关中。
2.4.4 插件开发示例与实践
下面以一个简单的 Go 语言开发的 Wasm 插件为例,展示如何实现一个请求头修改的功能。
- 创建项目结构:
my-plugin/ ├── go.mod └── main.go
- 编写
main.go
:package main import ( "github.com/tetratelabs/proxy-wasm-go-sdk/proxywasm" "github.com/tetratelabs/proxy-wasm-go-sdk/proxywasm/types" ) func main() { proxywasm.SetNewHttpContext(newHttpContext) } type httpContext struct { proxywasm.DefaultHttpContext } func newHttpContext(contextID uint32) proxywasm.HttpContext { return &httpContext{} } // 在请求头阶段被调用 func (ctx *httpContext) OnHttpRequestHeaders(numHeaders int, endOfStream bool) types.Action { // 添加一个自定义请求头 proxywasm.AddHttpRequestHeader("x-my-plugin", "hello-from-higress-plugin") return types.ActionContinue }
- 编译为 Wasm:
需要使用 TinyGo 来将 Go 代码编译为 Wasm 二进制文件。tinygo build -o main.wasm -scheduler=none -target=wasi main.go
- 创建 WasmPlugin 资源:
apiVersion: extensions.higress.io/v1 kind: WasmPlugin metadata: name: add-header-plugin namespace: higress-system spec: defaultConfig: message: "hello" url: oci://your-registry.com/my-plugin:latest # 将 main.wasm 打包成 OCI 镜像 pluginConfig: _from_ingress: "true"
- 应用配置:
将上述 YAML 文件应用到 Kubernetes 集群中,Higress 会自动加载这个插件,并在处理请求时,为每个请求添加一个x-my-plugin: hello-from-higress-plugin
的请求头。
这个简单的例子展示了插件开发的基本流程。在实际应用中,可以根据业务需求,开发更复杂的插件逻辑,并与 Higress 的强大功能相结合,构建出满足各种场景需求的定制化网关解决方案。
3. 生产实践篇:企业级应用的最佳实践
3.1 与 Nacos 组合打造强大的微服务网关
3.1.1 Higress 与 Nacos 的集成方式
Higress 与 Nacos 的集成是其作为微服务网关的核心能力之一,两者均源自阿里巴巴中间件团队,拥有天然的协同优势 。这种集成允许 Higress 将 Nacos 作为其服务注册与发现的中心,从而实现对微服务实例的动态感知和流量路由。在配置层面,Higress 通过引入一个名为 McpBridge
的自定义资源定义(CRD)来桥接不同的服务注册中心,包括 Nacos 。这个 CRD 允许用户定义一个或多个注册中心源,并指定其类型、访问地址、端口、命名空间 ID 以及服务分组等关键信息。例如,一个典型的 McpBridge
配置会指定注册中心类型为 nacos2
(支持 gRPC 协议),并提供 Nacos 服务器的 IP 地址和端口,以及需要监听的服务分组和命名空间 。这种设计使得 Higress 能够无缝地接入现有的 Spring Cloud 或 Dubbo 微服务体系,而无需对业务代码进行任何改造,极大地降低了迁移和接入的门槛。
集成过程的核心在于 Higress Controller 会监听 McpBridge
资源的变化,并根据配置与 Nacos 服务器建立连接,实时获取服务实例列表。当服务实例在 Nacos 中发生上线、下线或变更时,Higress Controller 能够立即感知到这些变化,并动态更新 Envoy 代理中的路由配置,确保流量能够被准确地分发到健康的实例上。这种机制不仅保证了服务发现的实时性,也提高了系统的可用性和弹性。此外,Higress 还支持对接多个 Nacos 注册中心,这对于拥有多个环境(如开发、测试、生产)或多个业务域的大型企业尤为重要,可以实现统一的网关入口管理,同时保持不同环境或业务域的服务隔离 。通过这种方式,Higress 与 Nacos 共同构建了一个高效、可靠且易于管理的微服务网关解决方案。
3.1.2 通过 Nacos 实现服务的自动发现与配置同步
通过 Nacos 实现服务的自动发现与配置同步是 Higress 在微服务场景下的关键价值体现。当 Higress 与 Nacos 集成后,网关不再需要手动配置每个微服务的后端地址,而是能够自动从 Nacos 获取最新的服务实例列表。这一过程完全自动化,极大地简化了运维工作,并降低了因手动配置错误导致的服务中断风险。具体实现上,Higress Controller 组件扮演着核心角色,它通过 McpBridge
CRD 与 Nacos 建立长连接,持续监听服务列表的变化 。一旦有新的服务实例注册到 Nacos,或者现有实例发生健康状态变化,Nacos 会主动推送变更事件给 Higress Controller。Controller 接收到事件后,会立即解析并生成相应的 Envoy 配置,然后通过 xDS 协议(如 CDS、EDS)将更新推送到 Higress Gateway(即 Envoy 代理) 。
这种基于事件驱动的配置同步机制,确保了网关路由规则的实时性和准确性。例如,当一个服务进行滚动更新时,旧实例会逐个从 Nacos 中注销,新实例会逐个注册。Higress 能够实时感知到这些变化,平滑地将流量从旧实例切换到新实例,从而实现零停机部署。此外,Higress 还支持基于 Nacos 配置的灰度发布。通过结合 Nginx Ingress 的 Canary 注解,可以实现基于请求头(如 x-user-id
)的流量切分,将特定用户的请求路由到注册在 Nacos 中的灰度服务实例上,从而实现精准的用户体验验证和功能迭代 。这种自动化的服务发现和配置同步能力,使得 Higress 能够完美适应云原生环境下服务动态变化的特性,为构建高可用、高弹性的微服务架构提供了坚实的基础。
3.1.3 解决服务动态变化时的路由更新问题
在云原生和微服务架构中,服务的动态变化(如实例的上线、下线、扩缩容等)是常态,如何在这种动态变化的环境中保证路由的准确性和流量的稳定性,是网关面临的一大挑战。Higress 通过与 Nacos 的深度集成,提供了一套完善的解决方案来应对这一问题。当后端服务的实例发生变化时,Nacos 会实时推送服务变更事件给 Higress 的控制平面。Higress Controller 接收到事件后,会立即从 Nacos 拉取最新的服务实例列表,并更新其内部的服务发现缓存。然后,Controller 会根据最新的服务列表,生成新的 Envoy 配置(包括 Cluster 和 Endpoint 信息),并通过 xDS 协议将配置推送给数据平面的 Envoy 代理。Envoy 代理在接收到新配置后,会进行热加载,平滑地将流量切换到新的服务实例上,整个过程对客户端完全透明,不会造成任何连接中断或请求失败。
为了进一步提高路由更新的效率和可靠性,Higress 还采用了增量更新的机制。当只有部分服务实例发生变化时,Higress 只会推送发生变化的部分配置给 Envoy,而不是全量的配置,这大大减少了网络传输的开销和 Envoy 处理配置的负担,使得路由更新更加迅速。此外,Higress 还支持对服务实例进行健康检查,当某个实例被标记为不健康时,Higress 会自动将其从路由列表中剔除,避免将流量转发到故障节点。当该实例恢复健康后,Higress 又会自动将其加回到路由列表中,实现了故障的自动恢复。这种基于事件驱动和增量更新的路由更新机制,使得 Higress 能够在复杂的微服务环境中,始终保持路由的准确性和流量的高可用性,为业务的稳定运行提供了有力的保障。
3.1.4 Higress + Nacos 在阿里云内部的应用实践
Higress 与 Nacos 的组合并非仅仅是开源社区的技术方案,它更是阿里巴巴内部经过大规模生产环境验证的核心技术。在阿里巴巴,Higress 搭配 Nacos 作为微服务网关,已经成功支撑了多年 「双十一」购物节的极端流量洪峰,其高性能和高稳定性得到了充分的证明 。在阿里巴巴内部的实践中,Higress 负责处理海量的南北向流量,而 Nacos 则作为统一的服务注册与配置中心,管理着数以万计的微服务实例。这种组合不仅提供了强大的流量调度和服务治理能力,还极大地简化了网关的部署和运维复杂度。随着阿里巴巴云原生战略的推进,Higress 和 Nacos 的核心能力被沉淀到阿里云的商业化产品——微服务引擎(MSE) 中,继续为外部企业客户提供服务 。
在 MSE 产品中,Higress 作为云原生网关,与 Nacos 服务注册中心紧密协作,为企业用户提供了开箱即用的微服务解决方案。用户可以在阿里云控制台上轻松地将 Higress 网关实例与 Nacos 实例进行关联,实现服务的自动发现和路由。这种集成不仅保留了 Higress 高性能、高可用的特性,还融入了阿里云在可观测性、安全、弹性伸缩等方面的企业级能力。例如,用户可以通过 MSE 控制台方便地配置基于 Nacos 的灰度发布策略,或者利用阿里云的 Prometheus 和 Grafana 服务对网关流量进行深度监控和分析。可以说,Higress + Nacos 的组合是阿里巴巴多年技术积累和最佳实践的结晶,它不仅是一个技术产品,更是一套经过实战检验的、可靠的微服务网关解决方案,为广大企业在数字化转型过程中构建稳定、高效的微服务架构提供了强有力的支持。
3.2 企业级安全防护与流量控制
3.2.1 统一认证与授权策略
在企业级应用中,对 API 的访问进行严格的认证与授权是保障数据安全和业务合规的基础。Higress 提供了丰富且灵活的认证与授权插件,支持多种主流协议和自定义策略,能够帮助企业构建统一的、集中化的 API 安全网关。其核心优势在于通过插件机制,将认证鉴权逻辑从业务代码中解耦,实现了安全策略的统一管理和热更新。Higress 官方插件库中包含了 Key Auth、JWT Auth、Basic Auth 等多种开箱即用的认证插件 。例如,Key Auth 插件允许网关基于请求头或 URL 参数中的 API Key 进行身份验证,并支持定义多个消费者(consumer)及其对应的权限,从而实现多租户的访问隔离 。
企业可以利用这些插件,在网关层对所有进入的流量进行第一道安全防线。例如,可以配置全局的 JWT 认证,要求所有请求都必须携带有效的 JWT Token,网关会负责验证 Token 的签名、有效期和声明(claims),只有通过验证的请求才会被转发到后端服务。这种方式不仅简化了后端服务的开发,避免了在每个微服务中重复实现认证逻辑,还使得安全策略的变更(如更换签名密钥、调整 Token 有效期)可以在网关层面统一完成,无需修改和重新部署所有后端服务。此外,Higress 还支持基于角色的访问控制(RBAC),可以结合认证插件,对不同用户或应用授予不同的 API 访问权限,实现精细化的授权管理。这种统一、灵活且可扩展的认证授权机制,使得 Higress 成为企业构建零信任网络架构(Zero Trust Architecture)的理想选择。
3.2.2 WAF(Web 应用防火墙)集成与防护
Higress 内置了强大的 Web 应用防火墙(WAF) 能力,能够有效防御各类常见的 Web 攻击,如 SQL 注入、跨站脚本(XSS)、跨站请求伪造(CSRF)等,为企业 API 提供深度的安全防护。与传统的独立 WAF 设备或云服务相比,Higress 的 WAF 功能以插件形式集成在网关中,具有更低的延迟、更高的性能和更灵活的配置能力。Higress 的 WAF 插件基于规则引擎,内置了丰富的攻击特征库,并支持用户自定义防护规则,以应对特定的安全威胁 。管理员可以通过 Higress 控制台或配置文件,轻松启用 WAF 插件,并根据业务需求选择不同的防护模式,如「观察模式」(仅记录日志,不拦截请求)或「防护模式」(直接拦截恶意请求)。
在 AI 应用场景下,Higress 的 WAF 能力显得尤为重要。由于大语言模型(LLM)的推理响应通常耗时较长,应用容易受到慢速请求(Slowloris)攻击或拒绝服务(DoS)攻击。Higress 的 WAF 插件能够提供基于 IP、Cookie 等多维度的 CC(Challenge Collapsar)防护能力,有效识别和拦截恶意流量,保障后端 AI 服务的稳定运行 。此外,Higress 还支持对请求和响应体的大小进行限制,避免因处理过大的请求体而导致网关内存占用过高,从而引发性能问题或拒绝服务 。通过将 WAF 功能深度集成到网关中,Higress 不仅简化了安全架构,降低了部署和运维成本,还为企业提供了一个高性能、高可用且易于管理的统一安全入口。
3.2.3 流量控制与速率限制
流量控制与速率限制是保障 API 服务稳定性和可用性的关键手段,尤其是在面对突发流量或恶意攻击时。Higress 提供了强大而灵活的流量控制能力,支持基于多种维度的速率限制,包括 QPS(每秒查询数)、并发连接数,以及针对 AI 场景特有的 Token 级别限流 。这些功能主要通过其内置的限流插件实现,管理员可以通过 Higress 控制台或配置文件,为不同的路由、服务或消费者设置差异化的限流策略。例如,可以为免费用户设置较低的 QPS 阈值,而为付费用户提供更高的访问配额,从而实现精细化的流量管理和商业策略。
在 AI 应用和大模型 API 场景中,Token 级别的限流显得尤为重要。由于大模型 API 的计费通常基于 Token 数量,对 Token 的消耗进行控制直接关系到成本管理。Higress 的 AI 网关能力支持对 Token 的消耗进行实时监控和限制,可以根据用户或应用维度设置每日或每月的 Token 使用上限 。当使用量达到阈值时,网关可以自动触发限流,拒绝后续的请求,从而有效防止因滥用或攻击导致的巨额账单。此外,Higress 还支持熔断和降级策略,当后端服务响应缓慢或出现故障时,网关可以自动触发熔断,暂时停止向该服务转发流量,避免故障蔓延,保障整个系统的稳定性。这种多维度、精细化的流量控制能力,使得 Higress 能够帮助企业有效应对各种流量挑战,确保 API 服务的可靠运行。
3.2.4 安全审计与日志分析
安全审计与日志分析是企业安全运营和合规性要求的重要组成部分。Higress 提供了全面的可观测性能力,能够详细记录所有经过网关的请求和响应信息,为安全审计和事后追溯提供了坚实的数据基础。Higress 的访问日志(Access Log) 包含了丰富的信息,如客户端 IP、请求时间、请求方法、URL、User-Agent、响应状态码、响应时长等 。管理员可以通过 Higress 控制台直接查看和检索这些日志,也可以将其导出到外部的日志分析系统(如 ELK、Splunk)进行更深入的挖掘和分析 。
在 AI 应用场景中,Higress 的日志记录能力尤为重要。除了标准的 HTTP 请求信息,Higress 还可以记录与 AI 模型调用相关的特定信息,如使用的模型名称、消耗的 Token 数量、请求和响应的内容摘要等。这些信息对于成本分析、性能优化和内容安全审计至关重要。例如,通过分析日志,企业可以了解不同用户或应用对各个模型的调用频率和成本,从而制定更合理的资源分配和计费策略。同时,通过对请求和响应内容的审计,可以检测是否存在敏感信息泄露或不合规的内容生成,满足数据安全和合规性要求。Higress 的商业版还提供了与指标和日志系统的深度集成,能够生成开箱即用的用量观测分析报告,帮助企业更直观地了解 API 的使用情况和安全态势 。
3.3 生产环境部署与运维
3.3.1 监控与告警:Prometheus 与 Grafana 集成
在生产环境中,对 Higress 网关进行全面的监控和及时的告警是保障服务稳定性的关键。Higress 提供了与业界主流监控工具 Prometheus 和 Grafana 的深度集成,能够帮助企业构建强大的可观测性体系。Higress 的数据平面(Envoy)和控制平面(Controller)都会暴露丰富的 Prometheus 指标,涵盖了流量、性能、资源消耗、错误率等多个维度。这些指标可以被 Prometheus 服务器定期抓取和存储,然后通过 Grafana 进行可视化展示 。Higress 官方还提供了预置的 Grafana Dashboard 模板,用户导入后即可快速获得一个包含关键性能指标(如 QPS、P99 延迟、错误率、连接数等)的监控大盘,直观地了解网关的整体运行状况 。
除了基础的性能监控,Higress 还支持更深层次的业务指标监控。例如,在 AI 网关场景下,可以监控不同模型的调用量、Token 消耗、缓存命中率等,帮助企业进行成本分析和性能优化 。在告警方面,用户可以基于 Prometheus 的告警规则(Alerting Rules)定义各种告警条件,如「5分钟内错误率超过5%」或「P99延迟持续高于1000ms」。当条件触发时,Prometheus 会将告警信息发送给 Alertmanager,再由 Alertmanager 通过邮件、短信、钉钉等方式通知相关的运维人员。这种基于 Prometheus 和 Grafana 的监控告警方案,不仅功能强大、生态成熟,而且与云原生技术栈完美契合,是 Higress 在生产环境中进行运维管理的最佳实践。
3.3.2 日志管理:日志收集、分析与可视化
日志是生产环境故障排查和安全审计的重要依据。Higress 提供了灵活的日志管理机制,支持将网关产生的各类日志(包括访问日志、错误日志、组件运行日志等)进行统一的收集、分析和可视化。Higress 的访问日志(Access Log) 默认以 JSON 格式输出,包含了丰富的请求和响应信息,便于机器解析和处理 。用户可以通过配置,将这些日志输出到标准输出(stdout)或指定的文件路径。为了实现日志的集中化管理,通常会使用 Fluentd、Logstash 或 Promtail 等日志收集代理,将 Higress 各个 Pod 产生的日志采集并发送到后端的日志存储和分析系统,如 Elasticsearch、Loki 或 Splunk 。
在日志分析方面,Higress 官方提供了与 Grafana Loki 的集成方案。Loki 是一个水平可扩展、高可用、多租户的日志聚合系统,它与 Prometheus 和 Grafana 紧密集成,可以实现日志和指标的联动查询。用户可以在 Grafana 的 Explore 界面中,使用 LogQL(Loki 的查询语言)对 Higress 的访问日志进行复杂的查询和过滤,例如,可以根据请求路径、响应状态码、客户端 IP 等条件快速定位问题请求。此外,Higress 的商业版还提供了开箱即用的日志中心功能,用户可以在 Higress 控制台中直接查看和分析日志,并创建各种统计图表,如请求量趋势图、错误率分布图等,极大地简化了日志分析的难度 。通过建立完善的日志管理体系,企业可以更高效地进行故障诊断、性能优化和安全审计。
3.3.3 性能调优与压测
为了确保 Higress 网关在生产环境中能够稳定、高效地处理海量流量,进行充分的性能调优和压力测试是必不可少的环节。Higress 基于 Envoy 和 Istio 构建,其性能表现优异,但在实际部署中,仍需根据具体的业务场景和硬件资源进行针对性的优化。性能调优通常涉及多个层面,包括基础设施、配置参数和安全策略等 。在基础设施层面,需要为 Higress Gateway 的 Pod 分配合适的 CPU 和内存资源,并考虑使用更高性能的节点类型。在配置层面,可以调整 Envoy 的相关参数,如连接池大小、缓冲区限制等,以优化网络性能。例如,downstream.connectionBufferLimits
参数可以控制下游连接的缓冲区大小,需要根据请求和响应体的大小进行合理设置,避免因缓冲区过小导致请求失败,或因过大导致内存占用过高 。
在安全策略方面,启用 HTTPS 会增加一定的计算开销,可以通过使用硬件加速(如 AES-NI)或调整 TLS 协议版本来优化性能。此外,WAF 等安全插件也会对性能产生影响,需要根据实际情况进行权衡,避免开启不必要的规则。压力测试是验证性能调优效果的重要手段。可以使用 Apache JMeter、wrk、hey 等压测工具,模拟真实的业务流量,对 Higress 网关进行压力测试,并监控其 QPS、延迟、错误率、CPU 和内存使用率等关键指标。通过压测,可以发现系统的性能瓶颈,并指导进一步的调优工作。Higress 社区也提供了一些性能测试报告和最佳实践,可以作为调优的参考 。
3.3.4 版本升级与灰度发布
在生产环境中,对 Higress 网关进行版本升级和功能发布时,必须采用谨慎的策略,以最大限度地减少对线上业务的影响。Higress 支持多种灵活的发布和升级方式,包括蓝绿部署、金丝雀发布(灰度发布) 和滚动更新。其中,金丝雀发布是一种被广泛采用的最佳实践,它允许将新版本的应用或配置逐步引入到生产环境中,只让一小部分用户流量访问新版本,待验证无误后再逐步扩大流量比例,直至完全切换。Higress 原生支持基于权重的流量切分和基于请求内容的流量路由,为实现金丝雀发布提供了便利。
例如,在进行 Higress 自身的版本升级时,可以先部署一个新版本的 Higress Gateway 实例,然后通过 Ingress 或 Gateway API 的配置,将 10% 的流量路由到新版本,同时密切监控新旧版本的性能指标和错误日志。如果新版本运行稳定,没有出现异常,则可以逐步将流量比例提高到 50%、90%,最终完成全量切换。对于网关配置的变更,Higress 支持热更新,可以在不中断连接的情况下动态加载新的配置,这大大降低了配置变更的风险。此外,Higress 还支持与 OpenKruise Rollout 等渐进式交付工具集成,可以实现更复杂的发布策略,如基于成功率的自动回滚等 。通过采用这些成熟的发布和升级策略,企业可以在保证业务连续性的前提下,安全、高效地对 Higress 网关进行迭代和演进。
4. 特定场景应用篇:Higress 的进阶应用
4.1 AI 网关:赋能大模型企业级应用
4.1.1 Higress 在 AI 场景下的优势
Higress 作为云原生网关,在处理 AI 应用流量方面展现出独特的优势,使其成为构建企业级 AI 网关的理想选择。AI 场景下的流量具有三大显著特征:长连接、高延迟和大带宽,而 Higress 的架构恰好能有效应对这些挑战 。首先,AI 应用普遍采用 WebSocket 或 Server-Sent Events (SSE) 等长连接协议来维持会话,而传统的 Nginx 网关在配置变更时需要 Reload,会导致连接断开,严重影响用户体验。Higress 基于 Envoy 实现,支持连接无损的真正热更新,配置变更时不会中断现有长连接,保证了 AI 对话的连续性 。其次,大语言模型(LLM)的推理响应延迟远高于普通应用,这使得 AI 应用容易受到慢速请求攻击。Higress 提供了强大的安全网关能力,支持基于 IP、Cookie 等多维度的 CC 防护,并且除了传统的 QPS 限流外,还支持面向 Token 吞吐的限流,能够有效抵御针对 AI 服务的恶意攻击 。
最后,AI 场景下,由于需要频繁传输大量的上下文信息,对带宽的消耗巨大。Higress 的数据平面基于 C++ 编写的高性能 Envoy 代理,支持完全的流式转发,在处理大带宽流量时内存占用极低,能够有效避免因内存控制不当导致的 OOM(Out of Memory)问题,保障了业务的稳定运行 。此外,Higress 还提供了丰富的 AI 原生插件,如模型代理、内容安全审计、语义缓存等,能够帮助企业快速构建功能完善的 AI 应用。例如,通过语义缓存插件,可以缓存对相似问题的回答,从而显著降低对后端大模型 API 的调用次数,节约成本 。这些针对 AI 场景的深度优化和原生支持,使得 Higress 在 AI 网关领域具备了显著的竞争优势。
4.1.2 支持 MCP(Model Context Protocol)协议
Higress 在 AI 网关领域的另一大亮点是其对模型上下文协议(Model Context Protocol, MCP) 的原生支持。MCP 是一种旨在标准化 AI 应用与外部工具、数据源和服务之间交互的协议。通过支持 MCP,Higress 使得 AI Agent 能够方便地调用各种外部工具和服务,极大地扩展了 AI 应用的能力边界。Higress 不仅支持作为 MCP 客户端代理,将遵循 MCP 协议的请求转发到后端的 MCP 服务器,还支持直接托管和运行 MCP 服务器 。这意味着开发者可以将自己的业务 API 通过 Higress 提供的 openapi-to-mcp
工具快速转换为 MCP 服务器,从而让 AI Agent 能够无缝调用 。
这种能力对于构建复杂的 AI 应用生态系统至关重要。例如,一个企业可以将其内部的订单系统、库存系统、CRM 系统等通过 Higress 暴露为 MCP 服务,然后构建一个 AI 客服 Agent,该 Agent 可以通过调用这些 MCP 服务来查询订单状态、检查库存、更新客户信息等,从而提供真正智能化的客户服务。Higress 为此提供了统一的管理平面,可以同时管理 LLM API 和 MCP API,并为其提供统一的认证、鉴权、限流和可观测性能力 。此外,Higress 还推出了公共的 MCP 市场(HiMarket) ,开发者可以在其中发现和分享各种 MCP 服务器,进一步促进了 AI 生态的繁荣 。通过深度支持 MCP 协议,Higress 正在从一个单纯的 API 网关,演变为一个连接 AI 与真实世界业务的桥梁。
4.1.3 携程旅游的 AI 网关落地实践
携程旅游作为中国领先的在线旅游服务公司,在积极探索和应用大模型技术的过程中,选择了 Higress 作为其核心的 AI 网关,以解决大规模 AI 应用落地过程中遇到的诸多挑战。携程的 AI 网关实践,是 Higress 在企业级 AI 场景下成功应用的一个典型案例 。在携程的架构中,Higress 扮演着统一流量入口和治理中心的角色,负责处理所有来自内外部的 AI 模型调用请求。通过 Higress,携程实现了对多个大模型(包括自研和第三方模型)的统一接入和管理,简化了模型调用的复杂性,并提升了数据安全性和成本管控能力。
在具体实践中,携程利用 Higress 的多模型路由和负载均衡能力,实现了对多个模型实例的智能调度和故障转移,保障了 AI 服务的高可用性。同时,通过 Higress 的认证鉴权和 Token 级别限流插件,携程能够对不同业务线和用户进行精细化的访问控制和成本管理,避免了因滥用或攻击导致的资源浪费和经济损失。此外,Higress 的内容安全审核插件也帮助携程对 AI 生成内容进行了有效的合规性审查,降低了业务风险。通过应用 Higress AI 网关,携程不仅解决了 AI 应用落地过程中的诸多痛点,还提升了 AI 应用的开发效率和运维效率,为公司的业务创新和发展提供了强大的技术支撑。
4.1.4 国泰产险的 AI 网关革新之旅
国泰产险作为一家领先的保险公司,也在积极探索 AI 技术在保险业务中的应用。为了提升服务水平和运营效率,国泰产险引入了 Higress AI 网关,对其 AI 应用进行了全面的革新。根据 Higress 官网博客的介绍,国泰产险通过部署 Higress AI 网关,实现了对内部多个 AI 模型的统一管理和调度,为智能客服、智能核保、智能理赔等业务的开展提供了强大的基础设施支持 。
在应用 Higress AI 网关后,国泰产险的 AI 应用在多个方面都取得了显著的提升。首先,通过 Higress 的统一接入,国泰产险可以方便地管理和切换不同的大模型,根据不同的业务场景选择最合适的模型,从而提升了 AI 应用的智能化水平。其次,通过 Higress 的 Token 级别限流和成本监控功能,国泰产险有效地控制了 AI 模型的使用成本,实现了精细化的成本管理。再次,通过 Higress 的内容审核和安全防护功能,国泰产险保障了 AI 应用的安全性,避免了敏感信息的泄露和不合规内容的生成。最后,通过 Higress 提供的丰富观测能力,国泰产险可以实时监控 AI 应用的运行状态,及时发现和解决问题,提升了系统的稳定性和可靠性。国泰产险的 AI 网关实践,为传统金融行业的数字化转型和智能化升级提供了宝贵的经验和参考。
4.2 统一网关:替代 APISIX/Kong/Istio Ingress
4.2.1 政采云使用 Higress 统一替代多网关的实践
政采云作为一家领先的政府采购云平台,其业务系统复杂,技术栈多样。在引入 Higress 之前,政采云的架构中同时存在着 Nginx Ingress、Spring Cloud Gateway 和 Kong 等多种网关产品。这种多网关的架构给运维和开发带来了巨大的挑战。为了解决这个问题,政采云决定采用 Higress 作为其统一的网关解决方案。通过 Higress,政采云成功地替换了原有的多种网关,实现了架构的统一。Higress 不仅满足了政采云在流量路由、服务治理、安全防护等方面的所有需求,还带来了性能的提升和运维成本的降低。政采云的实践案例,为其他面临同样问题的企业提供了一个很好的参考 。
4.2.2 时速云替换 Nginx Ingress + Spring Cloud Gateway 的生产实践
时速云作为一家云原生技术公司,其 PaaS 平台中也存在着多款网关软件,包括 HAProxy、Nginx Ingress、Spring Cloud Gateway 和 Kong 等。这种多网关的架构导致了技术栈的复杂和维护成本的增加。为了解决这个问题,时速云选择了 Higress 作为其统一的网关解决方案。通过 Higress,时速云成功地替换了原有的 Nginx Ingress 和 Spring Cloud Gateway,实现了架构的统一和简化。Higress 不仅兼容了 Nginx Ingress 的大部分注解,使得迁移过程非常平滑,还在性能上有了显著的提升。此外,Higress 还提供了丰富的插件能力,满足了时速云在认证鉴权等方面的需求。时速云的实践案例,充分展示了 Higress 在统一网关场景下的强大能力和价值 。
4.2.3 统一网关架构的优势与挑战
采用 Higress 构建统一网关架构,可以带来诸多优势:
- 简化架构:将多种网关产品整合为一个,可以极大地简化系统架构,降低技术栈的复杂性。
- 降低成本:减少了需要维护的组件数量,可以降低硬件资源成本和人力运维成本。
- 提高效率:统一的配置和管理界面,可以提高开发和运维的效率。
- 增强能力:Higress 提供了丰富的流量治理、安全防护和插件扩展能力,可以满足企业多样化的需求。
当然,在采用统一网关架构的过程中,也会面临一些挑战:
- 迁移成本:从现有的多网关架构迁移到 Higress,需要进行一定的改造和测试,可能会产生一定的迁移成本。
- 学习成本:对于习惯了原有网关产品的开发和运维人员来说,需要一定的学习成本来熟悉 Higress 的使用。
- 风险管控:在迁移过程中,需要做好充分的测试和风险评估,以确保业务的平稳过渡。
总的来说,采用 Higress 构建统一网关架构,利大于弊。企业可以根据自身的实际情况,制定合理的迁移计划,逐步实现对现有网关的替换,从而享受到统一网关带来的诸多好处。
4.3 DevOps 与 CI/CD 集成
4.3.1 Higress 在 DevOps 流程中的角色
在现代软件开发流程中,持续集成(CI)与持续部署(CD)已经成为标配。Higress 作为一款云原生网关,可以很好地融入到 DevOps 流程中,与 Jenkins、GitLab CI 等主流 CI/CD 工具进行集成,实现自动化的应用发布和流量管理。通过将 Higress 的配置管理纳入到 CI/CD 流程中,企业可以实现基础设施即代码(IaC),提高应用交付的效率和可靠性 。
在 DevOps 流程中,Higress 主要扮演着流量入口和流量管理者的角色。当开发人员提交代码后,CI/CD 工具会自动触发构建、测试和部署流程。在部署阶段,CI/CD 工具可以通过调用 Higress 的 API 或使用 Higress 提供的命令行工具,自动更新网关的路由配置,将流量引导到新部署的应用版本上。例如,在进行灰度发布时,CI/CD 工具可以自动配置 Higress 的路由规则,将一部分流量切换到新版本,进行小范围的验证。如果验证通过,再逐步扩大流量比例,直到全部切换到新版本。如果验证失败,则可以快速地将流量切回旧版本,实现快速的回滚。通过这种方式,Higress 成为了 DevOps 流程中不可或缺的一环,帮助企业实现快速、安全、可靠的应用交付 。
4.3.2 与 Jenkins、GitLab CI 等工具的集成
Higress 提供了丰富的 API 和命令行工具,可以方便地与 Jenkins、GitLab CI 等主流 CI/CD 工具进行集成。例如,在 Jenkins 的 Pipeline 脚本中,可以使用 curl
命令或 Higress 提供的 CLI 工具,来调用 Higress 的 API,实现路由配置的增删改查。在 GitLab CI 中,也可以通过类似的方式,在 .gitlab-ci.yml
文件中定义相应的 Job,来实现与 Higress 的交互。此外,Higress 社区还提供了一些与 CI/CD 工具集成的插件和模板,可以进一步简化集成的过程。通过这些集成,企业可以将 Higress 的配置管理完全自动化,实现从代码提交到应用上线的全流程自动化,提高开发效率和交付质量 。
4.3.3 美洽智能客服的 DevOps 实践
美洽智能客服作为一家领先的 SaaS 企业,在 DevOps 实践方面有着丰富的经验。在其 DevOps 流程中,Higress 扮演了重要的角色。美洽将 Higress 的配置管理纳入到了其 CI/CD 流程中,实现了自动化的应用发布和流量管理。通过 Higress,美洽可以方便地进行灰度发布、A/B 测试等,提高了应用交付的效率和质量。此外,美洽还利用 Higress 的插件机制,实现了一些自定义的流量治理功能,满足了其特定的业务需求。美洽的实践案例,为其他企业如何将 Higress 融入到 DevOps 流程中,提供了一个很好的参考 。
4.4 混合云与多云架构
4.4.1 Higress 在混合云环境下的部署策略
随着企业数字化转型的深入,越来越多的企业开始采用混合云或多云的架构,以充分利用不同云平台的优势,并避免厂商锁定。在这种架构下,如何实现跨云的流量管理和统一治理,成为了一个重要的挑战。Higress 作为一款云原生网关,支持在多种环境下部署,包括公有云、私有云和混合云,为企业构建混合云和多云架构提供了有力的支持 。
在混合云环境下,企业可以将 Higress 部署在公有云和私有云的 Kubernetes 集群中,作为统一的流量入口。通过云专线或 VPN,将公有云和私有云的网络连接起来,实现跨云的流量互通。Higress 可以对接多种服务注册中心,如 Nacos、Consul 等,这些注册中心可以部署在
4.4.2 跨云流量管理与统一治理
在混合云或多云架构中,Higress 可以作为统一的流量管理和治理中心。通过将 Higress 部署在不同的云环境中,并利用其强大的多集群管理能力,企业可以实现跨云的流量调度和策略下发。例如,可以配置路由规则,将来自特定地区或用户的流量路由到指定的云环境,以实现就近访问和降低延迟。同时,也可以配置全局的负载均衡策略,将流量在多个云环境之间进行分发,以提高系统的可用性和容灾能力。
Higress 的统一治理还体现在安全策略和可观测性方面。企业可以在 Higress 上配置统一的认证鉴权、WAF 防护、流量控制等安全策略,并将其应用到所有云环境的流量入口,实现一致的安全防护。在可观测性方面,Higress 可以将来自不同云环境的监控指标和日志进行统一收集和展示,帮助企业获得全局的流量视图,方便进行统一的监控和运维。通过这种方式,Higress 有效地解决了混合云和多云环境下的流量管理和治理难题,为企业构建灵活、可靠、安全的分布式应用架构提供了坚实的基础。
4.4.3 美洽智能客服的混合云实践
美洽智能客服作为一家领先的 SaaS 企业,其业务遍布全球,对系统的可用性和容灾能力有着极高的要求。为了满足业务需求,美洽采用了混合云的架构,并选择了 Higress 作为其统一的网关解决方案。通过在不同地域的公有云和私有云数据中心部署 Higress 实例,美洽实现了跨云的流量管理和统一治理。Higress 帮助美洽将流量智能地路由到最优的数据中心,提升了用户的访问体验。同时,通过 Higress 的统一安全策略和监控能力,美洽有效地保障了全球业务的安全性和稳定性。美洽的混合云实践,充分证明了 Higress 在构建大规模、高可用的分布式系统中的强大能力和价值 。