读写分离是指通过一个读写分离地址实现读写请求的自动转发。通过RDS MySQL的读写分离地址,可以使写请求自动转发到主实例,读请求按照设置的权重自动转发到各个只读实例。

背景信息

共享代理已经可以升级为独享代理,独享代理拥有比共享代理更好的性能,读写分离也更加方便。

说明 存量实例已经不支持在共享代理时开通读写分离,开通时会失败报错。您需要关闭共享代理,刷新界面,然后开启独享代理,才能使用读写分离功能。

下文指导您如何关闭共享代理和开启独享代理,最后开通读写分离。

操作步骤

  1. 进入数据库代理页面关闭共享代理。
    1. 登录RDS管理控制台,在左侧单击实例列表,然后在上方选择地域。
      选择地域
    2. 单击目标实例ID,在左侧导航栏单击数据库代理
    3. 单击已开通左侧开关,关闭共享数据库代理。
  2. 开启独享代理。
    1. 刷新控制台页面,然后单击立即开启
      说明 请确认 立即开启的界面如下图所示。
      立即开启
    2. 选择网络类型并填写代理个数,然后单击立即开启
      说明
      • 不同类型实例支持的默认代理地址网络类型不同,详情请参见设置独享代理连接地址
      • 推荐的代理个数为主实例及只读实例CPU核数的1/8 (向上取整),最多60个。

        例如主实例为8核CPU,只读实例为4核CPU,则推荐代理数量= (8+4)/8 ≈ 2。

      开通数据库代理
  3. 开启读写分离。
    1. 选择读写分离页签,单击立即开启
    2. 设置如下参数。
      设置权重
      参数 说明
      延迟阈值 只读实例同步主实例数据时允许的最长延迟时间。若一个只读实例的延迟时间超过该阈值,则不论该只读实例的权重是多少,读请求都不会转发至该只读实例。

      取值范围为0秒到7200秒。受限于SQL的执行情况,只读实例有一定的几率会出现延迟,建议该值不小于30秒。

      读权重分配 实例的读权重越高,处理的读请求越多。例如,假设主实例有3个只读实例,读权重分别为0、100、200和200,则表示主实例不处理读请求(写请求仍然自动发往主实例),3个只读实例按照1:2:2的比例处理读请求。
      • 系统分配:系统根据实例规格自动分配各个实例的读权重。后续该主实例下新增的只读实例也会自动按照系统分配的权重加入到读写分离链路中,无需手动设置。更多信息请参见系统权重分配规则
      • 自定义:手动设置各个实例的读权重,范围为0至10000。后续该主实例下新增只读实例的读权重默认为0,需要您手动修改。
      说明 不支持为已经设置 只读实例延时复制时间的实例设置权重。
    3. 单击确定

开通后,您需要在应用程序中配置读写分离地址(即独享代理地址),就可以使写请求自动转发到主实例,读请求自动转发到各个只读实例。

关于独享代理的读写分离介绍,请参见开通读写分离