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 时代的核心基础设施。其技术沉淀与实践经验,为全球云原生网关领域树立了新标杆。

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

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

相关文章

解决 IntelliJ IDEA 中 Maven 项目左侧项目视图未显示顶层目录问题的详细步骤说明

以下是解决 IntelliJ IDEA 中 Maven 项目左侧项目视图未显示顶层目录问题的详细步骤说明&#xff1a; 1. 切换项目视图模式 默认情况下&#xff0c;IDEA 的项目视图可能处于 Packages 模式&#xff0c;仅显示代码包结构&#xff0c;而非物理目录。 操作步骤&#xff1a; 点击…

【Vue-vue基础知识】学习笔记

目录 <<回到导览vue基础知识1.1.创建一个vue实例1.2.vue基础指令1.2.1.v-bind1.2.2.v-model1.2.3.常用事件1.2.4.指令修饰符 1.3.计算属性1.3.1.计算属性的完整写法1.3.2.【案例】成绩 1.4.watch1.4.1.watch属性1.4.2.翻译业务实现1.4.3.watch属性的完整写法1.4.4.【案例…

Element Plus 图标使用方式整理

Element Plus 图标使用方式整理 以下是 Element Plus 图标的所有使用方式&#xff0c;包含完整代码示例和总结表格&#xff1a; 1. 按需引入图标组件 适用场景&#xff1a;仅需少量图标时&#xff0c;按需导入减少打包体积 示例代码&#xff1a; <template><div>…

使用Scrapy官方开发的爬虫部署、运行、管理工具:Scrapyd

一般情况下&#xff0c;爬虫会使用云服务器来运行&#xff0c;这样可以保证爬虫24h不间断运行。但是如何把爬虫放到云服务器上面去呢&#xff1f;有人说用FTP&#xff0c;有人说用Git&#xff0c;有人说用Docker。但是它们都有很多问题。 FTP&#xff1a;使用FTP来上传…

41、web前端开发之Vue3保姆教程(五 实战案例)

一、项目简介和需求概述 1、项目目标 1.能够基于Vue3创建项目 2.能够基本Vue3相关的技术栈进行项目开发 3.能够使用Vue的第三方组件进行项目开发 4.能够理解前后端分离的开发模式 2、项目概述 使用Vue3结合ElementPlus,ECharts工具实现后台管理系统页面,包含登录功能,…

OpenCV--图像平滑处理

在数字图像处理领域&#xff0c;图像平滑处理是一项极为重要的技术&#xff0c;广泛应用于计算机视觉、医学影像分析、安防监控等多个领域。在 OpenCV 这一强大的计算机视觉库的助力下&#xff0c;我们能便捷地实现多种图像平滑算法。本文将深入探讨图像平滑的原理&#xff0c;…

性能优化利器:前后端防抖方案解析

精心整理了最新的面试资料和简历模板&#xff0c;有需要的可以自行获取 点击前往百度网盘获取 点击前往夸克网盘获取 在Web开发中&#xff0c;高频触发的事件&#xff08;如用户输入、按钮点击、滚动监听等&#xff09;可能导致性能问题或资源浪费。防抖&#xff08;Debounce&…

【ES系列】Elasticsearch简介:为什么需要它?(基础篇)

🔥 本文将详细介绍Elasticsearch的前世今生,以及为什么它在当今的技术栈中如此重要。本文是ES起飞之路系列的基础篇第一章,适合想要了解ES的读者。 文章目录 一、什么是Elasticsearch?1. ES的定义2. ES的核心特性2.1 分布式存储2.2 实时搜索2.3 高可用性2.4 RESTful API3.…

用 HTML 网页来管理 Markdown 标题序号

文章目录 工具介绍核心优势使用指南基本使用方法注意事项 部分截图完整代码 工具介绍 在日常的文档编写和博客创作中&#xff0c;Markdown因其简洁的语法和良好的可读性而广受欢迎。然而&#xff0c;当文档结构复杂、标题层级较多时&#xff0c;手动维护标题序号不仅耗时耗力&…

批量将 Markdown 转换为 Word/PDF 等其它格式

在工作当中&#xff0c;我们经常会接触到 Markdown 格式的文档。这是一种非常方便我们做记录&#xff0c;做笔记的一种格式文档。现在很多互联网编辑器都是支持 Markdown 格式的&#xff0c;编辑起文章来更加的方便简介。有时候&#xff0c;我们会碰到需要将 Markdown 格式的文…

剑指Offer(数据结构与算法面试题精讲)C++版——day8

剑指Offer&#xff08;数据结构与算法面试题精讲&#xff09;C版——day8 题目一&#xff1a;链表中环的入口节点题目二&#xff1a;两个链表的第1个重合节点题目三&#xff1a;反转链表附录&#xff1a;源码gitee仓库 题目一&#xff1a;链表中环的入口节点 这道题的有如下三个…

【BFT帝国】20250409更新PBFT总结

2411 2411 2411 Zhang G R, Pan F, Mao Y H, et al. Reaching Consensus in the Byzantine Empire: A Comprehensive Review of BFT Consensus Algorithms[J]. ACM COMPUTING SURVEYS, 2024,56(5).出版时间: MAY 2024 索引时间&#xff08;可被引用&#xff09;: 240412 被引:…

前端用用jsonp的方式解决跨域问题

前端用用jsonp的方式解决跨域问题 前端用用jsonp的方式解决跨域问题 前端用用jsonp的方式解决跨域问题限制与缺点&#xff1a;前端后端测试使用示例 限制与缺点&#xff1a; 不安全、只能使用get方式、后台需要相应jsonp方式的传参 前端 function jsonp(obj) {// 动态生成唯…

MySQL详解最新的官方备份方式Clone Plugin

一、Clone Plugin的动态安装 install plugin clone soname mysql_clone.so;select plugin_name,plugin_status from information_schema.plugins where plugin_name clone; 二、Clone Plugin配置持久化 在 MySQL 配置文件my.cnf中添加以下内容&#xff0c;确保插件在 MySQL …

解决python manage.py shell ModuleNotFoundError: No module named xxx

报错如下&#xff1a; python manage.py shellTraceback (most recent call last):File "/Users/z/Documents/project/c/manage.py", line 10, in <module>execute_from_command_line(sys.argv)File "/Users/z/.virtualenvs/c/lib/python3.12/site-packa…

鸿蒙NEXT开发资源工具类(ArkTs)

import { AppUtil } from ./AppUtil; import { StrUtil } from ./StrUtil; import { resourceManager } from kit.LocalizationKit;/*** 资源工具类。* 提供访问应用资源的能力&#xff0c;包括布尔值、数字、字符串等资源的获取。** author 鸿蒙布道师* since 2025/04/08*/ ex…

css使用mix-blend-mode的值difference实现内容和父节点反色

1. 使用场景 往往开发过程中&#xff0c;经常遇到产品说你这个背景图和文字颜色太接近了&#xff0c;能不能适配下背景图&#xff0c;让用户能够看清具体内容是啥。 这么说吧&#xff0c;这种需求场景非常合理&#xff0c;因为你做开发就是要给用户一个交代&#xff0c;给他们…

el-input 中 select 方法使用报错:属性“select”在类型“HTMLElement”上不存在

要解决该错误&#xff0c;需明确指定元素类型为 HTMLInputElement&#xff0c;因为 select() 方法属于输入元素。 步骤解释&#xff1a; 类型断言&#xff1a;使用 as HTMLInputElement 将元素类型断言为输入元素。 可选链操作符&#xff1a;保持 ?. 避免元素为 null 时出错…

Mybatis Plus与SpringBoot的集成

Mybatis Plus与SpringBoot的集成 1.引入Maven 依赖2.配置application.yml文件3.创建实体类4.分页插件5.逻辑删除功能6.忽略特定字段7.自动填充 1.引入Maven 依赖 提前创建好一个SpringBoot项目&#xff0c;然后在项目中引入MyBatis Plus依赖 <dependency><groupId&g…

大数据学习(104)-clickhouse与hdfs

&#x1f34b;&#x1f34b;大数据学习&#x1f34b;&#x1f34b; &#x1f525;系列专栏&#xff1a; &#x1f451;哲学语录: 用力所能及&#xff0c;改变世界。 &#x1f496;如果觉得博主的文章还不错的话&#xff0c;请点赞&#x1f44d;收藏⭐️留言&#x1f4dd;支持一…