
# 设置延时阈值和路由模式
#### 操作场景
开通数据库代理后，并创建只读实例后，您可以根据需要设置读写分离的延时阈值和路由模式。
#### 前提条件
代理实例的状态必须均为"正常"。
#### 功能介绍
 表1功能介绍 
| 功能    | 说明                                                                                                                                                                                                                                        |
|:---|:---|
| 延时阈值  | 只读实例同步主实例数据时允许的最长延迟时间。延时阈值仅在存在只读实例时生效。为避免只读实例读取的数据长时间和主实例不一致，当一个只读实例的延迟时间超过设置的延迟阈值，则不论该只读实例的读权重是多少，读请求都不会转发至该只读实例。 读写分离功能成功开启后，延时阈值默认为30s，阈值默认范围为0\~7200s，建议该阈值不小于30s，超出阈值的只读实例不分配流量。 |
| 读权重分配 | 读写分离功能成功开启后，主实例和只读实例可以设置读权重。数据库代理未选择只读实例时，读写分离功能无法生效。 读权重取值范围1\~1000。实例的读权重越高，处理的读请求越多。例如，假设主实例有4个只读实例，实例的读权重分别为0、100、200、500、300，则表示主实例不处理读请求（写请求仍然自动发往主实例），四个只读实例按照1：2：5：3的比例处理读请求。                       |
   
 #### 设置延迟阈值
1. [登录RDS管理控制台](https://console.huaweicloud.com/rds/#/rds/management/list)。
2. 单击管理控制台左上角的![](https://support.huaweicloud.com/usermanual-rds-mysql/zh-cn_image_0000002593882307.png)，选择区域。
3. 在实例列表中，单击只读实例所在的主实例名称，进入主实例的"概览"页面。
4. 在左侧导航栏中，单击"数据库代理"，进入"数据库代理"页面。
5. 在代理服务信息模块"延时阈值"处单击![](https://support.huaweicloud.com/usermanual-rds-mysql/zh-cn_image_0000002431334504.png)，设置延迟阈值。
 
#### 单Proxy设置路由模式
1. [登录RDS管理控制台](https://console.huaweicloud.com/rds/#/rds/management/list)。
2. 单击管理控制台左上角的![](https://support.huaweicloud.com/usermanual-rds-mysql/zh-cn_image_0000002593882307.png)，选择区域。
3. 在实例列表中，单击只读实例所在的主实例名称，进入主实例的"概览"页面。
4. 在左侧导航栏中，单击"数据库代理"，进入"数据库代理"页面。 
   - 如果未开通负载均衡，在代理服务信息模块，在"路由模式"处单击"设置"，在弹框中，设置主备实例和只读实例的权重。
     ![](https://support.huaweicloud.com/usermanual-rds-mysql/public_sys-resources/note_3.0-zh-cn.png)
     - 系统默认分配权重，后续新增只读实例也将按照系统默认规则分配权重值。实例宕机时将自动移除权重，实例恢复后权重也将自动恢复。实例释放后将自动移除权重。
     
     - 某一实例的权重设置为0，表示不会路由到该节点，但如果权重全部设置为0，将会随机路由到各节点。
     
     - 除默认分配权重外，还支持强制路由，详见[通过Hint指定SQL发往主实例或只读实例]。
      
     图1权重设置   
     ![](https://support.huaweicloud.com/usermanual-rds-mysql/zh-cn_image_0000002212063740.png "点击放大")
     单击"确定"，在数据库代理页面查看权重分配结果。
     
   
   - 如果已开通负载均衡，在代理服务信息模块，单击"路由模式"后的"设置"，在弹框中，设置主备实例和只读实例的路由模式。
     图2负载均衡   
     ![](https://support.huaweicloud.com/usermanual-rds-mysql/zh-cn_image_0000002247223629.png "点击放大")
     - 负载均衡：支持基于负载的自动调度策略，读请求将在多个只读节点中按照活跃连接数自动调度，来保证多个只读节点间的负载均衡。
     
     - 主库接受读
       - 选择"是"，读请求可以发送到主节点和只读节点，这在一定程度上，会增加主节点的负载，请您根据业务需求配置该开关。
       
       - 选择"否"，读请求仅发送到只读节点，来降低主节点的负载，确保主节点稳定。
        
     
     
     单击"确定"，在数据库代理页面查看设置结果，可根据需要选择加入负载均衡的实例。
     
   
   
   
   
 
#### 多Proxy设置路由模式
1. [登录RDS管理控制台](https://console.huaweicloud.com/rds/#/rds/management/list)。
2. 单击管理控制台左上角的![](https://support.huaweicloud.com/usermanual-rds-mysql/zh-cn_image_0000002593882307.png)，选择区域。
3. 在实例列表中，单击只读实例所在的主实例名称，进入主实例的"概览"页面。
4. 在左侧导航栏中，单击"数据库代理"，进入"数据库代理"页面。
5. 在代理服务信息模块，单击"路由模式"后的"设置"，在弹框中，设置实例的路由模式。 
   - 权重负载：用户自行设置主备实例和只读实例的权重。关于读权重分配的说明，请参见[表1]。
     ![](https://support.huaweicloud.com/usermanual-rds-mysql/public_sys-resources/note_3.0-zh-cn.png)
     系统默认分配权重，后续新增只读实例也将按照系统默认规则分配权重值。实例宕机时将自动移除权重，实例恢复后权重也将自动恢复。实例释放后将自动移除权重。
     除默认分配权重外，还支持强制路由，详见[通过Hint指定SQL发往主实例或只读实例]。
     图3权重负载   
     ![](https://support.huaweicloud.com/usermanual-rds-mysql/zh-cn_image_0000002212063736.png "点击放大")
     单击"确定"，在代理服务信息模块可查看权重分配结果。
     图4查看权重分配结果   
     ![](https://support.huaweicloud.com/usermanual-rds-mysql/zh-cn_image_0000002212223536.png "点击放大") 
   
   - 负载均衡：支持基于负载的自动调度策略，读请求将在多个只读节点中按照活跃连接数自动调度，来保证多个只读节点间的负载均衡。
     图5负载均衡   
     ![](https://support.huaweicloud.com/usermanual-rds-mysql/zh-cn_image_0000002247143533.png "点击放大")
     在"选择实例"下拉框勾选需要加入负载均衡的实例。
     ![](https://support.huaweicloud.com/usermanual-rds-mysql/public_sys-resources/note_3.0-zh-cn.png)
     对于新创建的只读实例，如需加入负载均衡，需要在"选择实例"下拉框中勾选该实例。
     单击"确定"，在代理服务信息模块可查看负载均衡设置。
     图6查看负载均衡设置   
     ![](https://support.huaweicloud.com/usermanual-rds-mysql/zh-cn_image_0000002212223532.png "点击放大") 
   
   
   
   
 
 #### 通过Hint指定SQL发往主实例或只读实例
在SQL开头添加hint注释进行强制路由。
- /\*FORCE_MASTER\*/强制路由到主节点。
- /\*FORCE_SLAVE\*/强制路由到只读节点。
在读写分离权重分配体系之外，Hint可作为另外一种SQL补充语法来指定相关SQL到主实例或只读实例执行。
Hint注释仅作为路由建议，非只读SQL、事务中的场景不能强制路由到只读节点。
