2023-08-24 10:58:14
本文主要介绍通过设置读写代理,实现读写请求的自动转发,提高数据库的性能。
读写代理是指通过读写代理地址实现读写请求的自动转发。数据库读写代理为数据库服务端和应用服务端之间的网络代理服务,用于代理应用服务端访问数据库时的所有请求,具有高可用、高性能等特点。
当您的业务有大量读请求时,单个实例可能无法满足业务需求,为了分担主库的压力,满足业务对读请求的需求,您可以创建只读实例;创建只读实例成功后,您可以开启读写代理,在程序中配置读写代理的地址,由读写代理实现读请求被自动转发到只读实例,写请求被自动转发到主实例。
登录云数据库RDS控制台;
点击需要开启读写代理的目标实例名称,进入到实例详情页;
点击 只读实例管理 标签,进入只读实例管理页面
点击 读写代理 标签,进入读写代理页面
点击 开启读写分离代理 按钮,进入读写代理设置弹窗。
注: 如目标实例下没有只读实例,开启读写分离代理按钮置灰不能操作。您需要先创建只读实例。
读写代理的界面参数说明:
参数名称 | 说明 |
---|---|
只读实例延迟阈值 | •可输入2-10000秒,表示只读实例和主实例最大同步时延 •只读实例与主实例的延迟超过阈值后,只读实例将从读写代理后端被移除。 |
负载均衡策略 | 读写代理分发读写请求的负载均衡策略,支持最少活跃连接数、最少连接数、最小同步时延、平均响应时延 |
连接超时时间 | •填写范围:1-60秒,默认为3秒 •只读实例健康检查的方法。超时后只读实例将从读写代理后端被移除。 |
重复次数 | •填写范围:1-10,默认为1次 •只读实例健康检查的方法。重试次数超过指定次数后,只读实例健康检查失败,将从读写代理后端被移除。 |
检查时间间隔 | •填写范围:1-600,默认为2秒 •只读实例健康检查的方法,根据时间间隔对读写代理后端的只读实例进行健康检查。 |
点击 确认 按钮,提交创建读写代理的请求。
注 :
在事务中的查询只会分配到主库。
多语句查询只会分配到主库,如insert into...; select last_insert_id();
存储过程、函数只会分配到主库。
执行Multi-Statements只会分配到主库。
不保证非事务读的一致性,业务上有读一致性需求可以封装到事务中。
不支持查询语句中使用变量,将返回错误。
配置读写代理的外网访问,从而可让应用服务的从外网访问数据库。
登录 云数据库 RDS 控制台;
点击需要开启读写代理的目标实例名称,进入到实例详情页;
点击 只读实例管理 标签,进入只读实例管理页面;
选择 读写代理 标签,打开读写代理管理页面;
点击 开启读写代理外网访问 按钮,进入弹窗;
在确认弹窗中,点击 确定 按钮;
外网访问开启后,系统会自动分配一个外网域名地址。
注 :
默认情况下,外网访问关闭,出于安全考虑不建议开启外网访问。
开启外网访问前,请先设置白名单。
由于外网域名生效需要一定时间,请耐心等待3~5分钟。
如果关闭了外网访问,下次再次开启外网访问,访问地址会发生变化。
开启外网访问后,所产生的公网流量暂不收费。
开启读写代理成功后,您可以在读写代理管理页面重新修改读写代理的配置。
重置读写代理请求提交后,为保证所有负载被重新均衡,读写代理后端的实例会有一次数据库连接瞬断,请确保应用程序能重连数据库。
登录 云数据库 RDS 控制台;
点击需要重置读写代理的目标实例名称,进入到实例详情页;
点击 只读实例管理 标签,进入只读实例管理页面;
选择 读写代理 标签,打开读写代理管理页面;
点击 重置读写分离 按钮,进入重置读写分离提示页面;
进入重置读写分离页面,默认显示读写分离当前配置的参数,您可以根据要求,重新编辑读写分离的参数;
点击 确定 按钮,提交重置读写分离的请求。
我们的产品专家为您找到最合适的产品/解决⽅案
1v1线上咨询获取售前专业咨询
专业产品顾问,随时随地沟通