## 集群
```
{
"name": "...",
"type": "...",
"connect_timeout_ms": "...",
"per_connection_buffer_limit_bytes": "...",
"lb_type": "...",
"ring_hash_lb_config": "{...}",
"hosts": [],
"service_name": "...",
"health_check": "{...}",
"max_requests_per_connection": "...",
"circuit_breakers": "{...}",
"ssl_context": "{...}",
"features": "...",
"http2_settings": "{...}",
"cleanup_interval_ms": "...",
"dns_refresh_rate_ms": "...",
"dns_lookup_family": "...",
"dns_resolvers": [],
"outlier_detection": "{...}"
}
```
- **name**<br />
(required, string) 群集名稱,所提供群集名稱在所有群集中必須唯一。發布統計信息時會使用集群名稱。默認情況下,群集名稱的最大長度限制為60個字符。可通過`--max-obj-name-len`命令行參數設置為所需的值,以提高此限制。
- **type**<br />
(required, string) 用于解析集群的[服務發現類型](../../Introduction/Architectureoverview/Servicediscovery.md)。可能的選項有`static`,`strict_dns`,`logical_dns`,`original_dst`和`sds`。
- **connect_timeout_ms**<br />
(required, integer) 指定群集中主機網絡連接超時時間,以毫秒為單位。
- **per_connection_buffer_limit_bytes**<br />
(optional, integer) 集群連接的讀寫緩沖區大小限制。如果未指定,則默認值(1MB)。
- **lb_type**<br />
(required, string) 在集群中選擇主機時使用的[負載均衡器類型](../../Introduction/Architectureoverview/Loadbalancing.md)。可能的選項有`round_robin`,`least_request`,`ring_hash`,`random`和`original_dst_lb`。請注意,`original_dst_lb`必須與`original_dst`類型的集群一起使用,并且不能與其他任集群類型一起使用。
- **ring_hash_lb_config**<br />
(optional, object) 可選的[環哈希負載均衡器](Cluster/Ringhashloadbalancerconfiguration.md)配置,當`lb_type`設置為`ring_hash`時使用。
- **hosts**<br />
(sometimes required, array) 如果服務發現類型是`static`,`strict_dns`或`logical_dns`,則主機數組是必需的。主機數組不支持`original_dst`集群類型。指定方式由服務發現類型決于:
- **static**<br />
靜態集群,必須使用完整解析主機,不需要DNS查找。支持TCP和unix域套接字(UDS)地址。
一個TCP地址如下所示:<br />
```
tcp://<ip>:<port>
```
一個UDS地址如下所示:<br />
```
unix://<file name>
```
以下示例指定地址列表:<br />
```
[{"url": "tcp://10.0.0.2:1234"}, {"url": "tcp://10.0.0.3:5678"}]
```
- **strict_dns**<br />
嚴格DNS群集類型,可以指定任意數量的主機名、端口組合。將使用DNS解析所有名稱,并組合在一起形成最終的群集。如果相同的名字返回多個記錄,則所有將被使用。例如:
```
[{"url": "tcp://foo1.bar.com:1234"}, {"url": "tcp://foo2.bar.com:5678"}]
```
- **logical_dns**<br />
邏輯DNS群集類型,指定主機名稱方式與嚴格DNS非常類似,但只有第一個主機將被使用。例如:
```
[{"url": "tcp://foo1.bar.com:1234"}]
```
- **service_name**<br />
(sometimes required, string) 如果服務發現類型是[sds](../Clustermanager/Servicediscoveryservice.md),則此參數是必需的。當獲取集群成員時,它將被傳遞給SDS API。
- **health_check**<br />
(optional, object) 可選的群集主動[健康檢查配置](Cluster/Healthchecking.md)。如果未指定配置,則不會執行健康檢查,并且所有群集成員都將始終處于健康狀態。
- **max_requests_per_connection**<br />
(optional, integer) 可選的單個上游連接的最大請求數。HTTP/1.1和HTTP/2連接池,都遵循此參數。如果沒有指定,則沒有限制。將此參數設置為1,將有效地禁用保活狀態的請求。
- **circuit_breakers**<br />
(optional, object) 可選的群集[熔斷配置](Cluster/Circuitbreakers.md)。
- **ssl_context**<br />
(optional, object) 上游群集的[TLS配置](Cluster/TLScontext.md)。如果沒有指定TLS配置,則新的連接將不會使用TLS。
- **features**<br />
(optional, string) 上游群集支持的功能,以逗號分隔的字符串列表。目前支持的功能為:
- **http2**<br />
如果指定了http2,Envoy將假定在建立新的HTTP連接時,支持HTTP/2。目前,Envoy僅支持上游連接的預知。即使TLS與ALPN一起使用,也必須指定http2。另外,這允許通過純文本建立HTTP/2連接。
- **http2_settings**<br />
(optional, object) 在啟動HTTP連接池時,直接傳遞給HTTP/2編解碼器的相關設置。這些與HTTP連接管理器[http2_settings](../../v1APIreference/Networkfilters/HTTPconnectionmanager.md)選項相同。
- **cleanup_interval_ms**<br />
(optional, integer) 從`original_dst`集群類型中刪除舊主機的時間間隔。如果主機在這段時間內,沒有被用作上游目的地址,則認為它們是舊的。隨著重定向到Envoy的新連接,新的主機被按需添加到原始目標集群中,從而導致集群中的主機數量隨著時間而增長。若沒有舊主機(它們被主動用作目的地址)被保存在群集中,從而允許與它們的連接保持打開狀態,從而節省了打開新連接所花費的等待時間。如果未指定此設置,則默認為5000.對于`original_dst`以外的群集類型,此設置將被忽略。
- **dns_refresh_rate_ms**<br />
(optional, integer) 如果指定了dns刷新率,并且群集類型為`strict_dns`或`logical_dns`,則將此值用作群集的dns刷新率。如果未指定此設置,則該值默認為5000。對于`strict_dns`和`logical_dns`以外的群集類型,此設置將被忽略。
- **dns_lookup_family**<br />
(optional, string) DNS IP地址解析策略。選項為`v4_only`,`v6_only`和`auto`。如果未指定此設置,則該值默認為`v4_only`。當選擇`v4_only`時,DNS解析器將僅執行IPv4系列的地址查找。如果選擇`v6_only`,則DNS解析程序將僅執行IPv6系列的地址查找。如果指定了`auto`,則DNS解析器將首先執行IPv6系列的地址查找操作,并然會再回到IPv4系列的地址查找。對于`strict_dns`和`logical_dns`以外的集群類型,該設置將被忽略。
- **dns_resolvers**<br />
(optional, array) 如果指定DNS解析程序,并且群集類型是`strict_dns`或`logical_dns`,則此值用于指定群集的dns解析程序。如果未指定此設置,則該值默認為使用`/etc/resolv.conf`配置的默認解析器。對于除`strict_dns`和`logical_dns`以外的集群類型,此設置將被忽略。
- **outlier_detection**<br />
(optional, object) 如果指定,則會為此上游群集啟用[異常值檢測](Cluster/Outlierdetection.md)。有關異常值檢測的更多信息,請參閱相應[架構概述](../../Introduction/Architectureoverview/Outlierdetection.md)。
### 子章節
- [健康檢查](Cluster/Healthchecking.md)
- [熔斷](Cluster/Circuitbreakers.md)
- [TLS上下文](Cluster/TLScontext.md)
- [異常值檢測](Cluster/Outlierdetection.md)
- [環哈希負載均衡配置](Cluster/Ringhashloadbalancerconfiguration.md)
## 返回
- [上一級](../Clustermanager.md)
- [首頁目錄](../../README.md)
- 首頁
- 簡介
- Envoy是什么
- 架構介紹
- 術語
- 線程模型
- 監聽器
- L3/L4網絡過濾器
- HTTP連接管理
- HTTP過濾器
- HTTP路由
- gRPC
- WebSocket支持
- 集群管理
- 服務發現
- 健康檢查
- 連接池
- 負載均衡
- 異常檢測
- 熔斷
- 全局限速
- TLS
- 統計
- 運行時配置
- 跟蹤
- TCP代理
- 訪問日志
- MongoDB
- DynamoDB
- Redis
- 熱重啟
- 動態配置
- 初始化
- 逐出
- 腳本
- 部署
- 業界對比
- 獲得幫助
- 歷史版本
- 編譯安裝
- 編譯
- 參考配置
- 演示沙箱
- 前端代理
- Zipkin跟蹤
- Jaeger跟蹤
- gRPC橋接
- 構建Envoy Docker鏡像
- 工具
- 配置參考
- V1 API 概述
- V2 API 概述
- 監聽器
- 網絡過濾器
- TLS客戶端身份認證
- Echo
- Mongo代理
- 速率限制
- Redis代理
- TCP代理
- HTTP連接管理器
- 路由匹配
- 流量轉移/分流
- HTTP頭部操作
- HTTP頭部清理
- 統計
- 運行時設置
- 路由發現服務
- HTTP過濾器
- 緩存
- CORS過濾器
- 故障注入
- DynamoDB
- gRPC HTTP/1.1 橋接
- gRPC-JSON 轉碼過濾器
- gRPC-Web 過濾器
- 健康檢查
- 速率限制
- 路由
- Lua
- 集群管理
- 統計
- 運行時設置
- 集群發現服務
- 健康檢查
- 熔斷
- 訪問日志
- 限速服務
- 運行時配置
- 路由表檢查工具
- 運維管理
- 命令行選項
- 熱重啟
- 管理接口
- 統計概述
- 運行時配置
- 文件系統
- 自定義擴展示例
- V1 API參考
- 監聽器
- 網絡過濾器
- TLS客戶端身份認證
- Echo
- HTTP連接管理
- Mongo代理
- 速率限制
- Redis代理
- TCP代理
- HTTP路由配置
- 虛擬主機
- 路由
- 虛擬集群
- 速率限制配置
- 路由發現服務
- HTTP過濾器
- 緩存
- CORS過濾器
- DynamoDB
- 故障注入
- gRPC HTTP/1.1 橋接
- gRPC-JSON 轉碼過濾器
- gRPC-Web 過濾器
- 健康檢查
- Lua
- 速率限制
- 路由
- 集群管理
- 集群
- 健康檢查
- 熔斷
- TLS上下文
- 異常值檢測
- HASH環負載均衡配置
- 異常檢測
- 集群發現服務
- 服務發現服務
- 訪問日志
- 管理接口
- 限速服務
- 運行時配置
- 跟蹤
- V2 API參考
- 啟動引導
- 監聽&監聽發現
- 集群&集群發現
- 服務發現
- 健康檢查
- HTTP路由管理&發現
- TLS配置
- 通用的類型
- 網絡地址
- 協議選項
- 發現API
- 限速組件
- 過濾器
- 網絡過濾器
- TLS客戶端身份認證
- HTTP連接管理
- Mongo代理
- 速率限制
- Redis代理
- TCP代理
- HTTP過濾器
- 緩存
- 故障注入
- 健康檢查
- Lua
- 速率限制
- 路由
- gRPC-JSON轉碼器
- 常見訪問日志類型
- 常見故障注入類型
- FAQ
- Envoy有多快?
- 我在哪里獲得二進制文件?
- 我如何設置SNI?
- 如何設置區域感知路由?
- 我如何設置Zipkin跟蹤?