higress

2025-02-12

go

有些事不是看到了希望才去坚持,而是因为坚持才会看到希望。——『十宗罪』

官网:https://higress.cn/
文档:https://higress.cn/docs/latest/overview/what-is-higress/
博客:https://higress.cn/blog/
电子书:https://higress.cn/docs/ebook/wasm14/
开发指引:https://higress.cn/docs/latest/dev/architecture/
AI插件:https://higress.cn/plugin/

GitHub:https://github.com/alibaba/higress

Higress 是一款基于 Istio 和 Envoy 的云原生 API 网关,支持使用 Go、Rust、JS 等语言编写 Wasm 插件。它提供了数十个常用的插件以及开箱即用的控制台,帮助开发者实现快速的 API 管理和流量控制。Higress 起源于阿里巴巴内部,旨在解决 Tengine reload 对长连接业务造成的影响以及 gRPC/Dubbo 的负载均衡问题。如今,Higress 已被广泛应用于阿里云的 API 网关产品,承载着大量企业客户的业务。

Higress 还在多个 AI 业务场景中得到了应用,尤其是支撑了包括通义千问 APP、百炼大模型 API 和机器学习 PAI 平台等 AI 业务。它也为国内领先的 AIGC 企业(如零一万物)和 AI 产品(如 FastGPT)提供了强大的技术支持。

Higress 的使用非常简便,Docker 就能快速启动,为开发者提供了一个轻松上手的环境。此外,Higress 的所有 Docker 镜像都托管在自己的仓库中,免受 Docker Hub 国内访问限制的影响。

快速开始
通过 Docker 启动 Higress 非常简单,只需几行命令即可在本地搭建一个简单的 API 网关:

1
2
3
4
5
6
# 创建一个工作目录
mkdir higress; cd higress
# 启动 higress,配置文件会写到工作目录下
docker run -d --rm --name higress-ai -v ${PWD}:/data \
-p 8001:8001 -p 8080:8080 -p 8443:8443 \
higress-registry.cn-hangzhou.cr.aliyuncs.com/higress/all-in-one:latest

启动后,可以通过以下端口访问:
8001 端口:Higress UI 控制台
8080 端口:网关 HTTP 协议入口
8443 端口:网关 HTTPS 协议入口

如果需要在 Kubernetes 环境中部署,Higress 支持使用 Helm 等工具,详细安装方法可以参考官方文档中的 Quick Start

对于生产环境,推荐使用 企业版 以获得更高的稳定性和支持。

使用场景
Higress 适用于多种场景,包括 AI 网关、Kubernetes Ingress 网关、微服务网关以及安全防护网关。它不仅支持传统的 HTTP 请求,还支持流式处理协议、WebSocket 和 gRPC 等复杂场景。无论是高性能的 AI 业务,还是复杂的微服务架构,Higress 都能提供流畅的服务和高可用的保障。

  1. AI 网关:支持多种大模型的接入,具备强大的负载均衡、流控和缓存能力,特别适用于 AI 相关业务。
  2. Kubernetes Ingress 网关:兼容 K8s Nginx Ingress 注解,支持从 Nginx 平滑迁移到 Higress。
  3. 微服务网关:深度集成 Dubbo、Nacos、ZooKeeper 等微服务框架,性能大幅提升。
  4. 安全防护网关:提供 WAF 功能和多种认证方式,确保 API 的安全性。

核心优势
Higress 的核心优势包括其生产级别的高可用性、低资源开销以及强大的扩展能力。它已经在阿里巴巴的多个高流量场景中得到了验证,能够支持每秒数十万的请求量,并且在配置变更时几乎无感知,不会影响业务的持续运行。此外,Higress 还提供了开箱即用的 UI 控制台,简化了管理和监控的工作。

  1. 生产级别:Higress 从阿里内部产品演变而来,经过严格的生产环境验证,能够在大规模场景下稳定运行。
  2. 流式处理:支持完全流式处理请求和响应体,适合高带宽和低内存消耗的场景。
  3. 扩展性强:通过 Wasm 插件扩展机制,开发者可以根据需求自定义网关逻辑,实时更新插件而不影响流量。
  4. 易用性:内置的 UI 控制台和标准化的 API 接口,使得开发者能够快速上手,降低使用门槛。

功能展示
Higress 提供了多种丰富的功能,包括但不限于:

  • AI 网关 Demo 展示:支持快速迁移 OpenAI 等大模型,帮助开发者快速接入并管理 AI 业务。
  • UI 控制台:提供强大的可观测性,支持 Grafana 和 Prometheus 集成,并且可以在控制台内实时管理插件、路由和域名证书等。
  • 插件扩展机制:用户可以根据需求开发自己的插件,支持动态热更新,确保流量无损。
  • 服务发现:支持 Kubernetes、Nacos、ZooKeeper 等注册中心,并提供灵活的服务发现机制。

社区与贡献
Higress 拥有一个活跃的社区,用户可以通过 GitHub 参与贡献,报告问题或提出功能需求。官方还提供了相关的技术分享,帮助开发者更好地理解和使用 Higress。

Higress 是一个开源项目,感谢 Envoy 和 Istio 团队的贡献,没有他们的开源工作,Higress 的实现将不可想象。