什么是 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 官方文档。