RDS提供数据库独享代理服务,基于独享代理提供更多高级功能,例如读写分离、短连接优化、事务拆分等。

前提条件

  • 实例版本如下:
    • MySQL 8.0三节点企业版(内核小版本20191204或以上)
    • MySQL 8.0高可用版(内核小版本20190915或以上)
    • MySQL 5.7三节点企业版(内核小版本20191128或以上)
    • MySQL 5.7高可用版(内核小版本20190925或以上)
    说明 您可以在基本信息页面的配置信息区域查看是否有升级内核小版本按钮。如果有按钮,您可以单击按钮查看当前版本;如果没有按钮,表示已经是最新版。详情请参见升级内核小版本
    数据库独享代理_数据库代理_RDS MySQL 数据库_云数据库 RDS 版 阿里云技术文档 第1张
  • 实例处于以下地域:
    • 华东1(杭州)仅可用区B、D、E、F、H、I
    • 华东2(上海)
    • 华北1(青岛)
    • 华北2(北京)
    • 华北3(张家口)
    • 华北5(呼和浩特)
    • 华南1(深圳)
    • 西南1(成都)仅可用区A
    • 中国(香港)
    • 新加坡
    • 印度(孟买)
    • 印度尼西亚(雅加达)
    • 德国(法兰克福)
    • 日本(东京)
    • 马来西亚(吉隆坡)
    • 澳大利亚(悉尼)
    • 英国(伦敦)
    • 美国(弗吉尼亚)
    • 阿联酋(迪拜)
说明 对于多可用区实例,只有初始主实例(创建时主实例所在地域及可用区)满足地域及可用区条件时,才可以开通独享代理功能。

背景信息

RDS数据库独享代理服务是使用独立代理计算资源为当前实例提供代理服务,优势如下:

  • 使用代理连接地址后可以不用反复变更应用内的连接地址,减少维护成本,只要不释放代理实例,代理连接地址可以永远使用。例如您在大促时期开启读写分离,大促结束后释放只读实例,关闭读写分离,也不用变更应用内的连接地址。
  • 避免了共享实例代理时多用户争抢资源导致访问服务不稳定。
  • 使用独立实例代理,资源可扩展,可承载更高流量。

计费

数据库独享代理从2020年1月15日开始,使用一个代理实例仍然免费,增加代理实例会收取额外费用,价格如下表。

地域 独享代理
名称 代码 元/小时/代理实例
华东1(杭州) cn-hangzhou 1.170
华东2(上海) cn-shanghai 1.170
华北1(青岛) cn-qingdao 1.170
华北2(北京) cn-beijing 1.170
华北3(张家口) cn-zhangjiakou 0.810
华北5(呼和浩特) cn-huhehaote 1.170
华南1(深圳) cn-shenzhen 1.170
西南1(成都) cn-chengdu 1.170
中国(香港) cn-hongkong 2.010
日本(东京) ap-northeast-1 1.950
印度(孟买) ap-south-1 1.560
新加坡 ap-southeast-1 1.830
澳大利亚(悉尼) ap-southeast-2 1.848
马来西亚(吉隆坡) ap-southeast-3 1.710
印度尼西亚(雅加达) ap-southeast-5 1.830
德国(法兰克福) eu-central-1 1.644
英国(伦敦) eu-west-1 1.890
阿联酋(迪拜) me-east-1 2.550
美国(弗吉尼亚) us-east-1 1.605
美国(硅谷) us-west-1 1.920

注意事项

  • 当主实例或只读实例变更配置时可能会出现连接闪断。
  • 数据库独享代理暂不支持SSL加密。
  • 数据库独享代理暂不支持压缩协议。
  • 使用代理连接地址时,事务请求都会路由到主实例。
  • 使用代理连接地址进行读写分离时,不保证非事务读的一致性,业务上有读一致性需求可以封装到事务中。
  • 使用代理连接地址时,暂不支持LAST_INSERT_ID()函数。
  • 使用代理连接地址时,show processlist会将所有节点的结果合并后返回。
  • 如果开通了短连接优化功能,show processlist可能会显示闲置的用户连接。
  • 如果执行了Multi-Statements或存储过程,当前连接的后续请求会全部路由到主节点,需断开当前连接并重新连接才能恢复读写分离。
  • 支持Hint语法/*FORCE_MASTER*//*FORCE_SLAVE*/,但是因为Hint的路由优先级最高,例如Hint不受一致性、事务的约束,需要您评估是否可以用于业务。另外Hint语句里不能包含改变环境变量的语句,例如/*FORCE_SLAVE*/ set names utf8; ,可能导致后续业务出错。

开通代理服务

  1. 登录RDS管理控制台
  2. 在页面左上角,选择实例所在地域。
    数据库独享代理_数据库代理_RDS MySQL 数据库_云数据库 RDS 版 阿里云技术文档 第2张
  3. 找到目标实例,单击实例ID。
  4. 在左侧导航栏中单击数据库代理
  5. 单击立即开启
    数据库独享代理_数据库代理_RDS MySQL 数据库_云数据库 RDS 版 阿里云技术文档 第3张

页面介绍

开启数据库独享代理后,您可以使用代理连接地址开通读写分离、短连接优化、事务拆分。

数据库独享代理_数据库代理_RDS MySQL 数据库_云数据库 RDS 版 阿里云技术文档 第4张
类别 参数 说明
代理地址 连接地址 代理连接地址,独享代理目前提供一个代理地址,读写分离功能绑定该地址。
网络端口 代理连接地址的端口。
网络地址类型 当前仅支持内网(专有网络)的网络地址类型。
实例名 代理连接地址连接的实例。
关联代理实例数量 代理连接地址关联的代理实例数量,可以通过增加代理实例数量提升代理处理请求的能力。公测结束后增加代理实例数量会产生费用。
读写分离功能 代理连接地址是否开通了读写分离功能。详情请参见读写分离简介
短连接优化功能 代理连接地址是否开通了短连接优化功能。 详情请参见短连接优化
说明 您可以通过右侧的开通关闭按钮开关短连接优化功能。
事务拆分 代理连接地址是否开通了事务拆分功能。详情请参见事务拆分
代理实例 代理类型 当前仅支持独享代理
代理规格 代理实例的规格,当前仅支持2核CPU、4GB内存的规格。
开通个数(个) 代理实例的数量。最多60个。
说明 推荐代理实例的数量为主实例及只读实例CPU核数的1/8 (向上取整)。

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

调整代理实例数量

说明 调整代理实例数量会导致应用闪断,请确保系统具备重连机制。
  1. 登录RDS管理控制台
  2. 在页面左上角,选择实例所在地域。
    数据库独享代理_数据库代理_RDS MySQL 数据库_云数据库 RDS 版 阿里云技术文档 第5张
  3. 找到目标实例,单击实例ID。
  4. 在左侧导航栏中单击数据库代理
  5. 调整实例数列修改数量,然后单击应用
    数据库独享代理_数据库代理_RDS MySQL 数据库_云数据库 RDS 版 阿里云技术文档 第6张
  6. 设置应用时间,单击确定
    数据库独享代理_数据库代理_RDS MySQL 数据库_云数据库 RDS 版 阿里云技术文档 第7张

查看监控数据

  1. 登录RDS管理控制台
  2. 在页面左上角,选择实例所在地域。
    数据库独享代理_数据库代理_RDS MySQL 数据库_云数据库 RDS 版 阿里云技术文档 第8张
  3. 找到目标实例,单击实例ID。
  4. 在左侧导航栏中单击数据库代理
  5. 选择监控数据页签。
  6. 设置查询时间段,即可查看CPU利用率
    说明 这里展示是的代理实例所在物理机的CPU使用率。
    数据库独享代理_数据库代理_RDS MySQL 数据库_云数据库 RDS 版 阿里云技术文档 第9张

关闭代理服务

  1. 登录RDS管理控制台
  2. 在页面左上角,选择实例所在地域。
    数据库独享代理_数据库代理_RDS MySQL 数据库_云数据库 RDS 版 阿里云技术文档 第10张
  3. 找到目标实例,单击实例ID。
  4. 在左侧导航栏中单击数据库代理
  5. 在右上角单击关闭代理服务器
    数据库独享代理_数据库代理_RDS MySQL 数据库_云数据库 RDS 版 阿里云技术文档 第11张
  6. 单击确定

常见问题

  • 5.7版本实例已经升级小版本了,为什么还是只有读写分离,没有独享代理功能?

    升级后您需要关闭原有的读写分离,才能看到独享代理的开启页面。

  • 想实现读写分离,是使用独享代理地址还是读写分离地址?

    独享代理地址和读写分离地址相同,后端是基于独享代理地址实现读写分离。

相关API

API 描述
ModifyDBProxyInstance 修改RDS数据库独享代理设置。
ModifyDBProxy 开启或者关闭RDS实例的数据库独享代理功能。
DescribeDBProxy 查询RDS实例的数据库独享代理详情。
DescribeDBProxyEndpoint 查询RDS实例独享代理的连接地址信息。
ModifyDBProxyEndpoint 修改RDS实例数据库独享代理的连接地址信息。
DescribeDBProxyPerformance 查询独享代理实例的性能数据。