目录
1概述
Envoy 是专为大型现代 SOA(面向服务架构)架构设计的 L7 代理和通信总线,它是Istio中的Sidecar官方标配。由C++11编写而成,具有良好的性能。sidecar模式部署,对业务无侵入。
支持的特性包括:L3/L4层代理、HTTP代理、顶级的HTTP2.0支持、gRPC支持、服务发现、健康检查、高级负载均衡、前端/边缘代理支持、最佳的可观察性和xDS动态配置等。
Envoy 接收到请求后,会先走 FilterChain,通过各种 L3/L4/L7 Filter 对请求进行微处理,然后再路由到指定的集群,并通过负载均衡获取一个目标地址,最后再转发出去。
其中每一个环节可以静态配置,也可以动态服务发现,也就是所谓的 xDS。这里的 x 是一个代词,代表一系列的Discovery Service。
2. 基本术语
Host:能够进行网络通信的实体(在手机或服务器等上的应用程序)。在 Envoy 中主机是指逻辑网络应用程序。只要每台主机都可以独立寻址,一块物理硬件上就运行多个主机。
Downstream:下游(downstream)主机连接到 Envoy,发送请求并或获得响应。
Upstream:上游(upstream)主机获取来自 Envoy 的链接请求和响应。
Cluster: 集群(cluster)是 Envoy 连接到的一组逻辑上相似的上游主机。Envoy 通过服务发现发现集群中的成员。Envoy 可以通过主动运行状况检查来确定集群成员的健康状况。Envoy 如何将请求路由到集群成员由负载均衡策略确定。
运行时配置:与 Envoy 一起部署的带外实时配置系统。可以在无需重启 Envoy 或 更改 Envoy 主配置的情况下,通过更改设置来影响操作。
Listener/监听器:监听器是命名网络地址(例如,端口、unix domain socket等),可以被下游客户端连接。Envoy 暴露一个或者多个监听器给下游主机连接。
监听器过滤器 (Listener filter) :Listener 使用 listener filter(监听器过滤器)来操作链接的元数据。它的作用是在不更改 Envoy 的核心功能的情况下添加更多的集成功能。