数据库独享代理
RDS提供数据库独享代理服务,基于独享代理提供更多高级功能,例如读写分离、短连接优化、事务拆分等。
前提条件
- 实例版本如下:
- MySQL 8.0三节点企业版(内核小版本20191204或以上)
- MySQL 8.0高可用版(内核小版本20190915或以上)
- MySQL 5.7三节点企业版(内核小版本20191128或以上)
- MySQL 5.7高可用版(内核小版本20190925或以上)
- 实例处于以下地域:
- 华东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;
,可能导致后续业务出错。
开通代理服务
页面介绍
开启数据库独享代理后,您可以使用代理连接地址开通读写分离、短连接优化、事务拆分。
类别 | 参数 | 说明 |
---|---|---|
代理地址 | 连接地址 | 代理连接地址,独享代理目前提供一个代理地址,读写分离功能绑定该地址。 |
网络端口 | 代理连接地址的端口。 | |
网络地址类型 | 当前仅支持内网(专有网络)的网络地址类型。 | |
实例名 | 代理连接地址连接的实例。 | |
关联代理实例数量 | 代理连接地址关联的代理实例数量,可以通过增加代理实例数量提升代理处理请求的能力。公测结束后增加代理实例数量会产生费用。 | |
读写分离功能 | 代理连接地址是否开通了读写分离功能。详情请参见读写分离简介。 | |
短连接优化功能 | 代理连接地址是否开通了短连接优化功能。 详情请参见短连接优化。
说明 您可以通过右侧的开通或关闭按钮开关短连接优化功能。
|
|
事务拆分 | 代理连接地址是否开通了事务拆分功能。详情请参见事务拆分。 | |
代理实例 | 代理类型 | 当前仅支持独享代理。 |
代理规格 | 代理实例的规格,当前仅支持2核CPU、4GB内存的规格。 | |
开通个数(个) | 代理实例的数量。最多60个。
说明 推荐代理实例的数量为主实例及只读实例CPU核数的1/8 (向上取整)。
例如主实例为8核CPU,只读实例为4核CPU,则推荐代理实例数量=⌈(8+4)/8⌉ = 2。 |
调整代理实例数量
说明 调整代理实例数量会导致应用闪断,请确保系统具备重连机制。
查看监控数据
关闭代理服务
常见问题
- 5.7版本实例已经升级小版本了,为什么还是只有读写分离,没有独享代理功能?
升级后您需要关闭原有的读写分离,才能看到独享代理的开启页面。
- 想实现读写分离,是使用独享代理地址还是读写分离地址?
独享代理地址和读写分离地址相同,后端是基于独享代理地址实现读写分离。
相关API
API | 描述 |
---|---|
ModifyDBProxyInstance | 修改RDS数据库独享代理设置。 |
ModifyDBProxy | 开启或者关闭RDS实例的数据库独享代理功能。 |
DescribeDBProxy | 查询RDS实例的数据库独享代理详情。 |
DescribeDBProxyEndpoint | 查询RDS实例独享代理的连接地址信息。 |
ModifyDBProxyEndpoint | 修改RDS实例数据库独享代理的连接地址信息。 |
DescribeDBProxyPerformance | 查询独享代理实例的性能数据。 |
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。
评论