更新时间:2022-05-07 GMT+08:00
分享

读写分离

概述

DDM读写分离功能可以将只读查询的流量按比例分摊至下挂存储节点的主实例和只读实例,从而减轻主实例的工作负担,保障读写事务的性能。此功能对应用透明,业务代码无需改造,只需要在控制台中设置主实例和只读实例的读权重,即可实现将读流量按照自定义权重分流到主实例和只读实例上,写流量不受影响,默认会分流到主实例上。一般来说该比例的设置需结合业务实际特点以及存储节点实际负载进行设置。

只读实例上的数据是从主实例上异步复制而来,所以存在毫秒级的延迟。如果只读查询对数据实时性要求不高(容忍亚秒级可见性延迟)且只读查询的开销较大并对业务核心读写事务有一定影响,设置主实例和只读实例的权重为0:100,即所有只读查询均由只读实例承担,最大程度保证主实例性能。对于其他场景,建议结合实际情况酌情调整。

若select语句带有hint或者在事务中做了数据修改的select语句,读请求都会下发主实例执行。

如果存储节点主实例故障,此时只读实例上Seconds_Behind_Master=NULL,只读查询仍会下发到主实例执行,需要尽快恢复主实例。

前提条件

  • 已购买DDM实例和带只读实例的数据节点。
  • 已经创建好逻辑库。

操作步骤

  1. 登录DDM控制台,选择目标DDM实例,进入实例基本信息页面。
  2. 单击选择“DN管理”模块。

    图1 DN管理

  3. 设置实例的读写权重。

    • 如果需要设置多个实例的读写权重,可点击实例上方的“设置读权重”来进行批量设置。如图2所示。
      在批量设置的弹窗中,“同步”功能可以用来将第一个实例的读权重设置同步到其他的实例上,如图3所示。此操作需满足所有实例的只读实例数量一致才可以实行。如果有实例的只读实例数量与其他实例不一致,则无法使用“同步”功能,需手动设置各个实例的读权重,如图4所示。
      图2 批量设置读权重
      图3 同步第一个实例的读权重
      图4 手动设置权重
    • 如果需要设置单个实例的读写权重,可点击操作栏的“设置读权重”来进行设置。
      图5 单个设置读权重

  4. 设置读权重命令下发成功提示。

    图6 设置读权重命令下发成功

分享:

    相关文档

    相关产品

关闭导读