{{i18nTranslate('_layout.t11')}} {{i18nGetLang()==='zh' ? 'EN' : '中文'}}

# 节点智能调度

> 此功能为商业版功能。在v1.1.0版本加入。

从 GoEdge v1.1.0 开始，可以为节点设置智能调度动作，以便于节点在满足条件的情况下可以切换到备用节点、备用IP等。

## 原理

可以看到，管理员为节点设置调度条件后，当满足调度条件后，会自动执行调度动作，调度动作中会自动调整节点的DNS解析记录，以便于让用户访问到不同的节点或者IP，同时也会发送消息通知。

## 节点智能调度设置

可以在单个节点设置中”智能调度”中设置当前节点智能调度信息：

### 基础设置

可以在节点设置 – “智能调度”页面中设置一些当前节点的基础信息：

- `当前节点租期结束日期` - 当然节点的租期结束日期，比如某个服务器的租期到`2023-12-31`日结束，那么此节点的IP会在此日期后从DNS记录中删除
- `当前节点为集群备用节点` - 设置当前节点是否为所在集群的备用节点，设置为集群备用节点后，同集群的其他节点可以通过调度动作切换到此节点
- `当前节点为分组备用节点` - 设置当前节点是否为所在节点分组的备用节点，设置为节点分组备用节点后，同分组的其他节点可以通过调度动作切换到此节点
- `当前节点备用IP` - 当前节点的备用IP，可以通过调度动作切换到这些备用IP

### 调度动作

可以在节点设置 – “智能调度”页面中添加一些调度动作，当执行条件满足时就会触发调度动作，从而可以实现切换节点和IP等。

#### 添加调度动作

在节点设置 – “智能调度”页面 – 调度动作标题中点击”添加”：

其中：

- `执行条件` - 触发调度动作需要的条件，通常由”参数”、”操作符”、”对比值（带宽、流量等）”组成，设置后别忘记点击”确定”按钮保存设置
- `执行动作` - 满足执行条件后执行的动作
- `持续时间` - 触发后保持状态的时间，超出此时间后，系统自动还原节点执行前的状态；但是如果节点没有可以访问的IP（比如全都离线），那么将不会恢复节点状态，并在下次循环后再次检查

添加后的显示类似于：

如果单个节点添加了多个调度动作，那么系统会按照添加顺序依次检查是否匹配，并只执行第一个匹配的调度动作。

#### 复制到分组

可以在节点设置 – “智能调度”页面中 – 调度动作标题 – 更多操作 点击 “复制到分组xxx”。

此功能可以使用的前提是当前节点在节点分组中。

#### 复制到集群

可以在节点设置 – “智能调度”页面中 – 调度动作标题 – 更多操作 点击 “复制到集群xxx”。

## 集群统一管理

可以在集群设置 – “智能调度”中管理当前集群下的所有节点的智能调度：

## 调度参数

### 节点出口带宽

当前节点当前时间点的出口平均带宽（从节点服务器发送到客户端）。

带宽单位为比特（bit），是字节的八分之一。

### 节点入口带宽

当前节点当前时间点的入口平均带宽（从客户端发送到节点服务器）。

带宽单位为比特（bit），是字节的八分之一。

### 节点当月流量

当前节点在当月的出口流量，即从节点服务器发送到客户端的当月流量总和。

流量单位为字节，为比特的八倍。

### 节点当日流量

当前节点在当天的出口流量，即从节点服务器发送到客户端的当天流量总和。

流量单位为字节，为比特的八倍。

### 节点CPU利用率

节点当前CPU利用率，取值范围为0-100。

### 节点内存利用率

节点当前内存利用率，取值范围为0-100。

### 节点负载

节点当前负载，取值范围为0-∞，通常超过10表示系统负载较重。

### 节点健康检查失败

当前节点任一IP健康检查失败，此功能需要在集群设置中开启 健康检查 功能。

### 节点UDP数据报发送速率

在Goedge v1.2.0中加入，当前节点当前时间点的UDP数据报发送速率，比如超过100000/秒可以认为正在被攻击。

### 节点UDP数据报接收速率

在Goedge v1.2.0中加入，当前节点当前时间点的UDP数据报接收速率，比如超过比如超过100000/秒可以认为正在被攻击。

## 调度动作

注意：调度动作对备用节点不会起作用。

### 上线当前节点

将当前节点状态设置为在线。

此动作相当于恢复当前节点的状态，上线后的节点的所有IP都会自动创建为DNS解析记录，所以用户可以正常访问。

### 下线当前节点

将当前节点状态设置为离线。

此时当前节点的所有IP都会从DNS解析记录里删除，这样用户就无法通过域名解析访问到此节点。

### 切换到集群备用节点

下线当前节点并启用节点所在集群备用节点。

前提条件是集群下已经设置了一些集群备用节点（参考本文中的 基础设置），如果当前集群没有设置集群备用节点，则不会发生任何变化；如果当前集群中已经有一些备用节点，那么此动作会在DNS解析记录中删除当前节点的IP解析记录，并添加集群备用节点的IP解析记录，这样用户通过域名解析访问到的节点就是集群备用节点。

如果多个节点同时设置并触发了当前动作，那么只会添加一组集群备用节点的IP解析记录，不会重复添加。

### 切换到分组备用节点

下线当前节点并启用节点所在分组备用节点。

前提条件是当前节点已经在某个节点分组下，而且此节点分组下也已经设置了一些分组备用节点（参考本文中的 基础设置），如果当前节点没有在节点分组，或者当前所在的节点分组下没有设置分组备用节点，则不会发生任何变化；如果当前节点所在节点分组中已经有一些备用节点，那么此动作会在DNS解析记录中删除当前节点的IP解析记录，并添加节点分组下的备用节点的IP解析记录，这样用户通过域名解析访问到的节点就是节点分组下的备用节点。

如果节点所在节点分组下的多个节点同时设置并触发了当前动作，那么只会添加一组节点分组备用节点的IP解析记录，不会重复添加。

### 切换到备用IP

将当前节点的IP切换到当前节点配置的备用IP。

前提条件是当前节点已经设置了备用IP（参考本文中的 基础设置），如果没有设置备用IP，则不会发生任何变化；如果已经设置了备用IP，那么此动作会在DNS解析记录中删除当前节点的IP解析记录，并添加备用IP的解析记录，这样用户通过域名解析访问到的节点使用的就是备用IP。

### 启用集群备用节点

保持当前节点并启用节点所在集群备用节点。

同本文中的 切换到集群备用节点 类似，只不过仍然保留当前节点的IP解析记录。

### 启用分组备用节点

保持当前节点并启用节点所在分组备用节点。

同本文中的 切换到分组备用节点 类似，只不过仍然保留当前节点的IP解析记录。

### 启用备用IP

保持当前节点的IP并启用当前节点配置的备用IP。

同本文中的 切换到备用IP 类似，只不过仍然保留当前节点的IP解析记录。

### WebHook

通过WebHook发送通知到URL。

在动作被触发时，会以GET的方式调用你填入的WebHook URL，并传入节点角色（role）、集群ID（clusterId）、节点ID（nodeId）等参数，比如你填入的WebHook为：

    https://example.com/notify

那么调用时的完整URL就是：

    https://example.com/notify?role=node&clusterId=集群ID&nodeId=节点ID

URL里也可以使用参数：

    https://example.com/notify?name=monitor&v=1

那么调用时的完整URL就是：

    https://example.com/notify?name=monitor&v=1&role=node&clusterId=集群ID&nodeId=节点ID

可以看到保留了原来的URL参数。

## 场景演示

### 服务器租期到后自行下线

比如某台服务器租用期限在2023年12月31日，那么可以在节点”智能调度”–“基础设置”中设置”当前节点租期结束日期为”2023-12-31”，这样到此日期时会自动将此服务器对应的IP从域名解析中移除。

在实际操作中，设置的结束日期最好提前几天，以便于DNS解析记录可以及时生效，比如实际结束日期为”2023-12-31”，表单里的结束日期就可以设置为”2023-12-29”。

### 服务器流量满时自行下线

比如某台服务器限制每个月流量为500GB，那么可以在节点”智能调度”添加调度动作”节点当月流量 大于 450GB”时执行”下线当前节点”动作，这样当节点超过450GB时就自动从DNS域名解析中移除节点的IP。之所以是450GB而不是500GB，是为了留有余量，一方面统计方法可能不同，另外一方面域名解析生效需要时间。

### 服务器被攻击时自动切换到高防

不需要新部署高防节点的情形：为服务器对应的节点设置备用IP（节点”智能调度”–“基础设置”–“当前节点备用IP”选项），这些IP为高防实例的IP，然后添加调度动作”节点入口带宽 大于 100Mpbs”，动作为”切换到备用IP”，持续时间”60分钟”，这样当节点上行带宽超过100Mbps时会自动将域名解析中的节点IP切换到备用IP（高防实例IP），并且在60分钟后自动恢复。

需要部署高防节点的情形：为集群或者节点分组设置一些备用节点，备用节点的IP为高防实例的IP，选中备用节点的”智能调度”–“基础设置”–“当前节点为集群备用节点”或者”当前节点为分组备用节点”，然后添加调度动作”节点入口带宽 大于 100Mpbs”，动作为”切换到集群备用节点”或者”切换到分组备用节点”，持续时间”60分钟”，这样当节点上行带宽超过100Mbps时会自动将域名解析中的节点IP切换到备用节点的IP（高防实例IP），并且在60分钟后自动恢复。

### 节点无法访问时下线节点

首先在集群中启用健康检查，然后增加调度执行条件”健康检查失败”，执行动作为”下线当前节点”，这样在健康检查失败时会从DNS域名解析中自动下线当前节点下的所有IP。

{{i18nTranslate('_layout.t27')}}
{{i18nTranslate('_layout.t12')}}