当前位置: 首页 > article >正文

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

一、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: 2resources:limits:cpu: 1memory: 1Gigateway:enabled: truereplicaCount: 3service: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: Prefixvalue: /productsroute:- destination:host: product-service.default.svc.cluster.localport: 80

2. 金丝雀发布配置

apiVersion: networking.higress.io/v1
kind: HigressRoute
metadata:name: canary-release
spec:hosts:- "api.example.com"http:- match:- headers:env:exact: canaryroute:- destination:host: new-version.default.svc.cluster.localweight: 20- route:- destination:host: stable-version.default.svc.cluster.localweight: 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: 10000maxPendingRequests: 5000maxRequests: 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 时代的核心基础设施。其技术沉淀与实践经验,为全球云原生网关领域树立了新标杆。

相关文章:

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

一、Higress概述 Higress是阿里巴巴开源的一款基于云原生技术构建的高性能API网关&#xff0c;专为Kubernetes和微服务架构设计。它集成了Ingress控制器、微服务网关和API网关功能于一体&#xff0c;支持多种协议和丰富的流量管理能力。 发展历程 Higress 从最初社区的 Isti…...

常见的 set 选项与空变量检查

在编写 Bash 脚本时&#xff0c;使用 set 命令中的一些选项可以帮助我们在脚本执行过程中及时捕获错误和潜在问题&#xff0c;避免脚本在出错时继续执行&#xff0c;提高脚本的可靠性和健壮性。 set -e&#xff1a;遇到错误就停 set -e 的作用是&#xff1a;一旦脚本中的某个…...

leetcode 377. Combination Sum IV

这道题也是完全背包问题。这道题和第518题几乎一摸一样&#xff0c;所不同的是&#xff0c;第518题要求的是组合数&#xff0c;而第377题要求的是排列数。虽然本题题目描述中说求的是组合数&#xff0c;但从例子1中&#xff08;1&#xff0c;1&#xff0c;2&#xff09;和&…...

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;简单提及一下它对应的优势有什么&#…...

目标检测YOLO实战应用案例100讲- 基于卷积神经网络的小目标检测算法研究与应用

目录 知识储备 基于改进YOLOv5的小目标检测算法 一、环境配置(Python 3.8+) 二、核心代码实现 1. 改进模型定义(models/yolov5s_tiny.py ) 2. 小目标数据增强(datasets/tiny_aug.py ) 3. 训练脚本(train.py ) 三、关键改进点说明 四、实验配置建议 前言 传统…...

自动驾驶时间同步

主要包含两个大的概念&#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; …...

Springboot整合JAVAFX

Springboot整合JAVAFX 实体与VO设计 pom.xml文件如下&#xff1a; <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xs…...

01分数规划

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

网络安全防护技术

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

[数据结构]Trie字典树

GPT的介绍 &#x1f9e0; 一句话总结&#xff1a; 字典树是一种专门用来存很多字符串的“超级前缀树”&#xff0c;查找某个字符串或前缀的时候&#xff0c;特别快&#xff01; ✍️ 举个生活例子&#xff08;类比&#xff09;&#xff1a; 你想做一个词典&#xff08;Dictio…...

【WPF】IOC控制反转的应用:弹窗但不互相调用ViewModel

全称&#xff1a;Inversion of Control&#xff0c;控制反转 场景&#xff1a;A页面需要调用B/C页面等&#xff0c;防止直接在VM中新建别的页面实例&#xff0c;使用IOC设计架构&#xff1b; 创建Service&#xff0c;在Service中实现页面的实例创建和定义页面输入输出参数。 在…...

课程分享 | 安全设计原则

讲师介绍 前言 在数字化时代&#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里的值放…...

什么是虚拟线程?与普通线程的区别

引言&#xff1a;线程的演进与挑战 在传统的并发编程中&#xff0c;线程是一种非常重要的概念。我们使用线程来实现任务的并发执行&#xff0c;从而提高程序的执行效率。普通线程&#xff08;如 Thread 类&#xff09;是一种重量级的线程&#xff0c;每个线程都对应着操作系统…...

edis 主从复制

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

机器视觉+深度学习,让电子零部件表面缺陷检测效率大幅提升

在精密加工的3C电子行业中&#xff0c;一抹0.1毫米的油渍&#xff0c;一粒肉眼难辨的灰尘或将引发整机性能隐患。当制造业迈入微米级品质竞争时代&#xff0c;产品表面看似微不足道的脏污缺陷&#xff0c;正成为制约企业高质量发展的隐形枷锁。分布无规律的污渍斑点、形态各异的…...

Java基础关键_035_Lambda 表达式

目 录 一、引例&#xff1a;TreeSet 排序 1.实现 Comparable 接口 2.比较器 3.匿名内部类 4.Lambda 表达式 5.Lambda 表达式和匿名内部类的区别 二、函数式编程 三、Lambda 表达式的使用 1.无返回值函数式接口 &#xff08;1&#xff09;无返回值无参数 &#xff08;…...