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

news2025/4/18 22:21:08

一、Higress概述

Higress是阿里巴巴开源的一款基于云原生技术构建的高性能API网关,专为Kubernetes和微服务架构设计。它集成了Ingress控制器、微服务网关和API网关功能于一体,支持多种协议和丰富的流量管理能力。

发展历程

Higress 从最初社区的 Istio + Envoy,到经历阿里巴巴内部的自研扩展,再到大规模生成验证,最后完成商业化产品的发布,其整个过程介绍如下:

二、核心架构与原理

1. 整体架构

Higress采用分层架构设计:

+-----------------------+
|     控制平面          |
|  (Higress Controller) |
+-----------------------+
           |
           v
+-----------------------+
|     数据平面          |
|  (基于Envoy扩展)      |
+-----------------------+
           |
           v
+-----------------------+
|     基础设施层         |
|  (Kubernetes/容器)     |
+-----------------------+
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安装方式

# 添加Higress Helm仓库
helm repo add higress.io https://higress.io/helm-charts

# 安装Higress
helm install higress higress.io/higress \
  --namespace higress-system \
  --create-namespace \
  --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进行高级配置:

controller:
  replicaCount: 2
  resources:
    limits:
      cpu: 1
      memory: 1Gi

gateway:
  enabled: true
  replicaCount: 3
  service:
    type: LoadBalancer

4. 验证安装

kubectl get pods -n higress-system
kubectl get svc -n higress-system

访问Higress控制台

在浏览器中输入http://127.0.0.1:8080,使用用户名 admin 和安装时设置的密码登录 Higress 控制台。

Higress(看这一篇就够了)-CSDN博客

五、应用实践

1. 基本路由配置

apiVersion: networking.higress.io/v1
kind: HigressRoute
metadata:
  name: product-route
spec:
  hosts:
  - "example.com"
  http:
  - match:
    - path:
        type: Prefix
        value: /products
    route:
    - destination:
        host: product-service.default.svc.cluster.local
        port: 80

2. 金丝雀发布配置

apiVersion: networking.higress.io/v1
kind: HigressRoute
metadata:
  name: canary-release
spec:
  hosts:
  - "api.example.com"
  http:
  - match:
    - headers:
        env:
          exact: canary
    route:
    - destination:
        host: new-version.default.svc.cluster.local
        weight: 20
  - route:
    - destination:
        host: stable-version.default.svc.cluster.local
        weight: 80

3. 认证配置示例

apiVersion: networking.higress.io/v1
kind: JwtPolicy
metadata:
  name: jwt-example
spec:
  allow:
  - issuer: "https://auth.example.com"
    jwks: |
      {
        "keys": [
          {
            "kty": "RSA",
            "e": "AQAB",
            "kid": "auth-key",
            "n": "public-key-here"
          }
        ]
      }
  routes:
  - "example.com/auth"

六、性能优化建议

  1. 资源分配:
    • 根据流量规模调整Envoy实例数量
    • 合理设置CPU/Memory限制

连接池配置:

circuitBreakers:
  thresholds:
    maxConnections: 10000
    maxPendingRequests: 5000
    maxRequests: 10000
  1. 缓存优化:
    • 启用路由缓存
    • 配置合理的TLS会话缓存
  1. 监控与调优:
    • 定期检查P99延迟
    • 根据实际负载调整线程模型

七、与其他网关对比

特性

Higress

Nginx Ingress

Kong

Traefik

云原生集成

★★★★★

★★★★☆

★★★★☆

★★★★★

协议支持

★★★★★

★★★☆☆

★★★★★

★★★★☆

扩展性

★★★★★

★★☆☆☆

★★★★★

★★★★☆

性能

★★★★★

★★★★☆

★★★☆☆

★★★☆☆

可观测性

★★★★★

★★★☆☆

★★★★☆

★★★★☆

企业级特性

★★★★★

★★☆☆☆

★★★★★

★★★☆☆

八、最佳实践

  1. 生产环境部署建议:
    • 使用独立命名空间隔离
    • 启用HPA自动扩缩容
    • 配置Pod反亲和性
  1. 安全实践:
    • 定期轮换TLS证书
    • 启用审计日志
    • 限制管理API访问
  1. CI/CD集成:
    • 通过GitOps管理配置
    • 在流水线中进行金丝雀验证
    • 自动化回滚机制
  1. 多集群管理:
    • 使用Higress作为跨集群流量入口
    • 统一配置管理
    • 集中式监控

九、常见问题解决

  1. 配置不生效:
    • 检查Controller日志
    • 验证CRD是否正确应用
    • 检查Envoy配置状态
  1. 性能瓶颈:
    • 检查CPU/内存使用率
    • 分析访问日志中的延迟
    • 调整连接池参数
  1. 认证失败:
    • 验证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 原生与标准演进

  1. AI 能力深化
    • 开发 MCP 协议市场,降低开发者构建 Remote MCP Server 的成本。
    • 集成多模态模型(如文本、图像、语音),提供统一的 AI 服务编排能力。
  1. 标准推进
    • 全面支持 Gateway API v1.0,推动流量管理标准的统一。
    • 参与 Envoy 社区贡献,主导云原生网关技术方向。
  1. 边缘计算
    • 推出边缘网关版本,支持 5G MEC、CDN 边缘节点部署,满足低延迟场景需求。

总结:Higress 的核心价值

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

Higress 不仅是一款高性能网关,更是企业构建云原生架构、拥抱 AI 时代的核心基础设施。其技术沉淀与实践经验,为全球云原生网关领域树立了新标杆。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2332517.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

VM——相机拍照失败

1、问题&#xff1a;相机频闪触发&#xff0c;在MVS中正常出图&#xff0c;在VM中出现拍照失败 2、解决&#xff1a; 1、首先排查网络设置&#xff08;巨帧是否设置&#xff09; 2、电脑的所有防火墙是否关闭 3、在MVS中恢复相机的设置参数为默认参数&#xff0c;删除VM中的全…

初识Redis · 简单理解Redis

目录 前言&#xff1a; 分布式系统 开源节流 认识Redis 负载均衡 缓存 微服务 前言&#xff1a; 本文只是作为Redis的一篇杂谈&#xff0c;简单理解一下Redis为什么要存在&#xff0c;以及它能做到和它不能做到的事儿&#xff0c;简单提及一下它对应的优势有什么&#…

自动驾驶时间同步

主要包含两个大的概念&#xff1a;时间系统间的时间同步与传感器数据间的时间同步 1. 时间系统间的时间同步 概念&#xff1a; 自动驾驶域控一般由多个芯片与多种类型的传感器组成&#xff0c;如&#xff1a;MCU SoC Camera Lidar Radar USS GNSS&#xff0c;其中 MCU…

项目进度延误的十大原因及应对方案

项目进度延误主要源于以下十大原因&#xff1a;目标不明确、需求频繁变更、资源配置不足或不合理、沟通不畅、风险管理不足、缺乏有效的项目监控、技术难题未及时解决、团队协作效率低下、决策链过长、外部因素影响。其中&#xff0c;需求频繁变更是导致延误的关键因素之一&…

消息队列(IPC技术)

目录 一、Linux 中主要的进程间通信方式如下&#xff1a; 二、消息队列函数 &#xff08;1&#xff09;msgget函数 功能概述 函数原型 参数解释 返回值 示例 结果 问题 (2) msgsnd函数 功能概述 函数原型 参数说明 返回值 示例 结果 &#xff08;3&#xff0…

突破焊丝虚影干扰,端子焊点缺陷检测如何实现自动化?

端子焊点作为 3C 产品中连接电路的关键环节&#xff0c;其质量优劣对产品性能有着决定性影响。然而&#xff0c;传统人工检测端子焊点不仅效率低下&#xff0c;难以满足大规模生产需求&#xff0c;而且误判率高&#xff0c;无法精准把控产品质量&#xff0c;成为企业提质增效智…

电能质量在线监测分析装置支持实时监测、数据存储及远程传输,适用于电网、工业等场景

电能质量在线监测分析装置主要技术指标 2.1工作电源 交流&#xff1a;220V10% &#xff1b;50Hz0.5Hz&#xff1b;谐波畸变率不大于15&#xff05; 直流&#xff1a;220V10%&#xff0c;纹波系数不大于5% 2.2电流信号输入 输入方式&#xff1a;电流互感器输入&#xff1b; …

01分数规划

好久没发博客了……浅浅复活一下&#xff0c;讲个冷门些的算法。 算法目的&#xff1a;选出k组ai,bi使得 最大。 算法过程&#xff1a; 不妨考虑二分答案&#xff0c;那么答案的形式便是 的形式&#xff0c;则可通过移项转化为&#xff0c;进一步的&#xff0c;我们可以将…

网络安全防护技术

边界安全防护——防火墙 控制&#xff1a;在网络连接点上建立一个安全控制点&#xff0c;对进出数据进行限制隔离&#xff1a;将需要保护的网络与不可信任网络进行隔离&#xff0c;隐藏信息并进行安全防护记录&#xff1a;对进出数据进行检查&#xff0c;记录相关信息 防火墙…

课程分享 | 安全设计原则

讲师介绍 前言 在数字化时代&#xff0c;软件安全已从技术问题升级为关乎企业存亡的战略要务。从SolarWinds供应链攻击到Log4j漏洞风暴&#xff0c;一次次安全事件不断警示我们&#xff1a;传统的边界防护思维已无法应对日益复杂的威胁环境。面对不断演进的攻击手段&#xff0…

【数据结构 · 初阶】- 单链表

目录 一.相关指针知识点 二.链表 1.为什么学了顺序表还要学链表 2.优点 三.实现 1.链表的打印 —— 理解链表结构 (2) 物理结构图 2.链表的尾插 —— 入门 错误写法&#xff1a;tail ! NULL 总结&#xff1a; 正确代码物理图解&#xff1a; (2) 尾插整体代码 (思考…

在Linux系统命令行如何使用deepseek官方API调用AI大模型?

在Linux系统命令行如何调用deepseek官方API调用AI大模型&#xff1f; 书接上文&#xff1a; 同样的开头哈哈哈哈&#xff1a; ”在这个AI技术飞速发展的时代&#xff0c;每一个程序员都应该问问自己&#xff1a;如何将人工智能的强大能力融入到我们熟悉的操作系统中&#xff…

我开源了一个“宝藏”开源项目

我开源了一个“宝藏”开源项目 - AI需求分析项目 | 适合交作业和学习 &#x1f680; 前言 大家好&#xff01;最近在学习软件工程和大模型应用开发的过程中&#xff0c;我发现许多学生都遇到了需求分析AI的题目。把一份需求文档转化为用户故事、实体关系或数据库设计&#xff…

SmolDocling:一种超紧凑的视觉语言模型,用于端到端多模态文档转换

paper地址:SmolDocling: An ultra-compact vision-language model for end-to-end multi-modal document conversion Huggingface地址:SmolDocling-256M-preview 代码对应的权重文件:SmolDocling-256M-preview权重文件 一、摘要 以下是文章摘要的总结: SmolDocling 是一…

理解CSS3 的 max/min-content及fit-content等width值

本文首发在我的个人博客&#xff1a; 理解CSS3 的 max/min-content及fit-content等width值https://www.brandhuang.com/article/1744253362074 width/height 的属性值 fit-content 这是一个 CSS3 属性&#xff0c;用来设置元素的宽度和高度&#xff0c;值为 fit-content&#…

关键路径任务延误,如何快速调整

快速识别延误原因、优化资源配置、实施任务并行、调整任务优先级是关键路径任务延误后快速调整的有效方式。其中&#xff0c;快速识别延误原因尤为重要&#xff0c;需要项目管理者及时发现影响关键路径任务延误的核心问题&#xff0c;通过系统性的分析&#xff0c;确保延误的具…

Elasticsearch 全面解析

Elasticsearch 全面解析 前言一、简介核心特性应用场景 二、核心原理与架构设计1. 倒排索引&#xff08;Inverted Index&#xff09;2. 分片与副本机制&#xff08;Sharding & Replication&#xff09;3. 节点角色与集群管理 三、核心特点1. 灵活的查询语言&#xff08;Que…

linux入门四:Linux 编译器

一、C 语言编译器 GCC&#xff1a;开启编程之旅 1.1 GCC 安装&#xff1a;一站式工具链 GCC&#xff08;GNU Compiler Collection&#xff09;是 Linux 下最常用的 C/C 编译器&#xff0c;支持多种编程语言。安装命令&#xff08;适用于 Debian/Ubuntu 系统&#xff09;&…

springboot集成springcloud vault读值示例

接上三篇 Vault---机密信息管理工具安装及常用示例 Vault机密管理工具集群配置示例 vault签发根证书、中间证书、ca证书流程记录 项目里打算把所有密码都放到vault里管理&#xff0c;vault提供了springcloud vault用来在springboot里连接vault&#xff0c;启动加载vault里的值放…

edis 主从复制

Redis 主从复制是一种数据同步机制&#xff0c;主节点&#xff08;Master&#xff09;将数据复制到一个或多个从节点&#xff08;Slave&#xff09;&#xff0c;从 而实现数据备份、读写分离和高可用性。 1、解决我们的日常一个单机故障&#xff0c;而衍生出来 主从架构 2、…