Envoy 扩展机制全景对比

Envoy 作为云原生代理,支持多种扩展与集成机制,满足不同场景下的功能增强需求。常见机制包括:

  • 自定义 C++ 扩展
  • Lua 脚本
  • Wasm 插件
  • 动态模块(Dynamic Module)
  • External Processing(ext_proc)
  • External Authorization(ext_authz)

机制分类与原理

机制类型执行环境主要语言加载方式性能安全性典型场景
C++ 扩展进程内C++静态编译极高需完全信任性能极致、核心路径
Lua 脚本进程内Lua配置内联中等有限隔离轻量逻辑、头部操作
Wasm进程内Rust/Go动态加载中等沙箱隔离跨语言、原型开发
Dynamic Module进程内Rust/Go/C++动态加载需完全信任性能敏感扩展
ext_proc进程外任意gRPC/REST进程隔离DLP、安全扫描
ext_authz进程外任意gRPC/REST进程隔离认证鉴权

优缺点对比

  • C++ 扩展:极致性能,维护成本高,升级需自定义构建。
  • Lua 脚本:易用灵活,适合轻量场景,隔离性有限。
  • Wasm:跨语言、沙箱安全,生态尚不成熟,调试复杂。
  • Dynamic Module:接近原生性能,开发体验好(Rust),需严格版本匹配,无沙箱。
  • ext_proc/ext_authz:进程外集成,安全隔离好,适合解耦控制逻辑,但有网络延迟。

选型建议

  • 性能极致、核心路径:C++ 扩展Dynamic Module
  • 快速开发、轻量逻辑:Lua 脚本
  • 跨语言、安全隔离:Wasm(需评估生态成熟度)
  • 认证、策略、外部处理:ext_proc/ext_authz

工程实践建议:Dynamic Module 适合企业自控场景,兼具高性能与开发友好性,未来有望替代大部分 Wasm 使用场景。

机制演进趋势

Dynamic Module 作为新兴机制,结合了 C++ 性能与现代 SDK 体验,推荐关注其发展。


下一节将详细介绍 Dynamic Module 的原理与工程实践。

文章导航

章节内容

这是章节的内容页面。

章节概览