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_config和trds两者都是无效的。
- trds
(extensions.filters.network.thrift_proxy.v3.Trds) 使用 xDS 获取路由配置。定义
route_config和trds两者都是无效的。
- 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 紧凑协议。
Thrift 代理将使用 finagle 库实现的 Thrift“Twitter”协议。