Envoy 架构概览(1):术语,线程模型,监听器和网络(L3 / L4)过滤器和HTTP连接管理

本文涉及的产品
模型在线服务 PAI-EAS,A10/V100等 500元 1个月
交互式建模 PAI-DSW,每月250计算时 3个月
模型训练 PAI-DLC,100CU*H 3个月
简介: Envoy 架构概览(1):术语,线程模型,监听器和网络(L3 / L4)过滤器和HTTP连接管理

术语

在我们深入到主要的体系结构文档之前,有一些定义。有些定义在行业中有些争议,但是它们是Envoy在整个文档和代码库中如何使用它们的,因此很快就会出现。


  • 主机:能够进行网络通信的实体(在手机,服务器等上的应用程序)。在这个文档中,主机是一个逻辑网络应用程序。一个物理硬件可能有多个主机上运行,只要他们可以独立寻址。

  • 下游:下游主机连接到Envoy,发送请求并接收响应。

  • 上游:上游主机接收来自Envoy的连接和请求并返回响应。

  • 侦听器:侦听器是可以被下游客户端连接的命名网络位置(例如,端口,unix域套接字等)。 Envoy公开一个或多个下游主机连接的侦听器。

  • 群集:群集是Envoy连接到的一组逻辑上相似的上游主机。 Envoy通过服务发现发现一个集群的成员。它可以通过主动运行状况检查来确定集群成员的健康状况。 Envoy将请求路由到的集群成员由负载平衡策略确定。

  • 网格:协调一致以提供一致的网络拓扑的一组主机。在本文档中,“Envoy mesh”是一组Envoy代理,它们构成了由多个不同的服务和应用程序平台组成的分布式系统的消息传递基础。

  • 运行时配置:与Envoy一起部署的带外实时配置系统。可以更改配置设置,这将影响操作,而无需重启Envoy或更改主配置。


线程模型

Envoy使用多线程体系结构的单个进程。 一个主线程控制各种零星的协调任务,而一些工作线程执行监听,过滤和转发。 一旦一个连接被一个监听器接受,这个连接将其生命周期的其余部分花费在一个工作者线程上。 这使得大多数Envoy在很大程度上是单线程的(令人尴尬的并行),而在工作线程之间有少量更复杂的代码处理协调。 通常Envoy被写为100%非阻塞,对于大多数工作负载,我们建议将工作线程的数量配置为等于机器上硬件线程的数量。


监听器


Envoy配置支持单个进程中的任意数量的监听器。 一般来说,我们建议每台机器运行一个Envoy,而不管配置的侦听器的数量是多少。 这样可以使操作更简单,统计也更简单。 目前Envoy只支持TCP侦听器。


每个监听器都独立配置一定数量的网络级别(L3 / L4)过滤器。 当侦听器接收到新连接时,配置的连接本地过滤器堆栈将被实例化并开始处理后续事件。 通用侦听器体系结构用于执行Envoy用于的大部分不同代理任务(例如,速率限制,TLS客户机认证,HTTP连接管理,MongoDB嗅探,原始TCP代理等)。


侦听器也可以通过侦听器发现服务(LDS)动态获取。


监听器配置。


网络(L3 / L4)过滤器


如监听器部分所述,网络级别(L3 / L4)过滤器构成Envoy连接处理的核心。过滤器API允许将不同的过滤器组混合并匹配并附加到给定的监听器。有三种不同类型的网络过滤器:


  • 读取:当Envoy从下游连接接收数据时,会调用读取过滤器。
  • 写入:当Envoy要将数据发送到下游连接时,将调用写入过滤器。
  • 读取/写入:当Envoy从下游连接接收数据并且要将数据发送到下游连接时,都会调用读取/写入过滤器。

用于网络级过滤器的API相对简单,因为最终过滤器在原始字节和少量连接事件(例如,TLS握手完成,连接本地或远程断开连接等)上操作。链中的过滤器可以停止并随后继续迭代以进一步过滤。这可以实现更复杂的场景,例如调用速率限制服务等。Envoy已经包含了多个网络级别的过滤器,这些过滤器在此体系结构概述以及配置参考中都有记录。


HTTP连接管理

HTTP是现代服务导向架构的关键组件,Envoy实现了大量的HTTP特定功能。 Envoy有一个内置的网络级过滤器,称为HTTP连接管理器。该过滤器将原始字节转换为HTTP级别消息和事件(例如,接收到的头部,接收到的主体数据,接收的尾部等)。它还处理所有HTTP连接和访问记录,请求ID生成和跟踪,请求/响应头处理,路由表管理和统计等请求。


HTTP连接管理器配置。


HTTP协议

Envoy的HTTP连接管理器对HTTP / 1.1,WebSockets和HTTP / 2有本地支持。它不支持SPDY。Envoy的HTTP支持被设计为首先是一个HTTP / 2多路复用代理。在内部,使用HTTP / 2术语来描述系统组件。例如,HTTP请求和响应发生在一个流上。编解码器API用于将不同的有线协议转换为针对流,请求,响应等的协议不可知形式。在HTTP / 1.1的情况下,编解码器将协议的串行/流水线功能转换为看起来像HTTP / 2到更高层。这意味着大多数代码不需要了解流是源于HTTP / 1.1还是HTTP / 2连接。


HTTP头消毒

HTTP连接管理器出于安全原因执行各种头部消毒操作。


路由表配置

每个HTTP连接管理器过滤器都有一个关联的路由表。路由表可以通过以下两种方式之一来指定:


  • 静态。
  • 动态通过RDS API。
相关文章
|
3月前
|
人工智能 运维 安全
配置驱动的动态 Agent 架构网络:实现高效编排、动态更新与智能治理
本文所阐述的配置驱动智能 Agent 架构,其核心价值在于为 Agent 开发领域提供了一套通用的、可落地的标准化范式。
646 49
|
2月前
|
运维 监控 数据可视化
Python 网络请求架构——统一 SOCKS5 接入与配置管理
通过统一接入端点与标准化认证,集中管理配置、连接策略及监控,实现跨技术栈的一致性网络出口,提升系统稳定性、可维护性与可观测性。
|
3月前
|
人工智能 安全 数据可视化
配置驱动的动态Agent架构网络:实现高效编排、动态更新与智能治理
本文系统性地提出并阐述了一种配置驱动的独立运行时Agent架构,旨在解决当前低代码/平台化Agent方案在企业级落地时面临困难,为Agent开发领域提供了一套通用的、可落地的标准化范式。
381 18
配置驱动的动态Agent架构网络:实现高效编排、动态更新与智能治理
|
7月前
|
小程序 前端开发
2025商业版拓展校园圈子论坛网络的创新解决方案:校园跑腿小程序系统架构
校园跑腿小程序系统是一款创新解决方案,旨在满足校园配送需求并拓展校友网络。跑腿员可接单配送,用户能实时跟踪订单并评价服务。系统包含用户、客服、物流、跑腿员及订单模块,功能完善。此外,小程序增设信息咨询发布、校园社区建设和活动组织等功能,助力校友互动、经验分享及感情联络,构建紧密的校友网络。
278 1
2025商业版拓展校园圈子论坛网络的创新解决方案:校园跑腿小程序系统架构
|
7月前
|
人工智能 监控 安全
NTP网络子钟的技术架构与行业应用解析
在数字化与智能化时代,时间同步精度至关重要。西安同步电子科技有限公司专注时间频率领域,以“同步天下”品牌提供可靠解决方案。其明星产品SYN6109型NTP网络子钟基于网络时间协议,实现高精度时间同步,广泛应用于考场、医院、智慧场景等领域。公司坚持技术创新,产品通过权威认证,未来将结合5G、物联网等技术推动行业进步,引领精准时间管理新时代。
|
10月前
|
编解码 异构计算
RT-DETR改进策略【Neck】| BiFPN:双向特征金字塔网络-跨尺度连接和加权特征融合
RT-DETR改进策略【Neck】| BiFPN:双向特征金字塔网络-跨尺度连接和加权特征融合
708 10
RT-DETR改进策略【Neck】| BiFPN:双向特征金字塔网络-跨尺度连接和加权特征融合
|
4月前
|
Windows
电脑显示有问题,电脑连接不上网络,电脑没声音,电脑链接不上打印机?驱动人生就能解决所有问题
电脑显示有问题,电脑连接不上网络,电脑没声音,电脑链接不上打印机?驱动人生就能解决所有问题
95 0
|
8月前
|
人工智能 供应链 调度
|
7月前
|
机器学习/深度学习 算法 测试技术
图神经网络在信息检索重排序中的应用:原理、架构与Python代码解析
本文探讨了基于图的重排序方法在信息检索领域的应用与前景。传统两阶段检索架构中,初始检索速度快但结果可能含噪声,重排序阶段通过强大语言模型提升精度,但仍面临复杂需求挑战
228 0
图神经网络在信息检索重排序中的应用:原理、架构与Python代码解析
|
7月前
|
Cloud Native 区块链 数据中心
Arista CloudEOS 4.32.2F - 云网络基础架构即代码
Arista CloudEOS 4.32.2F - 云网络基础架构即代码
148 1

热门文章

最新文章