动态转发代理通用配置 (proto)
extensions.common.dynamic_forward_proxy.v3.DnsCacheCircuitBreakers
[extensions.common.dynamic_forward_proxy.v3.DnsCacheCircuitBreakers proto]
解析器的断路器配置。
{
"max_pending_requests": {...}
}
- max_pending_requests
(UInt32Value) Envoy 允许解析器进行的最大待处理请求数。 如果未指定,则默认为 1024。
extensions.common.dynamic_forward_proxy.v3.DnsCacheConfig
[extensions.common.dynamic_forward_proxy.v3.DnsCacheConfig proto]
动态转发代理 DNS 缓存的配置。 有关更多信息,请参阅架构概述。
{
"name": ...,
"dns_lookup_family": ...,
"dns_refresh_rate": {...},
"dns_min_refresh_rate": {...},
"host_ttl": {...},
"max_hosts": {...},
"dns_failure_refresh_rate": {...},
"dns_cache_circuit_breaker": {...},
"use_tcp_for_dns_lookups": ...,
"dns_resolution_config": {...},
"typed_dns_resolver_config": {...},
"preresolve_hostnames": [],
"dns_query_timeout": {...},
"key_value_config": {...}
}
- name
(string, REQUIRED) 缓存的名称。 多个命名缓存允许独立的动态转发代理配置使用不同的配置在单个 Envoy 进程中运行。 所有具有相同名称的配置必须在从不同配置组件引用时具有相同的设置。 如果情况并非如此,配置将无法加载。
- dns_lookup_family
(config.cluster.v3.Cluster.DnsLookupFamily) 解析期间要使用的 DNS 查找族。
- dns_refresh_rate
(Duration) 未解析 DNS 主机的 DNS 刷新率。 如果未指定,则默认为 60 秒。
刷新率四舍五入到最接近的毫秒,并且必须至少为 1 毫秒。
一旦主机被解析,刷新率将是 DNS TTL,上限为
dns_min_refresh_rate
的最小值。
- dns_min_refresh_rate
(Duration) DNS 解析将发生的最小速率。 按照
dns_refresh_rate
,一旦主机被解析,DNS TTL 将被使用,最小值由dns_min_refresh_rate
设置。dns_min_refresh_rate
默认为 5 秒,并且必须也 >= 1 秒。
- host_ttl
(Duration) 未使用的主机的 TTL。 在配置的时间间隔内未使用的主机将被清除。 如果未指定,则默认为 5 分钟。
- max_hosts
(UInt32Value) 缓存将保存的主机最大数量。 如果未指定,则默认为 1024。
- dns_failure_refresh_rate
(config.cluster.v3.Cluster.RefreshRate) 如果指定 DNS 失败刷新率,则在 DNS 请求失败时将其用作缓存的 DNS 刷新率。 如果未指定此设置,则失败刷新率默认为 dns_refresh_rate。
- dns_cache_circuit_breaker
(extensions.common.dynamic_forward_proxy.v3.DnsCacheCircuitBreakers) 解析器的断路器配置。 它提供了一个可配置的阈值。 即使未设置此值,Envoy 也会使用默认设置的 dns 缓存断路器。
- use_tcp_for_dns_lookups
(bool) 始终使用 TCP 查询而不是 UDP 查询来执行 DNS 查找。 此字段已弃用,取而代之的是
dns_resolution_config
,它在单个消息中聚合所有 DNS 解析器配置。
- dns_resolution_config
(config.core.v3.DnsResolutionConfig) DNS 解析配置,包括底层 dns 解析器地址和选项。 此字段已弃用,取而代之的是 typed_dns_resolver_config.
- typed_dns_resolver_config
(config.core.v3.TypedExtensionConfig) DNS 解析器类型配置扩展。 此扩展可用于配置 c-ares、apple 或任何其他 DNS 解析器类型以及相关参数。 例如,一个 CaresDnsResolverConfig 对象可以打包到此
typed_dns_resolver_config
中。 此配置替换 dns_resolution_config 配置。 在dns_resolution_config
和typed_dns_resolver_config
都存在时的过渡期,当typed_dns_resolver_config
就位时,Envoy 将使用它并忽略dns_resolution_config
。 当typed_dns_resolver_config
丢失时,默认行为就位。
- preresolve_hostnames
(repeated config.core.v3.SocketAddress) 在创建时应该预先解析到缓存中的主机名。 这可能会在缓存命中方面提供性能改进,因为这些主机名将在稳定状态期间被解析,并且在配置加载时已知。
- dns_query_timeout
(Duration) 用于 DNS 查询的超时时间。 此超时时间独立于底层 DNS 实现(例如,c-areas 和 Apple DNS)使用的任何超时时间和重试策略,这些策略是不透明的。 设置此超时时间将确保查询在指定的时间范围内成功或失败,然后使用标准刷新率重试。 默认为 5 秒(如果未设置)。
- key_value_config
(config.common.key_value.v3.KeyValueStoreConfig) 将 DNS 缓存刷新到长期存储的配置。