Thrift 代理 (proto)

此扩展的限定名称为 envoy.filters.network.thrift_proxy

注意

此扩展未经过强化,应仅在上下游都受信任的部署中使用。

提示

此扩展扩展并可用于以下扩展类别

此扩展必须配置以下类型 URL 之一

Thrift 代理 配置概述.

extensions.filters.network.thrift_proxy.v3.Trds

[extensions.filters.network.thrift_proxy.v3.Trds proto]

{
  "config_source": {...},
  "route_config_name": ...
}
config_source

(config.core.v3.ConfigSource, 必需) 配置源规范。如果为 api_config_source,则仅支持聚合的 api_type

route_config_name

(string) 路由配置的名称。这允许使用不同的路由配置。指示应从配置源获取哪个路由配置。未指定也是有效的,这意味着未命名的路由配置。

extensions.filters.network.thrift_proxy.v3.ThriftProxy

[extensions.filters.network.thrift_proxy.v3.ThriftProxy proto]

{
  "transport": ...,
  "protocol": ...,
  "stat_prefix": ...,
  "route_config": {...},
  "trds": {...},
  "thrift_filters": [],
  "payload_passthrough": ...,
  "max_requests_per_connection": {...},
  "access_log": [],
  "header_keys_preserve_case": ...
}
transport

(extensions.filters.network.thrift_proxy.v3.TransportType) 提供 Thrift 代理应使用的传输类型。默认为 AUTO_TRANSPORT.

protocol

(extensions.filters.network.thrift_proxy.v3.ProtocolType) 提供 Thrift 代理应使用的协议类型。默认为 AUTO_PROTOCOL.

stat_prefix

(string, 必需) 在发出统计信息时使用的可读前缀。

route_config

(extensions.filters.network.thrift_proxy.v3.RouteConfiguration) 连接管理器路由表是静态的,在此属性中指定。定义 route_configtrds 两者都是无效的。

trds

(extensions.filters.network.thrift_proxy.v3.Trds) 使用 xDS 获取路由配置。定义 route_configtrds 两者都是无效的。

thrift_filters

(重复 extensions.filters.network.thrift_proxy.v3.ThriftFilter) 构成对 Thrift 代理发出的请求的过滤器链的各个 Thrift 过滤器的列表。顺序很重要,因为过滤器按顺序处理。为了向后兼容,如果没有指定 thrift_filters,则使用默认的 Thrift 路由器过滤器 (envoy.filters.thrift.router)。

payload_passthrough

(bool) 如果设置为 true,Envoy 将尝试在 Thrift 消息中的元数据后跳过解码数据。此模式仅在上下游协议相同且传输为 Framed 或 Header 且协议不为 Twitter 时才有效。否则,Envoy 将回退到解码数据。

max_requests_per_connection

(UInt32Value) 单个下游连接的可选最大请求数。如果未指定,则没有限制。

access_log

(重复 config.accesslog.v3.AccessLog) Thrift 代理发出的 访问日志 的配置。

header_keys_preserve_case

(bool) 如果设置为 true,Envoy 将保留 Thrift 报头键的大小写,而不是根据默认行为将其序列化为小写。请注意,NUL、CR 和 LF 字符也将按 Thrift 规范的要求保留。

更多信息:https://github.com/apache/thrift/commit/e165fa3c85d00cb984f4d9635ed60909a1266ce1.

extensions.filters.network.thrift_proxy.v3.ThriftFilter

[extensions.filters.network.thrift_proxy.v3.ThriftFilter proto]

ThriftFilter 配置 Thrift 过滤器。

{
  "name": ...,
  "typed_config": {...}
}
name

(string, 必需) 要实例化的过滤器的名称。名称必须与支持的过滤器匹配。内置过滤器是

typed_config

(Any) 依赖于正在实例化的过滤器的过滤器特定配置。有关更多文档,请参阅支持的过滤器。

extensions.filters.network.thrift_proxy.v3.ThriftProtocolOptions

[extensions.filters.network.thrift_proxy.v3.ThriftProtocolOptions proto]

ThriftProtocolOptions 指定 Thrift 上游协议选项。此对象用于 typed_extension_protocol_options,并使用名称 envoy.filters.network.thrift_proxy 作为键。

{
  "transport": ...,
  "protocol": ...
}
transport

(extensions.filters.network.thrift_proxy.v3.TransportType) 为上游连接提供 Thrift 代理应使用的传输类型。选择 AUTO_TRANSPORT(这是默认值)将导致代理使用与下游连接相同的传输。

protocol

(extensions.filters.network.thrift_proxy.v3.ProtocolType) 为上游连接提供 Thrift 代理应使用的协议类型。选择 AUTO_PROTOCOL(这是默认值)将导致代理使用与下游连接相同的协议。

枚举 extensions.filters.network.thrift_proxy.v3.TransportType

[extensions.filters.network.thrift_proxy.v3.TransportType proto]

Envoy 支持的 Thrift 传输类型。

AUTO_TRANSPORT

(默认) ⁣对于下游连接,Thrift 代理将尝试确定要使用的传输。对于上游连接,Thrift 代理将使用与下游连接相同的传输。

FRAMED

⁣Thrift 代理将使用 Thrift 帧传输。

UNFRAMED

⁣Thrift 代理将使用 Thrift 无帧传输。

HEADER

⁣Thrift 代理将假定客户端使用 Thrift 标头传输。

枚举 extensions.filters.network.thrift_proxy.v3.ProtocolType

[extensions.filters.network.thrift_proxy.v3.ProtocolType proto]

Envoy 支持的 Thrift 协议类型。

AUTO_PROTOCOL

(默认) ⁣对于下游连接,Thrift 代理将尝试确定要使用的协议。请注意,较旧的非严格(或宽松)二进制协议不包含在自动协议检测中。对于上游连接,Thrift 代理将使用与下游连接相同的协议。

BINARY

⁣Thrift 代理将使用 Thrift 二进制协议。

LAX_BINARY

⁣Thrift 代理将使用 Thrift 非严格二进制协议。

COMPACT

⁣Thrift 代理将使用 Thrift 紧凑协议。

TWITTER

⁣Thrift 代理将使用 finagle 库实现的 Thrift“Twitter”协议。