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

本文涉及的产品
交互式建模 PAI-DSW,5000CU*H 3个月
模型训练 PAI-DLC,5000CU*H 3个月
模型在线服务 PAI-EAS,A10/V100等 500元 1个月
简介: 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。
相关文章
|
26天前
|
Java 关系型数据库 MySQL
如何用java的虚拟线程连接数据库
本文介绍了如何使用Java虚拟线程连接数据库,包括设置JDK版本、创建虚拟线程的方法和使用虚拟线程连接MySQL数据库的示例代码。
31 6
如何用java的虚拟线程连接数据库
|
16天前
|
中间件 Go 数据处理
应用golang的管道-过滤器架构风格
【10月更文挑战第1天】本文介绍了一种面向数据流的软件架构设计模式——管道-过滤器(Pipe and Filter),并通过Go语言的Gin框架实现了一个Web应用示例。该模式通过将数据处理流程分解为一系列独立的组件(过滤器),并利用管道连接这些组件,实现了模块化、可扩展性和高效的分布式处理。文中详细讲解了Gin框架的基本使用、中间件的应用以及性能优化方法,展示了如何构建高性能的Web服务。
42 0
|
3月前
|
NoSQL 安全 Java
Lettuce的特性和内部实现问题之Lettuce连接与Jedis连接在线程安全性的问题如何解决
Lettuce的特性和内部实现问题之Lettuce连接与Jedis连接在线程安全性的问题如何解决
|
4月前
|
Java Spring
spring boot 中默认最大线程连接数,线程池数配置查看
spring boot 中默认最大线程连接数,线程池数配置查看
273 4
|
4月前
|
Kubernetes 关系型数据库 MySQL
网络基本管理
网络基本管理
40 6
|
4月前
|
文字识别 前端开发 API
印刷文字识别操作报错合集之通过HTTPS连接到OCR服务的API时报错,该如何处理
在使用印刷文字识别(OCR)服务时,可能会遇到各种错误。例如:1.Java异常、2.配置文件错误、3.服务未开通、4.HTTP错误码、5.权限问题(403 Forbidden)、6.调用拒绝(Refused)、7.智能纠错问题、8.图片质量或格式问题,以下是一些常见错误及其可能的原因和解决方案的合集。
|
3月前
|
安全 Nacos 数据安全/隐私保护
【技术干货】破解Nacos安全隐患:连接用户名与密码明文传输!掌握HTTPS、JWT与OAuth2.0加密秘籍,打造坚不可摧的微服务注册与配置中心!从原理到实践,全方位解析如何构建安全防护体系,让您从此告别数据泄露风险!
【8月更文挑战第15天】Nacos是一款广受好评的微服务注册与配置中心,但其连接用户名和密码的明文传输成为安全隐患。本文探讨加密策略提升安全性。首先介绍明文传输风险,随后对比三种加密方案:HTTPS简化数据保护;JWT令牌减少凭证传输,适配分布式环境;OAuth2.0增强安全,支持多授权模式。每种方案各有千秋,开发者需根据具体需求选择最佳实践,确保服务安全稳定运行。
247 0
|
4月前
|
监控 安全 网络安全
网络防线的构筑与维护:漏洞管理、加密技术与安全意识的协同进化
在数字时代的浪潮中,网络安全与信息安全的重要性愈发凸显。本文将探讨网络安全的薄弱环节—漏洞,并分析如何通过高效的漏洞管理来强化网络防御。同时,我们将深入了解加密技术的原理及其在保护数据安全中的应用。最后,文章强调了安全意识的核心地位,以及如何通过提升个人和组织的安全意识来构建更为坚固的网络安全防线。
|
6月前
|
存储 运维 5G
基于阿里云数据库 SelectDB 内核 Apache Doris 的实时/离线一体化架构,赋能中国联通 5G 全连接工厂解决方案
数据是 5G 全连接工厂的核心要素,为支持全方位的数据收集、存储、分析等工作的高效进行,联通 5G 全连接工厂从典型的 Lambda 架构演进为 All in [Apache Doris](https://c.d4t.cn/vwDf8R) 的实时/离线一体化架构,并凭借 Doris 联邦查询能力打造统一查询网关,数据处理及查询链路大幅简化,为联通 5G 全连接工厂带来数据时效性、查询响应、存储成本、开发效率全方位的提升。
基于阿里云数据库 SelectDB 内核 Apache Doris 的实时/离线一体化架构,赋能中国联通 5G 全连接工厂解决方案
|
4月前
|
安全 网络安全 区块链
网络防御新境界:漏洞管理、加密技术与安全意识的融合之道
在数字化浪潮中,网络安全成为保护企业资产和用户隐私的关键防线。本文深入探讨了网络安全漏洞的发现与管理、加密技术的最新进展以及提升个人和组织安全意识的重要性。通过分析近期的安全事件和技术发展,揭示了一个多层次、动态发展的网络防御体系的必要性。文章强调,只有将技术创新与人的要素相结合,才能构筑起真正坚固的网络安全防线。
48 0