检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
未实名认证
已实名认证
分享文档到微博
复制链接到剪贴板
链接复制成功!
创建TaurusDB实例后,您可以开通数据库代理,通过代理地址实现读写请求的自动转发。写请求自动访问主节点,读请求按照数据库代理的路由模式分发到各个节点,降低主节点的负载。
本章节介绍使用数据库代理实现读写分离的过程,主要流程如下:
步骤1:开通数据库代理
步骤2:进行用户认证
步骤3:检查安全组规则
步骤4:使用代理地址连接TaurusDB实例
步骤5:验证读写分离效果
在使用数据库代理之前,请先了解以下内容:
参数名称
说明
代理实例名称
长度在4个到64个字符之间,必须以字母开头,区分大小写,可以包含字母、数字、中划线或下划线,不能包含其他特殊字符。
代理模式
TaurusDB数据库代理支持读写和只读两种代理模式,可根据业务需要选择合适的代理模式。
一致性级别
TaurusDB实例的内核版本为2.0.28.1及以上时支持设置一致性级别。内核版本的查询方法请参见如何查看云数据库 TaurusDB实例的版本号。
数据库代理支持如下一致性级别:
开启数据库代理后,同一会话内,连续多次SELECT请求会根据权重配比,路由到不同的数据库节点,由于主节点与读节点之前存在复制时延,并且各个读节点的复制时延大小不一定完全相同,可能会导致每次SELECT请求得到的结果存在差异,因此默认情况下,数据库代理只能保证数据的最终一致。
如果需要减轻主节点压力,让尽量多的读请求路由到只读节点,您可以选择最终一致性。
由于最终一致性可能会导致多次SELECT请求的结果存在差异,数据库代理进一步提供了会话级别的数据一致性,保证了在同一会话内,每次SELECT请求都可以获取到上一次写入操作后,数据库的最新数据。
开启会话一致性需要数据库代理的内核版本为2.7.4.0及以上。
路由模式
数据库代理支持如下路由模式:
负载均衡模式需要保证数据库代理的内核版本为2.22.07.000及以上。
更多关于路由模式的内容请参见修改TaurusDB代理的路由模式。
代理实例规格
根据实际需要选择代理实例规格。
子网
该功能为白名单功能,如需使用,请在管理控制台右上角,选择“工单 > 新建工单”,提交申请。
开通数据库代理时可指定代理实例子网。如果TaurusDB实例所在子网为扩展网段,则不支持跨子网开启数据库代理,需要与TaurusDB实例在同一子网。
代理实例节点数量
默认为2个节点。最小支持2个节点,最大支持16个节点。
推荐代理实例节点数量 =(主节点CPU核数+所有只读节点CPU核数总和)/(4*代理实例CPU核数),计算结果向上取整。
新节点自动加入
开启新节点自动加入开关后,新增的只读节点会自动添加到该数据库代理实例中。
新节点权重
当路由模式为权重负载时,需要设置新节点的读权重。节点的读权重默认为100,读权重越高,处理的读请求越多。
选择数据库节点
勾选需要加入到数据库代理中处理读请求的节点。
例如:代理实例已选择1个主节点和2个只读节点,读权重配置为100、200、200。
在读写模式下,主节点和2个只读节点将按照1:2:2的比例处理读请求。即主节点处理20%的读请求,2个只读节点分别处理40%的读请求,写请求自动发往主节点。
在只读模式下,主节点权重在进行读请求处理分配时不生效,由2个只读节点分别处理50%的读请求。
数据库代理开通后,在数据库代理页面可查看到已创建成功的代理实例。
单击左侧导航栏中“实例概览”,进入TaurusDB实例概览页面。单击页面右上方,选择“查看实例拓扑图”,在实例拓扑图中可查看对应代理实例关联的数据库节点。将鼠标悬浮在节点信息处,可查看该节点的详细信息。
在使用数据库代理连接TaurusDB实例前,需要确保当前数据库账号具有访问数据库代理地址的权限,否则将无法通过数据库代理连接到TaurusDB实例。
您可以通过以下步骤来检查权限并授权该账号访问数据库代理地址的权限。
具体操作请参见连接实例。
SELECT user,host FROM mysql.user;
代理地址获取方式:
例如:使用root用户想要从192.168.0网段连接到TaurusDB实例,您可以在DAS用户管理界面将当前账号的主机设置为192.168.%。具体操作请参见编辑用户信息。
确保入方向规则和出方向规则允许数据库代理地址访问,默认端口号为3306。
如果没有该条规则,单击“快速添加规则”,弹框页面中勾选“MySQL(3306)”,单击“确定”。
单击目标TaurusDB实例,进入实例概览页面。在左侧导航栏单击“数据库代理”,在代理实例列表中查看代理地址和端口号。
详细内容请参考《弹性云服务器用户指南》。
mysql -h <hostIP> -P <port> -u <userName> -p <password>
参数
<hostIP>
1中获取到的代理地址。
<port>
1中获取到的数据库端口。
<userName>
用户名,即TaurusDB数据库管理员账号,默认为root。
<password>
TaurusDB数据库管理员账号对应的密码。
您可以在每次执行完对应的读操作后,通过show last route命令来查看本次读操作的路由结果。
以下步骤以一条读操作为例,介绍查看读请求的路由结果。
例如:select 1;
show last route
请勿将show last route用于业务代码或包在Multi-Statements中执行。
上一篇:TaurusDB数据库代理简介
下一篇:变更数据库代理配置
在使用文档中是否遇到以下问题
意见反馈(选填)
请至少选择一项反馈信息并填写问题反馈
字符长度不能超过500
如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨