更新时间:2026-11-12 GMT+08:00
分享

修改TaurusDB代理的路由模式

操作场景

TaurusDB数据库代理支持在开通数据库代理时,设置路由模式,默认为权重负载。也可以在数据库代理开通成功后,按照本章节方法修改路由模式。

路由模式的工作原理

TaurusDB数据库代理支持权重负载、负载均衡(数据库节点、代理节点)和可用区就近负载的路由模式,可根据需要配置不同的路由模式。

根据设置的读权重比例分发读请求。

如图所示,数据库代理使用权重负载的路由模式,并选取了主节点、只读节点R1、只读节点R2,其读权重配比为0:1:2。则业务系统A的写请求经数据库代理自动转发至主节点,而读请求则按照1:2的比例分别路由至只读节点R1和R2。

图1 权重负载示意图

根据活跃连接数情况进行读请求分发,将读请求分发到活跃连接数较少的节点上。负载均衡模式不需要修改权重。

根据负载数据的来源不同,负载均衡分为以下两种模式:

  • 负载均衡(数据库节点):从数据库节点获取活跃连接数,并基于该指标进行分发。
    • 适用场景
      • 多个代理实例连接同一组数据库节点的场景:活跃连接数为全局指标,各代理实例能看到相同的负载状态,避免多个代理同时将请求路由到同一节点。
      • 需要了解后端数据库节点整体负载情况的场景。
      • 对路由决策实时性要求不高的场景。
    • 工作原理

      数据库代理定时查询各数据库节点的活跃连接数。当读请求到达时,代理将请求分发到活跃连接数最少的节点。多个节点活跃连接数相同时,随机选择一个。

      如图所示,数据库代理使用负载均衡(数据库节点)的路由模式,并选取了主节点、只读节点R1和只读节点R2,数据库代理将根据各节点的活跃连接数决定将读请求转发至哪一个节点。

      当只读节点R2活跃连接数较高,处于高负载状态时,数据库代理会将大部分读请求转发至负载较低的只读节点R1和主节点,以降低R2节点的负载压力。

      图2 负载均衡(数据库节点)示意图
  • 负载均衡(代理节点):代理侧本地统计活跃连接数,基于代理侧实时统计的活跃连接数进行分发。
    • 适用场景
      • 对路由决策实时性要求高的场景:连接数实时更新,无延迟。
      • 需要准确感知慢SQL导致节点负载过高的场景:连接被慢SQL占用期间计数不释放,代理能准确识别高负载节点并避开。
      • 需要降低后端资源开销的场景:无需定时查询数据库节点状态,减少后端连接资源消耗。
    • 工作原理

      数据库代理在本地实时统计自身到各数据库节点的活跃连接数,当读请求到达当前代理节点时,代理节点将读请求分发到活跃连接数最少的数据库节点。

      与负载均衡(数据库节点)不同,负载均衡(代理节点)不需要查询数据库节点,所有负载数据均在代理本地实时维护。

      如图所示,每个代理节点独立统计自身到各数据库节点的活跃连接数(如R1=3表示代理节点到只读节点 R1 的活跃连接数为3),并将读请求路由到连接最少的数据库节点。由于各代理节点的请求来源和时机不同,同一时刻各代理节点上的连接数分布可能不同,但每个代理节点都独立地将请求路由到连接最少的节点,从整体来看各数据库节点的活跃连接数趋向均衡(下图中R1和R2的活跃连接数都是6)。

      图3 负载均衡(代理节点)示意图
表1 负载均衡两种模式对比

维度

负载均衡(数据库节点)

负载均衡(代理节点)

数据来源

数据库节点活跃连接数

代理本地使用连接计数

更新延迟

定时查询,存在延迟

实时更新,无延迟

指标视角

全局(所有客户端)

仅当前代理实例

后端开销

需定时查询数据库节点

无后端查询开销

慢SQL感知

可能误判(锁等待时活跃连接数可能不高)

准确(连接占用期间计数不释放)

节点恢复感知

需等待下次查询更新

连接释放后立即可路由

多代理实例

各代理看到相同全局负载,协调性好

各代理只看本地负载,多个代理节点之间可能存在差异

根据可用区匹配,代理节点将读请求优先分发到同一可用区的数据库节点。该模式下建议将数据库代理与TaurusDB节点设置在同一可用区,降低分发延迟。

如图所示,数据库代理包含位于不同可用区(AZ1和AZ2)的两个节点,写请求被路由到主节点,读请求则根据业务系统所在可用区,智能路由到最近的节点(M和R1位于AZ1,R2和R3位于AZ2),以减少网络延迟并提高性能。当数据库代理所有节点所在可用区与TaurusDB实例所有节点所在可用区完全不同时,会切换为负载均衡模式。
图4 可用区就近负载示意图

使用须知

  • 数据库代理内核版本大于等于2.22.07.000的代理实例支持数据库节点负载均衡模式,如果不符合内核版本要求,请参考升级TaurusDB代理内核版本升级至最新。
  • 内核版本大于等于2.26.09.000的代理实例支持代理节点负载均衡模式,如果不符合内核小版本要求,请参考升级TaurusDB代理内核版本升级至最新。
  • 内核版本大于等于2.23.12.000的代理实例支持可用区就近负载模式,如果不符合内核小版本要求,请参考升级TaurusDB代理内核版本升级至最新。

内核版本的查询方法请参见如何查看云数据库 TaurusDB实例的版本号。

操作步骤

  1. 登录TaurusDB管理控制台。
  2. 单击管理控制台左上角的,选择区域。
  3. 在实例列表中,选择目标实例,单击实例名称,进入实例概览页面。
  4. 在左侧导航栏中,单击“数据库代理”。
  5. 在“数据库代理”页面,选择目标代理实例,单击代理实例名称。
  6. 在“基本信息”页面,单击“路由模式”后的“设置”。
  7. 在弹框中修改路由模式。

    图5 修改路由模式

    表2 参数说明

    参数名称

    说明

    路由模式

    • 权重负载:根据您设置的读权重比例分发读请求。
    • 负载均衡(数据库节点):根据数据库节点的活跃连接数情况进行读请求分发,将读请求分发到活跃连接数较少的节点上。负载均衡模式不需要修改权重。
    • 负载均衡(代理节点):代理侧自行进行计数,选择活跃连接数最少数据库节点优先进行读请求分发。
    • 可用区就近负载:根据可用区匹配,代理节点将读请求优先分发到同一可用区的数据库节点。

    新节点自动加入

    开启后,新增的只读节点会自动添加到当前数据库代理实例中。

    路由模式为权重负载时,需要为新节点设置读权重。读权重默认为100,读权重越高,处理的读请求越多。

    选择数据库节点

    数据库代理的代理模式不同,分发读请求的目标节点不同。

    • 只读模式:所有读请求按照路由模式转发到已选只读节点,不会转发到主节点。
    • 读写模式:所有读请求按照路由模式转发到已选数据库节点。

  8. 单击“确定”,代理实例运行状态变为“设置代理实例路由模式中”,此过程大概需要几分钟。
  9. 修改完成后,代理实例运行状态变为“正常”,您可查看到路由模式已更新。

相关文档