ASMCompressor CRD说明

在ASM中,ASMCompressor用于进行压缩设置。本文介绍ASMCompressor的字段说明。

ASMCompressor配置

字段

类型

是否必选

说明

workloadSelector

map<string, string>

通过一个或多个标签,指明配置生效的一组特定的Pod。标签搜索的范围限制在资源所在的配置命名空间。更多信息,请参见WorkloadSelector

isGateway

bool

配置为true,表示配置作用于网关。默认为false。

portNumber

int

对应的服务端口。如果关联网关,对应该网关定义的端口值。

compressor_library

CompressorLibrary

压缩库配置。

request_direction_config

RequestDirectionConfig

请求方向配置。

response_direction_config

ResponseDirectionConfig

响应方向配置。

per_route_configs

ASMCompressorPerRouteConfig

路由级别的压缩配置(ASM1.21开始支持)。

CompressorLibrary压缩库配置

字段

类型

是否必选

说明

gzip

GzipCompressor

Gzip压缩配置。

brotli

BrotliCompressor

Brotli压缩配置。

GzipCompressor压缩配置

字段

类型

是否必选

说明

默认值

window_bits

int

窗口位大小,取值为[9,15]。取值越大,压缩效果越好,但内存消耗越大。

12

compression_level

string

压缩级别,将影响压缩速度和压缩大小。取值:

  • BEST:高压缩,高延迟。

  • SPEED:低压缩,低延迟。

  • DEFAULT:优化的压缩,将介于BEST和SPEED之间。

DEFAULT

memory_level

int

内存级别,取值为[1,9]。控制压缩库内存的使用量,值越高内存消耗越大,但是压缩速度更快,压缩结果更好。

5

compression_strategy

string

用于选择zlib压缩策略的值,该策略与内容的特性直接相关。取值:

  • DEFAULT_STRATEGY:表示默认的压缩策略。这种策略由zlib库根据输入数据的特性自动选择,以获得最佳的压缩效果。

  • FILTERED:表示使用带过滤器的压缩策略。这种策略通常用于多次压缩数据流,以提高压缩比。

  • HUFFMAN_ONLY:表示仅使用Huffman编码的压缩策略。这种策略通常用于只使用Huffman编码而不使用LZ77算法的情况。

  • RLE:表示使用行程编码(Run-Length Encoding)的压缩策略。这种策略通常用于具有大量连续重复字符或连续重复模式的数据。

  • FIXED:表示使用固定字典的压缩策略。这种策略通常用于特定数据模式的压缩,其中压缩字典事先已知或预定义。

DEFAULT_STRATEGY

BrotliCompressor压缩配置

字段

类型

是否必选

说明

默认值

window_bits

int

窗口位大小,取值为[10,24]。取值越大,压缩效果越好,但内存消耗越大。

18

quality

int

控制压缩速度,取值为[0,11]。质量越高,压缩速度越慢。

3

RequestDirectionConfig请求方向配置

字段

类型

是否必选

说明

默认值

common_config

CommonConfig

请求方向上过滤器行为的配置。

ResponseDirectionConfig响应方向配置

字段

类型

是否必选

说明

默认值

common_config

CommonConfig

响应方向上过滤器行为的配置。

disable_on_etag_header

bool

如果为true,当响应包含etag标头时禁用压缩。

false

remove_accept_encoding_header

bool

如果为true,在将请求标头分派到上游之前从请求标头中删除接受编码,以便响应在到达过滤器之前不会被压缩。

false

CommonConfig配置

字段

说明

默认值

min_content_length

启用压缩的内容最小长度。需要进行多次请求试验才能找到最适合的配置最佳值。Gzip压缩是一种依赖更多的CPU来换取压缩的方式,并可能带来更多的延迟。

content_type

对哪些类型启用压缩。

“application/javascript”, “application/json”, “application/xhtml+xml”, “image/svg+xml”, “text/css”, “text/html”, “text/plain”, “text/xml”

ASMCompressorPerRouteConfig路由级别配置

字段

类型

是否必须

说明

route_match

RouteConfigurationMatch

选择生效的具体路由。

disabled

bool

默认false。为true时,会为指定路由禁用压缩功能。

RouteConfigurationMatch选择具体路由

字段

类型

是否必须

说明

portNumber

uint32

服务端口或者网关规则中server的端口。如果是空,则视为匹配所有端口。

portName

string

只有当应用在网关上时才生效。可以在这里指定网关规则中server的portName

gateway

string

指定网关规则的命名空间和名称,格式为namespace/name。只有当应用在网关上时才可以配置这个字段。将这个字段和portName以及portNumber配合使用,可以准确的选中一个网关规则中的server。

vhost

CommonVirtualHostMatch

匹配一个virtual host。

name

string

要匹配的route configuration的名称。该配置需要对envoy配置比较熟悉。

CommonVirtualHostMatch匹配具体vhost

字段

类型

是否必须

说明

name

string

控制面最终生成的VirtualHosts名称,格式为host:port。其中host对应VirtualService的host字段或者集群中的Service名称(FQDN)。

route

CommonRouteMatch

匹配vhost中一个具体路由。

CommonRouteMatch匹配vhost中具体的route

字段

类型

是否必须

说明

name

string

默认生成的route名称为default。如果配置了VirtualService,则需要填写其中HTTP route的名称。

action

string

匹配指定的action类型。可选的值为:ROUTE、REDIRECT、DIRECT_RESPONSE以及ANY。默认为ANY。

相关文档

使用ASMCompressor定义应用服务间调用的压缩配置