负载均衡接口
更新时间:2026-10-27
创建负载均衡
Go
1cli := GetDefaultClient()
2resp, err := cli.CreateLoadBalance(&api.LoadBalanceRequest{
3 SiteId: 1,
4 Name: "test",
5 DispatchMode: "priority_mode", // 主备调度;加权轮询用 "weight_mode"
6 SessionMode: "IP", // 会话保持,或 "OFF"
7 DetectConfig: &api.DetectConfig{
8 HealthCheckType: "ICMP",
9 ProbeInterval: 10,
10 ProbeMinSuccesses: 5,
11 ProbeMaxFails: 5,
12 ProbeTimeout: 3,
13 },
14 OriginPoolIds: []string{"geo_fIyyiMbsYCtl", "geo_BE4APhb3xOC7"},
15 FallbackOriginPoolId: "geo_fIyyiMbsYCtl",
16})
17result, _ := json.Marshal(resp)
18fmt.Printf("result: %s\n", result)
19fmt.Printf("err:%+v\n", err)
api.LoadBalanceRequest 字段说明:
| 字段 | 类型 | 是否必选 | 说明 |
|---|---|---|---|
| SiteId | Int | 是 | 负载均衡所属站点 ID。 |
| Name | String | 是 | 负载均衡名称,支持 a-z、A-Z、0-9、_、*、-,长度限制 200。 |
| DispatchMode | String | 是 | 负载均衡策略:priority_mode(主备调度)或 weight_mode(加权轮询)。 |
| SessionMode | String | 是 | 会话保持:IP 或 OFF。 |
| DetectConfig | *api.DetectConfig | 是 | 健康探测配置。 |
| OriginPoolIds | []String | 是 | 源站池 ID 数组。主备调度时顺序表示优先级。 |
| Weights | []Int | 否 | 源站池权重,weight_mode 时必传,与 OriginPoolIds 一一对应。 |
| FallbackOriginPoolId | String | 否 | 兜底源站池 ID,不设置则不传。 |
api.DetectConfig 字段说明:
| 字段 | 类型 | 是否必选 | 说明 |
|---|---|---|---|
| HealthCheckType | String | 否 | 健康探测类型:ICMP、TCP、UDP、OFF;HTTP/HTTPS 类型时无需传。 |
| ProbeInterval | Int | 是 | 探测间隔,10-3600,单位秒。 |
| ProbeMinSuccesses | Int | 是 | 健康阈值,最小成功阈值 1-5,需与最大失败阈值一致。 |
| ProbeMaxFails | Int | 是 | 最大失败阈值 1-5,需与最小成功阈值一致。 |
| ProbeTimeout | Int | 是 | 探测超时时间,合法值固定为 3。 |
| ProbeSucceedCode | String | 否 | 状态码:1xx/2xx/3xx/4xx/5xx,HTTP/HTTPS 时必填。 |
| ProbeUrl | String | 否 | 探测路径,HTTP/HTTPS 时必填,如 /health/test.txt。 |
| ProbeMethod | String | 否 | 探测请求方法,HTTP/HTTPS 时必填,其合法值为 GET。 |
| CheckData | String | 否 | 探测请求内容,500 字符内,探测类型为 UDP 时必填。 |
| CheckResult | String | 否 | 探测返回结果,500 字符内,探测类型为 UDP 时选填。 |
查询负载均衡
Go
1cli := GetDefaultClient()
2resp, err := cli.QueryLoadBalance(&api.QueryLoadBalanceRequest{
3 SiteId: 1,
4 Name: "test", // 可选,按名称过滤
5 Id: "", // 可选,按负载均衡 ID 过滤
6 FetchAll: true, // 可选,true 全量查询;false 或不传则分页
7 PageNo: 1, // 可选,默认 1
8 PageSize: 10, // 可选,默认 10
9})
10if err != nil {
11 fmt.Printf("err:%+v\n", err)
12 return
13}
14data, _ := json.Marshal(resp)
15fmt.Printf("loadBalances: %s\n", data)
api.QueryLoadBalanceRequest 字段说明:
| 字段 | 类型 | 是否必选 | 说明 |
|---|---|---|---|
| SiteId | Int | 是 | 负载均衡所属站点 ID。 |
| Name | String | 否 | 负载均衡名称过滤。 |
| Id | String | 否 | 负载均衡 ID 过滤。 |
| FetchAll | Bool | 否 | true 全量查询;false/不传分页查询。 |
| PageNo | Int | 否 | 页码,默认 1。 |
| PageSize | Int | 否 | 每页条数,默认 10。 |
api.QueryLoadBalanceResult 字段说明:
| 字段 | 类型 | 说明 |
|---|---|---|
| Total | Int | 负载均衡总数。 |
| LoadBalanceDetail | []api.LoadBalanceDetail | 负载均衡详情列表。 |
| PageNo | Int | 页码(分页查询时存在)。 |
| PageSize | Int | 每页条数(分页查询时存在)。 |
api.LoadBalanceDetail 字段说明:
| 字段 | 类型 | 说明 |
|---|---|---|
| LoadBalanceId | String | 负载均衡 ID。 |
| Name | String | 负载均衡名称。 |
| Status | String | 是否被引用。 |
| DispatchMode | String | 负载均衡策略。 |
| SessionMode | String | 会话保持。 |
| DetectConfig | *api.DetectConfig | 健康探测配置。 |
| OriginPoolIds | []String | 源站池 ID 数组。 |
| WeightList | []Int | 权重列表,weight_mode 时对应各源站池权重,否则为空。 |
| FallbackOriginPoolId | *String | 兜底源站池 ID,未设置时为 null。 |
| OriginPoolCount | Int | 引用源站池数量。 |
| Instance | []api.LoadBalanceInstance | 引用该负载均衡的实例。 |
api.LoadBalanceInstance 字段说明:
| 字段 | 类型 | 说明 |
|---|---|---|
| Domain | String | 引用该负载均衡的域名。 |
| Type | String | 实例类型。 |
| Site | String | 实例所属站点。 |
修改负载均衡
Go
1cli := GetDefaultClient()
2resp, err := cli.UpdateLoadBalance("eo_lb_gG5WnKassxm6", &api.LoadBalanceRequest{
3 SiteId: 1,
4 Name: "test",
5 DispatchMode: "weight_mode", // 加权轮询;主备调度用 "priority_mode"
6 SessionMode: "OFF",
7 DetectConfig: &api.DetectConfig{
8 ProbeInterval: 100,
9 ProbeMinSuccesses: 5,
10 ProbeMaxFails: 5,
11 ProbeSucceedCode: "2xx",
12 ProbeUrl: "/test",
13 ProbeTimeout: 3,
14 ProbeMethod: "GET",
15 },
16 OriginPoolIds: []string{"geo_X8zcYPHclKlz", "geo_D7Qts5KDPXfl"},
17 Weights: []int{10, 50},
18 FallbackOriginPoolId: "geo_X8zcYPHclKlz",
19})
20result, _ := json.Marshal(resp)
21fmt.Printf("result: %s\n", result)
22fmt.Printf("err:%+v\n", err)
参数说明:
| 参数 | 类型 | 是否必选 | 说明 |
|---|---|---|---|
| id | String | 是 | 要修改的负载均衡 ID(路径参数)。 |
| req | *api.LoadBalanceRequest | 是 | 负载均衡配置,字段同创建。 |
删除负载均衡
Go
1cli := GetDefaultClient()
2resp, err := cli.DeleteLoadBalance("eo_lb_gG5WnKassxm6", 1)
3result, _ := json.Marshal(resp)
4fmt.Printf("result: %s\n", result)
5fmt.Printf("err:%+v\n", err)
参数说明:
| 参数 | 类型 | 是否必选 | 说明 |
|---|---|---|---|
| id | String | 是 | 要删除的负载均衡 ID(路径参数)。 |
| siteId | Int | 是 | 负载均衡所属站点 ID。 |
评价此篇文章
