Redis 集群設定 (proto)

此擴充功能的完整名稱為 envoy.clusters.redis

注意

此擴充功能尚未強化,僅應在下游和上游皆受信任的部署中使用。

提示

此擴充功能擴展了以下擴充功能類別,並可與之一起使用

此叢集增加了對 Redis 集群 的支援,作為 Envoy 對 Redis 集群的支援 的一部分。

Redis 集群是 Redis 的擴展,它支援分片和高可用性(當失去主節點的分片故障轉移到複本時,並將其指定為新的主節點)。但是,由於 Redis 集群前面沒有統一的前端或代理服務,因此用戶端(在本例中為 Envoy)必須在本機維護 Redis 集群的狀態,特別是拓撲。使用 CLUSTER SLOTS 指令,查詢叢集中的隨機節點以取得拓撲。然後將此結果儲存在本機,並以使用者設定的間隔更新。

此外,如果 enable_redirection 為 true,則來自上游伺服器的 moved 和 ask 重新導向錯誤,在超過使用者設定的錯誤閾值時,將觸發拓撲重新整理。

範例

name: name
connect_timeout: 0.25s
dns_lookup_family: V4_ONLY
hosts:
- socket_address:
  address: foo.bar.com
  port_value: 22120
cluster_type:
name: envoy.clusters.redis
typed_config:
  "@type": type.googleapis.com/google.protobuf.Struct
  value:
    cluster_refresh_rate: 30s
    cluster_refresh_timeout: 0.5s
    redirect_refresh_interval: 10s
    redirect_refresh_threshold: 10

extensions.clusters.redis.v3.RedisClusterConfig

[extensions.clusters.redis.v3.RedisClusterConfig proto]

{
  "cluster_refresh_rate": {...},
  "cluster_refresh_timeout": {...},
  "redirect_refresh_interval": {...},
  "redirect_refresh_threshold": {...},
  "failure_refresh_threshold": ...,
  "host_degraded_refresh_threshold": ...
}
cluster_refresh_rate

(Duration) 連續拓撲重新整理請求之間的間隔。如果未設定,則預設為 5 秒。

cluster_refresh_timeout

(Duration) 拓撲重新整理請求的逾時時間。如果未設定,則預設為 3 秒。

redirect_refresh_interval

(Duration) 觸發拓撲重新整理請求後,必須經過的最短間隔,之後才能再次觸發新的請求。在此時間間隔內收到的任何錯誤都將被忽略。如果未設定,則預設為 5 秒。

redirect_refresh_threshold

(UInt32Value) 必須接收到重新導向錯誤的數量,才能觸發拓撲重新整理請求。如果未設定,則預設為 5。如果設定為 0,則禁用重新導向後的拓撲重新整理。

failure_refresh_threshold

(uint32) 必須接收到失敗的數量,才能觸發拓撲重新整理請求。如果未設定,則預設為 0,這會禁用因失敗而觸發的拓撲重新整理。

host_degraded_refresh_threshold

(uint32) 在觸發拓撲重新整理請求之前,變成降級或不健康的主機數量。如果未設定,則預設為 0,這會禁用因降級或不健康的主機而觸發的拓撲重新整理。