Higress: 阿里巴巴高性能云原生API网关详解

[复制链接]
发表于 2025-9-29 12:34:27 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
一、Higress概述

Higress是阿里巴巴开源的一款基于云原生技能构建的高性能API网关,专为Kubernetes和微服务架构计划。它集成了Ingress控制器、微服务网关和API网关功能于一体,支持多种协媾和丰富的流量管理本事。
发展历程
Higress 从最初社区的 Istio + Envoy,到履历阿里巴巴内部的自研扩展,再到大规模天生验证,末了完成贸易化产物的发布,其整个过程先容如下:




二、焦点架构与原理

1. 团体架构

Higress接纳分层架构计划:


  1. +-----------------------+
  2. |     控制平面          |
  3. |  (Higress Controller) |
  4. +-----------------------+
  5.            |
  6.            v
  7. +-----------------------+
  8. |     数据平面          |
  9. |  (基于Envoy扩展)      |
  10. +-----------------------+
  11.            |
  12.            v
  13. +-----------------------+
  14. |     基础设施层         |
  15. |  (Kubernetes/容器)     |
  16. +-----------------------+
复制代码
1. 内核层



  • 技能底座:基于 Envoy C++ 高性能署理内核,联合 Istio 服务网格的控制面本事,实现微秒级流量转发与毫秒级设置热更新。
  • 协议支持:原生支持 HTTP/1.1、HTTP/2、gRPC、Dubbo 等协议,可处理处罚百万级并发毗连,满意电商大促、及时交互等场景需求。
2. 控制面



  • 多标准兼容:支持 Ingress API、Gateway API、Istio VirtualService 等多种流量管理标准,可平滑迁徙 Nginx Ingress 设置(兼容 80%+ 注解)。
  • 服务发现:深度集成 Nacos、ZooKeeper、Consul 等注册中央,支持 K8s Service、静态 IP、DNS 等多种服务发现方式,适配混淆云架构。
3. 数据面



  • 插件扩展:提供 Wasm、Lua、历程外三种插件机制,支持 Go、Rust、JavaScript 等语言开发,插件热更新对流量无损。
  • 流式处理处罚:支持完全流式处理处罚哀求 / 相应 Body,可高效处理处罚 SSE(Server-Sent Events)、AI 模子 Token 流等场景,内存开销低沉 50%+。
2. 焦点组件



  • Higress Controller:




    • 监听Kubernetes API Server资源变动
    • 管理设置并下发至数据平面
    • 提供扩展API界说



  • 数据平面(基于Envoy扩展):




    • 高性能署理焦点
    • 支持HTTP/1.1, HTTP/2, gRPC, WebSocket等协议
    • 插件化架构支持扩展

3. 关键技能原理



  • 设置热更新:




    • 通过xDS协议实现设置动态下发
    • 无需重启即可应用新设置



  • 高性能路由:




    • 基于前缀树(Trie)的路由匹配算法
    • 支持正确匹配、前缀匹配和正则匹配



  • 插件机制:




    • 接纳Wasm(WebAssembly)实现插件沙箱
    • 支持热加载插件

三、焦点功能特性

1. 流量管理



  • 高级路由(基于Header/Cookie/Query参数)
  • 流量镜像(Shadowing)
  • 流量拆分(Canary发布/AB测试)
  • 重试与超时控制
2. 安全本事



  • JWT/OAuth2认证
  • OIDC集成
  • IP好坏名单
  • CORS支持
  • WAF防护
3. 可观测可观测性



  • 访问日记
  • Prometheus指标
  • 分布式追踪(OpenTelemetry)
  • 及时监控监控面板
4. 协议支持



  • HTTP/1.x, HTTP/2
  • gRPC
  • WebSocket
  • Dubbo协议署理
1. AI 网关:让 AI 成为一等公民



  • 多模子同一接入:支持 OpenAI、Anthropic、阿里云通义千问等国表里 LLM 模子厂商,提供标准化接口协议(如 MCP 协议),30 秒完成模子迁徙。
  • 智能流量管理:




    • 多模子负载平衡:根据模子范例、负载、相应时间动态调治哀求。
    • Token 流控:基于模子 Token 斲丧举行细粒度限流,制止服务过载。
    • 缓存优化:主动缓存高频哀求结果,相应速率提拔 3 倍以上。



  • 生产级实践:支持通义千问 APP 日均亿级哀求,百炼大模子 API 调用乐成率 99.99%,AI 插件市场已上架 50+ 官方插件。
2. 微服务网关:重构服务管理体系



  • 跨域互通:办理阿里团体与蚂蚁团体跨业务域 RPC 互通题目,链路 RT 低沉 50%,支持飞猪、手淘等焦点业务。
  • 服务网格集成:与 Istio 深度联动,实现服务间 mTLS 加密、流量镜像、故障注入等高级管理功能。
  • 性能优化:相比传统 Java 网关,资源使用率低沉 60%,单实例可承载 50 万 QPS。
3. 安全防护网关:零信托架构落地



  • WAF 防护:内置阿里云 Web 应用防火墙,拦截 99.9% 的 OWASP Top 10 攻击,支持自界说规则。
  • 认证鉴权:支持 JWT、OIDC、HMAC 等多种认证方式,可对接 Keycloak、Okta 品级三方身份体系。
  • CC 防护:基于 IP、Cookie 等维度的流量洗濯,防御每秒 10 万级的 CC 攻击。
4. K8s 入口网关:云原生最佳实践



  • 平滑迁徙:兼容 Nginx Ingress 设置,支持一键迁徙,用户可在 1 小时内完成从 Nginx 到 Higress 的切换。
  • 资源服从:相比 Nginx Ingress,内存占用镌汰 40%,路由变动收效时间从秒级收缩至毫秒级。
  • 服务网格融合:作为 K8s Ingress 与服务网格的同一入口,实现南北向与东西向流量的同一管理。
应用场景:六大范畴典范案例

范畴
场景
客户案例
结果
AI 大模子
多模子同一接入与流量调治
通义千问、零一万物
模子切换时间 <1 分钟,调用乐成率 99.99%
电商生意业务
高并发流量管理与弹性扩容
淘宝、天猫
支持双 11 峰值 50 万 QPS,相应时间 <50ms
金融科技
跨域 RPC 互通与安全防护
付出宝、网商银行
链路 RT 低沉 50%,数据加密传输
智能制造
工业物联网物联网装备接入与协议转换
阿里云 IoT 平台
支持百万级装备长毗连,协议转换延长 <1ms
政务云
多租户隔离与国产化适配
浙江省政务云
满意等保 2.0 要求,国产化率 100%
游戏行业
举世节点加快与防外挂
网易游戏、米哈游
外洋玩家延长低沉 30%,外挂拦截率 99%
四、摆设指南



1. 条件条件



  • Kubernetes集群(1.16+)
  • Helm 3.x
  • IngressClass资源支持
2. Helm安装方式

  1. # 添加Higress Helm仓库
  2. helm repo add higress.io https://higress.io/helm-charts
  3. # 安装Higress
  4. helm install higress higress.io/higress \
  5.   --namespace higress-system \
  6.   --create-namespace \
  7.   --set global.kubeConfig="your-kubeconfig"
复制代码
80端口:Higress 袒露,用于 HTTP 协议署理
443端口:Higress 袒露,用于 HTTPS 协议署理
15020端口:Higress 袒露,用于袒露 Prometheus 指标
8080端口:Higress 控制台 袒露,(admin/123456)


下令表明:
startup.sh : 启动Higress
shutdown.sh : 克制Higress
configure.sh : 设置nacos所在
3. 自界说设置

通过values.yaml举行高级设置:
  1. controller:
  2.   replicaCount: 2
  3.   resources:
  4.     limits:
  5.       cpu: 1
  6.       memory: 1Gi
  7. gateway:
  8.   enabled: true
  9.   replicaCount: 3
  10.   service:
  11.     type: LoadBalancer
复制代码
4. 验证安装

  1. kubectl get pods -n higress-system
  2. kubectl get svc -n higress-system
复制代码
访问Higress控制台
在欣赏器中输入http://127.0.0.1:8080,使用用户名 admin 和安装时设置的暗码登录 Higress 控制台。


Higress(看这一篇就够了)-CSDN博客
五、应用实践

1. 根本路由设置

  1. apiVersion: networking.higress.io/v1
  2. kind: HigressRoute
  3. metadata:
  4.   name: product-route
  5. spec:
  6.   hosts:
  7.   - "example.com"
  8.   http:
  9.   - match:
  10.     - path:
  11.         type: Prefix
  12.         value: /products
  13.     route:
  14.     - destination:
  15.         host: product-service.default.svc.cluster.local
  16.         port: 80
复制代码
2. 金丝雀发布设置

  1. apiVersion: networking.higress.io/v1
  2. kind: HigressRoute
  3. metadata:
  4.   name: canary-release
  5. spec:
  6.   hosts:
  7.   - "api.example.com"
  8.   http:
  9.   - match:
  10.     - headers:
  11.         env:
  12.           exact: canary
  13.     route:
  14.     - destination:
  15.         host: new-version.default.svc.cluster.local
  16.         weight: 20
  17.   - route:
  18.     - destination:
  19.         host: stable-version.default.svc.cluster.local
  20.         weight: 80
复制代码
3. 认证设置示例

  1. apiVersion: networking.higress.io/v1
  2. kind: JwtPolicy
  3. metadata:
  4.   name: jwt-example
  5. spec:
  6.   allow:
  7.   - issuer: "https://auth.example.com"
  8.     jwks: |
  9.       {
  10.         "keys": [
  11.           {
  12.             "kty": "RSA",
  13.             "e": "AQAB",
  14.             "kid": "auth-key",
  15.             "n": "public-key-here"
  16.           }
  17.         ]
  18.       }
  19.   routes:
  20.   - "example.com/auth"
复制代码
六、性能优化发起


  • 资源分配:




    • 根据流量规模调解Envoy实例数量
    • 公道设置CPU/Memory限定

毗连池设置:
  1. circuitBreakers:
  2.   thresholds:
  3.     maxConnections: 10000
  4.     maxPendingRequests: 5000
  5.     maxRequests: 10000
复制代码

  • 缓存优化:




    • 启用路由缓存
    • 设置公道的TLS会话缓存





    • 定期查抄P99延长
    • 根据现实负载调解线程模子

七、与其他网关对比

特性
Higress
Nginx Ingress
Kong
Traefik
云原生集成
★★★★★
★★★★☆
★★★★☆
★★★★★
协议支持
★★★★★
★★★☆☆
★★★★★
★★★★☆
扩展性
★★★★★
★★☆☆☆
★★★★★
★★★★☆
性能
★★★★★
★★★★☆
★★★☆☆
★★★☆☆
可观测可观测性
★★★★★
★★★☆☆
★★★★☆
★★★★☆
企业级特性
★★★★★
★★☆☆☆
★★★★★
★★★☆☆
八、最佳实践


  • 生产环境摆设发起:




    • 使用独立定名空隔断离
    • 启用HPA主动扩缩容
    • 设置Pod反亲和性


  • 安全实践:




    • 定期轮换TLS证书
    • 启用审计日记
    • 限定管理API访问


  • CI/CD集成:




    • 通过GitOps管理设置
    • 在流水线中举行金丝雀验证
    • 主动化回滚机制


  • 多集群管理:




    • 使用Higress作为跨集群流量入口
    • 同一设置管理
    • 会合式监控监控

九、常见题目办理


  • 设置不收效:




    • 查抄Controller日记
    • 验证CRD是否正确应用
    • 查抄Envoy设置状态


  • 性能瓶颈:




    • 查抄CPU/内存使用率
    • 分析访问日记中的延长
    • 调解毗连池参数


  • 认证失败:




    • 验证JWT署名设置
    • 查抄令牌有效期
    • 确认上游服务白名单

Higress作为阿里巴巴开源的云原生API网关,联合了阿里多年的大规模流量管理履历,特别恰当须要高性能、高可靠性的云原生场景。随着社区的发展,其功能和生态体系也在不绝完满。


Higress 是一款由阿里巴巴自主研发、基于云原生技能构建的高性能 API 网关,其焦点定位是 **“AI 原生的云原生网关”**,旨在办理企业在数字化转型中面临的流量管理、微服务管理、安全防护和 AI 场景适配等焦点题目。以下从技能架构、焦点本事、应用场景、生态实践及将来规划五个维度睁开详细剖析:
十、生态实践:开源与贸易化双轮驱动

1. 开源生态



  • GitHub 项目:累计得到 1800+ Star,40+ 贡献者,发布 18 个版本,支持 Docker、Helm、K8s Operator 等多种摆设方式。
  • 社区工具:提供 hgctl 一站式开发工具,支持 WASM 插件天生、设置查抄、控制台管理等功能。
2. 贸易化产物



  • 阿里云 MSE 云原生网关:服务超 10 万企业客户,提供 99.99% SLA 保障,日均处理处罚流量超 100 亿次。
  • 私有化摆设:支持金融、政务等行业的私有化场景,提供定制化开发与技能支持。
十一、将来规划:AI 原生与标准演进


  • AI 本事深化:




    • 开发 MCP 协议市场,低沉开发者构建 Remote MCP Server 的资源。
    • 集成多模态模子(如文本、图像、语音),提供同一的 AI 服务编排本事。


  • 标准推进:




    • 全面支持 Gateway API v1.0,推动流量管理标准的同一。
    • 到场 Envoy 社区贡献,主导云原生网关技能方向。


  • 边沿盘算:




    • 推出边沿网关版本,支持 5G MEC、CDN 边沿节点摆设,满意低延长场景需求。

总结:Higress 的焦点代价



  • 技能领先性:基于 Envoy/Istio 的云原生架构,在性能、扩展性、安全性上到达行业领先水平。
  • 场景适配性:深度优化 AI、微服务、K8s 等场景,办理企业数字化转型中的痛点题目。
  • 生态开放性:开源社区与贸易化产物互补,提供机动的技能落地路径。

Higress 不但是一款高性能网关,更是企业构建云原生架构、拥抱 AI 期间的焦点底子办法。其技能沉淀与实践履历,为举世云原生网关范畴树立了新标杆。
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表