Envoy 简介

查看本文大纲

什么是 Envoy?

Envoy 是一个高性能的开源云原生代理,最初由 Lyft 开发,并于 2016 年开源。它被广泛应用于微服务架构和服务网格中,作为一个高效的网络代理,提供了丰富的流量管理、负载均衡、监控、路由和安全控制功能。

核心功能和特点

  • 高性能:Envoy 设计用于处理大规模的网络流量,具有高吞吐量和低延迟的特点。
  • 动态配置:支持热重载配置,允许在不重启的情况下更新配置。
  • 流量管理:提供细粒度的流量控制,包括路由、重试、故障注入等功能。
  • 负载均衡:支持多种负载均衡策略,如轮询、随机、基于权重等。
  • 可观测性:内置丰富的监控和日志功能,支持分布式追踪。
  • 安全:支持 TLS 和 mTLS,加密传输数据,确保通信安全。
  • 扩展性:支持 Lua 脚本和 WebAssembly(Wasm)扩展,可以根据需要定制功能。

应用场景

Envoy 广泛应用于以下场景:

  • 服务网格:作为服务网格中的数据平面(如 Istio),Envoy 能够处理微服务之间的所有流量,提供负载均衡、流量控制和可观测性功能。
  • API 网关:Envoy 可以作为 API 网关(如 Envoy Gateway),处理外部流量进入内部服务,提供安全、路由和速率限制功能。
  • 边缘代理:在边缘网络中,Envoy 可以作为边缘代理,处理来自外部的流量,并将其路由到内部服务。

诞生背景

Envoy 最初由 Lyft 开发,用于解决其内部微服务架构中存在的各种流量管理和可观测性问题。由于其高性能和丰富的功能,Envoy 很快被广泛应用于其他公司和项目,成为服务网格和云原生应用中的重要组件。2017 年,Envoy 项目加入 CNCF(云原生计算基金会),进一步推动了其在开源社区中的发展和普及。

欲了解更多信息,请参见 Envoy 官方文档