网络 (L3/L4) 过滤器

如在 监听器 部分的描述一样,网络层 (L3/L4) 过滤器构成了 Envoy 连接处理的核心。 过滤器 API 允许混合不同的过滤器组合,并匹配和附加到给定的监听器。 下面就有三种不同的网络过滤器:

  • 读取: 当 Envoy 从下游连接接收数据时,将会调用读取过滤器。

  • 写入: 当 Envoy 将要向下游发送数据时,将会调用写入过滤器。

  • 读取/写入: 读取/写入过滤器会在 Envoy 从下游连接接收数据或者向下游连接写入数据时都会被调用。

网络层过滤器的 API 都相对简单,因为过滤器最终会对原始字节和少量连接事件进行操作(比如 TLS 握手完成、本地或远程断开连接)。 可停止链中的过滤器并继续执行后续的过滤器。 这允许去应对更复杂的业务场景,比如调用 限速服务 。 同时网络筛选器可以在单个下游连接的上下文中彼此共享状态(静态和动态)。 有关其他的信息,可以参考 过滤器之间的数据共享 。 Envoy 现在已经有好几个网络过滤器,这些过滤器在本体系架构概述和 配置参考 中都有记录。