Envoy:28k Star 的云原生网络代理

📅 2026/6/25 13:33:01
Envoy:28k Star 的云原生网络代理
文章目录Envoy28k Star 的云原生网络代理Envoy28k Star 的云原生网络代理Envoy 是由 Lyft 开源的一款高性能网络代理目前在 GitHub 上获得了 28,435 个 Star是 CNCF 毕业项目之一。很多大型互联网公司在生产环境中都在使用 Envoy包括 Airbnb、Pinterest、Square、腾讯、字节跳动等。它通常被用作边缘代理、内部服务代理或者作为服务网格中的 Sidecar 代理。Envoy 用 C 编写核心设计目标是提供高吞吐量和低延迟的网络处理能力。它支持多种协议包括 HTTP/1.1、HTTP/2、gRPC、TCP 和 UDP。在流量管理方面Envoy 提供了丰富的功能负载均衡支持轮询、加权、最少连接等多种算法熔断机制可以在下游服务出现问题时快速失败避免雪崩限流功能可以保护服务不被过多请求压垮重试机制支持可配置的重试策略提高请求成功率。与传统代理工具不同Envoy 的配置不依赖静态文件而是通过 xDS API 进行动态管理。xDS 包括 LDS监听器发现服务、CDS集群发现服务、RDS路由发现服务、EDS端点发现服务等一系列 API可以实现配置的动态下发和热更新不需要重启代理就能生效。这种设计让 Envoy 能够适应大规模、动态变化的微服务环境。可观测性是 Envoy 的另一个强项。它内置了详细的统计信息支持 Prometheus 格式的指标暴露同时兼容 Jaeger、Zipkin 等分布式追踪系统也支持将访问日志输出到多种后端。这些能力让运维人员能够清晰地看到服务之间的调用关系和性能状况。在服务网格架构中Envoy 是最常用的数据平面组件。Istio 就选择 Envoy 作为其默认的 Sidecar 代理所有服务间的网络流量都经过 Envoy 处理。通过这种方式服务本身不需要关心网络通信的细节流量管理、安全策略、可观测性等功能都由 Envoy 在透明层完成。Envoy 的扩展性也很强。它采用过滤器链架构开发者可以通过编写自定义过滤器来扩展功能。过滤器分为网络层过滤器和 HTTP 层过滤器分别在网络连接和 HTTP 请求级别进行处理。官方提供了多种内置过滤器社区也有丰富的第三方过滤器可供使用。从部署方式上看Envoy 可以运行在裸金属服务器、虚拟机、Docker 容器和 Kubernetes Pod 中。它对资源的占用相对合理在生产环境中经过了大规模验证。Envoy 目前由一个活跃的社区维护核心团队来自多家公司。项目有完善的安全审计机制2018 年由 Cure53 进行过安全审计2021 年由 Ada Logics 对模糊测试基础设施进行了审计。社区每个月有两次公开会议讨论路线图和设计决策。区每个月有两次公开会议讨论路线图和设计决策。