深入解析 Envoy ext_proc 外部处理过滤器

本文详细介绍了 Envoy 的 ext_proc 外部处理过滤器的功能、配置与性能优化策略。通过示例演示,展示了如何配置 Envoy 与实现外部处理服务器,帮助开发人员灵活处理请求与响应。

阅读原文请转到:https://jimmysong.io/blog/envoy-ext-proc-guide/

在微服务架构中,API 网关通常需要对请求和响应进行高级别的处理,如身份验证、数据转换和安全检查。Envoy 提供的 ext_proc 外部处理过滤器,是一个强大的工具,通过与 gRPC 服务交互,实现灵活的请求与响应处理。本文将深入解析该过滤器的功能、配置与性能优化策略,帮助开发人员和 DevOps 工程师高效应用该特性。

ext_proc 与其他过滤器的关系

ext_proc[1] 和 Envoy 中的其他 gRPC 接口过滤器(如 ext_authz[2])在功能上有相似之处,但 ext_proc 提供了更强大的功能,支持完整的请求和响应处理。这使其特别适用于需要深度内容检查和修改的应用场景。

你可以通过下面的 Envoy 外部处理过滤器思维导图快速了解 ext_proc

ea6d2de2c060e7896d0d2984a6fe28b9.png

Envoy ext_proc 思维导图

这张思维导图展示了 Envoy ext_proc 外部处理过滤器的核心结构和功能模块。ext_proc 通过 gRPC 双向流协议与外部服务交互,可灵活处理 HTTP 请求和响应的各个阶段,并支持同步与异步处理。

ext_proc 工作原理与配置

定义与功能

ext_proc 是 Envoy 提供的 HTTP 过滤器,支持将请求和响应外包给 gRPC 服务进行处理,允许在外部服务中实现复杂的逻辑,灵活应对业务需求。

工作原理

ext_proc 通过双向 gRPC 流协议与外部处理服务进行通信,Envoy 发送 ProcessingRequest 消息,外部服务返回 ProcessingResponse 消息。这种设计允许外部服务在请求和响应生命周期内的各个阶段干预消息,甚至生成全新的响应。以下是该过程的图表示:

2bd0bd7f3d1caeedaf0c6780748a6711.png

关键功能

  • • 请求和响应处理:读取和修改 HTTP 请求和响应的头部、主体和尾部。

  • • 灵活性:根据业务需求定义自定义逻辑,弥补内置功能的不足。

  • • 异步处理:支持异步处理模式,防止请求阻塞。

配置示例

以下是一个基本的 Envoy 配置示例:

static_resources:
  listeners:
  - name: listener_0
    address:
      socket_address:
        protocol: TCP
        address: 0.0.0.0
        port_value: 8080
    filter_chains:
    - filters:
      - name: envoy.filters.network.http_connection_manager
        typed_config:
          "@type": type.googleapis.com/envoy.extensions.filters.network.http_conne
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值