更新时间:2024-03-25 GMT+08:00

设置延时阈值和路由模式

开通数据库代理后,并创建只读实例后,您可以根据需要设置读写分离的延时阈值和路由模式。

表1 读写分离参数说明

参数

说明

延时阈值

只读实例同步主实例数据时允许的最长延迟时间。延时阈值仅在存在只读实例时生效。为避免只读实例读取的数据长时间和主实例不一致,当一个只读实例的延迟时间超过设置的延迟阈值,则不论该只读实例的读权重是多少,读请求都不会转发至该只读实例。

读写分离功能成功开启后,延时阈值默认为30s,阈值默认范围为0~7200s,建议该阈值不小于30s,超出阈值的只读实例不分配流量。

读权重分配

读写分离功能成功开启后,主实例和只读实例可以设置读权重。数据库代理未选择只读实例时,读写分离功能无法生效。

读权重取值范围1~1000。实例的读权重越高,处理的读请求越多。例如,假设主实例有4个只读实例,实例的读权重分别为0、100、200、500、300,则表示主实例不处理读请求(写请求仍然自动发往主实例),四个只读实例按照1:2:5:3的比例处理读请求。

约束限制

如需开启负载均衡,请联系客服人员开通权限。

设置延迟阈值

  1. 登录管理控制台
  2. 单击管理控制台左上角的,选择区域和项目。
  3. 单击页面左上角的,选择“数据库 > 云数据库 RDS”,进入RDS信息页面。
  4. 在实例列表中,单击只读实例所在的主实例名称,进入主实例的“基本信息”页面。
  5. 在左侧导航栏中,单击“数据库代理”,进入“数据库代理”页面。
  6. 在代理服务信息模块“延时阈值”处单击,设置延迟阈值。

单Proxy设置路由模式

  1. 登录管理控制台
  2. 单击管理控制台左上角的,选择区域和项目。
  3. 单击页面左上角的,选择“数据库 > 云数据库 RDS”,进入RDS信息页面。
  4. 在实例列表中,单击只读实例所在的主实例名称,进入主实例的“基本信息”页面。
  5. 在左侧导航栏中,单击“数据库代理”,进入“数据库代理”页面。
  6. 如果未开通负载均衡,在代理服务信息模块,在“路由模式”处单击“设置”,在弹框中,设置主备实例和只读实例的权重。

    • 系统默认分配权重,后续新增只读实例也将按照系统默认规则分配权重值。实例宕机时将自动移除权重,实例恢复后权重也将自动恢复。实例释放后将自动移除权重。
    • 某一实例的权重设置为0,表示不会路由到该节点,但如果权重全部设置为0,将会随机路由到各节点。
    • 除默认分配权重外,还支持强制路由,详见通过Hint指定SQL发往主实例或只读实例
    图1 权重设置

  7. 单击“确定”,在数据库代理页面查看权重分配结果。
  8. 如果已开通负载均衡,在代理服务信息模块,单击“路由模式”后的“设置”,在弹框中,设置主备实例和只读实例的路由模式。

    负载均衡:支持基于负载的自动调度策略,读请求将在多个只读节点中按照活跃连接数自动调度,来保证多个只读节点间的负载均衡。

    图2 负载均衡
    主库接受读
    • 选择“是”,读请求可以发送到主节点和只读节点,这在一定程度上,会增加主节点的负载,请您根据业务需求配置该开关。
    • 选择“否”,读请求仅发送到只读节点,来降低主节点的负载,确保主节点稳定。

  9. 单击“确定”,在数据库代理页面查看设置结果,可根据需要选择加入负载均衡的实例。

多Proxy设置路由模式

  1. 登录管理控制台
  2. 单击管理控制台左上角的,选择区域和项目。
  3. 单击页面左上角的,选择“数据库 > 云数据库 RDS”,进入RDS信息页面。
  4. 在实例列表中,单击只读实例所在的主实例名称,进入主实例的“基本信息”页面。
  5. 在左侧导航栏中,单击“数据库代理”,进入“数据库代理”页面。
  6. 在代理服务信息模块,单击“路由模式”后的“设置”,在弹框中,设置实例的路由模式。

    • 权重负载:用户自行设置主备实例和只读实例的权重。关于读权重分配的说明,请参见表1

      系统默认分配权重,后续新增只读实例也将按照系统默认规则分配权重值。实例宕机时将自动移除权重,实例恢复后权重也将自动恢复。实例释放后将自动移除权重。

      除默认分配权重外,还支持强制路由,详见通过Hint指定SQL发往主实例或只读实例

      图3 权重负载
      单击“确定”,在代理服务信息模块可查看权重分配结果。
      图4 查看权重分配结果
    • 负载均衡:支持基于负载的自动调度策略,读请求将在多个只读节点中按照活跃连接数自动调度,来保证多个只读节点间的负载均衡。
      图5 负载均衡

      在“选择实例”下拉框勾选需要加入负载均衡的实例。

      对于新创建的只读实例,如需加入负载均衡,需要在“选择实例”下拉框中勾选该实例,然后单击“确定”。

      单击“确定”,在代理服务信息模块可查看负载均衡设置。
      图6 查看负载均衡设置

通过Hint指定SQL发往主实例或只读实例

在SQL开头添加hint注释进行强制路由。

  • /*FORCE_MASTER*/强制路由到主节点。
  • /*FORCE_SLAVE*/强制路由到只读节点。
  • 在读写分离权重分配体系之外,Hint可作为另外一种SQL补充语法来指定相关SQL到主实例或只读实例执行。
  • Hint注释仅作为路由建议,非只读SQL、事务中的场景不能强制路由到只读节点。