Higress 全新 Wasm 运行时,性能大幅提升

简介: 在 Higress 将 Wasm 运行时从 V8 替换为 WAMR 后,Wasm 插件的性能对比之前又有了大幅提升。

本文介绍 Higress 将 Wasm 插件的运行时从 V8 切换到 WebAssembly Micro Runtime (WAMR) 的最新进展。通过切换到 WAMR 并开启 AOT 模式大幅提升了 Wasm 插件性能,从我们的测试中大部分插件平均有 50% 左右的性能提升,一些逻辑复杂的插件性能直接翻倍。

Higress Wasm 插件
Higress 作为首个推出 Wasm 扩展能力的云产品网关,从 2022 年就上线了 Wasm 插件市场,我们使用 Wasm 技术作为主要的网关扩展手段,是因为它能为用户带来的独特价值:

  1. 工程可靠性:相比 Lua 等动态类型+解释执行语言,Wasm 可基于多种静态类型语言编译,可以做编译期检查,避免运行时出错把生产环境变成代码捉虫现场。

  2. 沙箱安全性:Wasm 插件运行在严格的虚拟机沙箱环境内,有自己的独立内存空间,不能直接访问外部内存,可以避免插件代码 bug 导致遭到缓冲区溢出、远程代码执行等攻击。

  3. 热更新:Higress 基于 Envoy 的 xDS 机制,插件二进制和配置都可以独立热更新,不会引起连接断开,对 WebSocket/gRPC 等业务场景更友好。

Higress 站在 Istio/Envoy 的肩膀上,为 Wasm 插件机制增加了三个核心能力:

  1. 域名/路由级生效:Istio/Envoy 自带的全局生效方式难以满足大部分场景需求,而基于 Higress Wasm sdk 开发的插件可以做到这点,同时编译出的插件也跟 Istio/Envoy 生态兼容(仅全局生效)。

  2. Redis 访问能力:提供了访问 Redis 的 Host Function,插件代码可以基于 Redis 实现多种能力,例如全局限流,Session 状态管理等。

  3. 虚拟机自愈机制:开发的插件逻辑中若出现了空指针访问、数组越界、内存泄漏等问题,将被运行时系统捕获,不会导致网关崩溃;Higress 支持 Wasm 模块异常后自动重启,并能在快速止血的同时,通过告警通知用户出现问题的代码堆栈。

从 Higress 的企业用户看 Wasm 插件技术的采用周期,已经跨域过鸿沟,步入早期采用大众阶段,核心的驱动力是性能红利带来的成本下降。用户使用 Wasm 插件来开发满足自己特定业务需求的能力,对于鉴权、加解密、会话管理等逻辑在网关完成计算资源的卸载,无需后端服务处理,从而全局降低计算成本。

性能数据上,之前发表的这篇文档《通过Higress Wasm插件3倍性能实现Spring Cloud Gateway功能》反馈了过去的性能成果。

在 Higress 将 Wasm 运行时从 V8 替换为 WAMR 后,Wasm 插件的性能对比之前又有了大幅提升。

相关文章
|
3月前
|
存储 人工智能 安全
揭秘 MCP Streamable HTTP 协议亲和性的技术内幕
函数计算推出MCP Streamable HTTP亲和机制,支持会话级请求绑定,解决传统Serverless对会话应用支持不足的问题。实现高效生命周期控制,并支持Bearer认证,助力开发者构建更稳定、安全、高性能的AI应用服务。
714 25
ly~
|
存储 算法 编译器
游戏开发中,C 语言的性能优势体现在哪些方面?
在游戏开发中,C 语言凭借其对硬件的直接访问和内存操作的精准控制,能够显著提升性能。它允许开发者手动管理内存,优化数据存储和读取,充分利用显卡等硬件资源,实现流畅的图形渲染和音效处理。作为一种接近底层的语言,C 语言具有高效的执行速度,适用于物理引擎和碰撞检测等高性能需求模块,并且提供了丰富的运算符和数据类型,便于实现高效的算法。此外,C 语言代码具有良好的可移植性和跨平台性,支持多种操作系统和硬件平台,减少了多平台发布的开发成本。编译器提供的优化选项和手动代码优化的灵活性进一步提升了游戏的整体性能。
ly~
498 5
|
15天前
|
传感器 人工智能 边缘计算
智慧养老新基建:康养机器人核心技术解析与主流产品选型指南
随着老龄化加剧,康养机器人正从概念走向落地,融合SLAM导航、多模态感知、医疗级数据交互、大模型语音理解与康复评估技术,实现健康监测、跌倒预警、情感陪伴等多元功能。本文解析五大核心技术,并推荐猎户星空、优必选、新松、傅利叶及ElliQ等代表性产品,涵盖居家、机构、康复与情感场景,助力智慧养老科学选型与应用落地。(238字)
|
数据采集 监控 物联网
一些常用的 Salesforce IoT Cloud 中间件工具
以下是一些常用的Salesforce IoT Cloud中间件工具
|
缓存 负载均衡 Java
你真的了解负载均衡中间件nginx吗?
nginx可所谓是如今最好用的软件级别的负载均衡了。通过nginx的高性能,并发能力强,占用内存下的特点,可以搭建高性能的代理服务。同时nginx还能作为web服务器,反向代理,动静分离服务器。十分的方便好用,今天让我来一起看看,你真的了解nginx吗?
844 82
|
Prometheus Cloud Native 网络协议
prometheus专题—(十三) proemetheus多实例采集
文档:https://prometheus.io/docs/guides/multi-target-exporter/
1058 0
prometheus专题—(十三) proemetheus多实例采集
|
安全 Linux 数据中心
CentOS Stream的阿里云镜像站下载地址
CentOS Stream的阿里云镜像站下载地址
2323 0
|
机器学习/深度学习 人工智能 算法
【AI系统】AI 框架基础介绍
本文介绍了AI算法、神经网络及其应用,解释了为何神经网络需要训练及AI框架的作用。通过解析深度学习的数学原理与反向求导算法,阐述了AI框架如何作为模型设计、训练和验证的标准工具,支持算法封装、数据调用及计算资源管理,强调了AI框架的发展历程和技术迭代。
473 9
【AI系统】AI 框架基础介绍
|
运维 网络协议
IP 地址类别:权威指南
IP 地址类别:权威指南
2371 4
|
运维 监控 jenkins
自动化运维实践:构建高效的CI/CD流程
【8月更文挑战第31天】在软件开发的海洋中,持续集成和持续交付(CI/CD)是推动现代开发实践的强大潮流。本文将带你潜入这股潮流之下,探索如何构建一个高效且灵活的自动化运维流程,以提升软件交付的速度与质量。我们将从基础工具的选择到流程设计,再到实际操作的技巧,逐步展开讨论,并结合代码示例,使理论与实践紧密结合。

热门文章

最新文章