MyBase MySQL提供数据库代理服务,支持读写分离,本文介绍配置方法。
前提条件
实例为主实例。
已创建只读实例。具体操作,请参见创建只读实例(MySQL)。
费用说明
请参见数据库代理费用。
操作步骤
步骤一:开启数据库代理服务
登录云数据库专属集群控制台。
在页面左上角,选择目标地域。
在页面左侧单击。
找到目标主实例,单击操作列的详情。
在左侧导航栏单击数据库代理,单击右侧的开通代理。
单击立即开启代理,在弹出的页面设置代理个数,单击立即开启。
说明推荐的代理个数为主实例及只读实例CPU核数的1/8 (向上取整),最多60个。例如主实例为8核CPU,只读实例为4核CPU,则推荐代理数量= (8+4)/8 ≈ 2。
主实例若被释放,数据库代理会自动跟随主实例释放,释放后不再产生费用。
开启数据库代理后,您可以在代理服务页签看到数据库代理的基本信息。
类别
参数
说明
代理地址
运行状态
代理运行状态。
实例ID
主实例ID。
关联代理实例数量
代理连接地址关联的代理数量,可以通过增加代理数量提升代理处理请求的能力。
连接地址
代理终端
代理终端名称,一个代理终端中可以创建多个连接地址。更多信息,请参见读写分离简介。
连接地址
代理连接地址,数据库代理目前提供一个默认代理连接地址,代理终端功能绑定该地址。 您可以额外新增、修改、删除代理地址。更多信息,请参见设置数据库代理连接地址。
端口
代理连接地址的端口。
说明您可以单击右侧的修改端口按钮修改代理连接端口,取值:1000~5999。
网络地址类型
代理地址的网络地址类型。暂不支持切换网络地址类型。
代理实例
代理类型
当前仅支持独享代理。
代理规格
代理的规格,当前仅支持2核CPU、4 GB内存的规格。
开通个数(个)
代理的数量,多个代理可以实现负载均衡,分担代理压力。最多60个代理。
说明推荐的代理个数计算方式:
主实例CPU核数 + 该主实例下所有只读实例CPU核数 / 8(结果向上取整),最多60个。例如主实例为8核CPU,该实例下有1个4核CPU的只读实例,则推荐代理数量为
(8+4)/8 ≈ 2。
步骤二:配置代理终端
开通数据库代理后,您还需要设置代理终端,配置数据库代理的核心功能。
在数据库代理页面,单击代理终端(原读写分离)页签。
单击设置代理终端,设置如下参数。
参数
说明
自定义代理终端
指定代理终端的名称,最多支持30个字符。
读写属性
设置读写方式。
读写(默认):同时连接主实例和只读实例,可以接受写请求。
只读:仅连接只读实例,不接受写请求。
更多信息,请参见读写分离简介。
连接池
代理连接地址设置的连接池类型:
事务级连接池(默认):适用于总连接数比较多(如连接数上万)的场景。
会话级连接池:适用于PHP短连接场景。
关闭连接池:不使用连接池。
更多信息,请参见设置连接池类型。
说明仅在读写属性为读写(链接主实例,可接受写请求)时可选。
延迟阈值
只读实例同步主实例数据时允许的最长延迟时间。若一个只读实例的延迟时间超过该阈值,则无论该只读实例的权重是多少,读请求都不会转发至该只读实例。
取值范围为0秒到3600秒。受限于SQL的执行情况,只读实例有一定的几率会出现延迟,建议该值不小于30秒。
说明仅在读写属性为读写(链接主实例,可接受写请求)时可选。
事务拆分
是否开启事务拆分功能。事务拆分能够将事务内写操作之前的读请求转发到只读实例,降低主实例负载。默认为开启。
说明仅在读写属性为读写(链接主实例,可接受写请求)时可选。
更多信息,请参见事务拆分。
读写分离权重分配
实例的读权重越高,处理的读请求越多。例如,假设主实例有3个只读实例,读权重分别为0、100、200和200,则表示主实例不处理读请求(写请求仍然自动发往主实例),3个只读实例按照1:2:2的比例处理读请求。
系统分配:系统根据实例规格自动分配各个实例的读权重。后续该主实例下新增的只读实例也会自动按照系统分配的权重加入到读写分离链路中,无需手动设置。
自定义:手动设置各个实例的读权重,范围为0至10000。后续该主实例下新增只读实例的读权重默认为0,需要您手动修改。
说明修改本参数实时生效,不会造成业务闪断。修改完成后,已存在的连接不会断开重连,只有新连接才会根据新权重进行分配。
单击确定。
相关API
API | 描述 |
开启或者关闭数据库代理功能。 | |
查询数据库代理详情。 | |
设置数据库代理终端。 |