开通读写分离
读写分离是指通过一个读写分离的连接地址实现读写请求的自动转发。通过RDS的读写分离连接地址,写请求自动访问主实例,应用直连即可实现自动读写分离。本文将介绍如何开通读写分离功能。
操作步骤
1、登录管理控制台。
2、单击管理控制台右上角区域选择,选择区域和项目。
3、在页面左上角单击,选择“数据库 > 关系型数据库MySQL”。进入云数据库 RDS信息页面。
4、在实例列表中,单击目标实例的名称,进入实例的“基本信息”页面。
5、在左侧导航栏中,单击“数据库代理”。
6、您还可以在实例的“基本信息”页面,单击“连接信息”模块“读写分离地址”后的“申请”,跳转到“数据库代理”页面。
7、在“数据库代理”页面单击“创建数据库代理”。
图 开启数据库代理服务
- 读写分离具备连接保持、读写分离能力。开启读写分离后,将新增1个读写分离连接地址,请将应用连接切换到新地址。
- 读写分离地址:通过读写分离地址连接数据库,可实现读写分离功能。
- 该读写分离地址与实例的内网IP地址处于同一VPC和子网,且与实例的内网IP地址并存,互不影响。
- 延时阈值:对于成功开启读写分离功能的实例,您可以设置其延时阈值。具体操作请参见设置延时阈值和读写分离权重。
- 读权重分配:对于成功开启读写分离功能的实例,您可以设置其主实例和只读实例的权重。
设置延迟阈值和读写分离权重
开通读写分离功能后,并创建只读实例后,您可以根据需要设置读写分离的延迟阈值和读权重分配。
表 读写分离参数说明
参数 | 说明 |
---|---|
延时阈值 | 只读实例同步主实例数据时允许的最长延迟时间。延时阈值仅在存在只读实例时生效。为避免只读实例读取的数据长时间和主实例不一致,当一个只读实例的延迟时间超过设置的延迟阈值,则不论该只读实例的读权重是多少,读请求都不会转发至该只读实例。读写分离功能成功开启后,延时阈值默认为30s,阈值默认范围为0~7200s,建议该阈值不小于30s,超出阈值的只读实例不分配流量。 |
读权重分配 | 读写分离功能成功开启后,主实例的读权重默认为0,可以修改;只读实例可以设置读权重。设置主实例和只读实例的读权重分配,仅在存在只读实例时生效。实例的读权重越高,处理的读请求越多。例如,假设主实例有4个只读实例,实例的读权重分别为0、100、200、500、300,则表示主实例不处理读请求(写请求仍然自动发往主实例),四个只读实例按照1:2:5:3的比例处理读请求。开通读写分离功能后,系统将根据只读实例的规格默认分配权重,后续新增只读实例也将按照默认规则分配权重。 |
设置延迟阈值
1、登录管理控制台。
2、单击管理控制台右上角区域选项,选择区域和项目。
3、在页面左上角单击,选择“数据库 > 关系型数据库MySQL”。进入云数据库 RDS信息页面。
4、在实例列表中,单击只读实例所在的主实例名称,进入主实例的“基本信息”页面。
5、在左侧导航栏中,单击“数据库代理”, 在代理服务信息模块“延时阈值”处单击,设置延迟阈值。
图 设置延迟阈值
设置读写分离权重
1、登录管理控制台。
2、单击管理控制台右上角区域选项,选择区域和项目。
3、在页面左上角单击,选择“数据库 > 关系型数据库MySQL”。进入云数据库 RDS信息页面。
4、在实例列表中,单击只读实例所在的主实例名称,进入主实例的“基本信息”页面。
5、在左侧导航栏中,单击“数据库代理”,在“权重负载”右侧单机“设置”,设置权重。
图 设置读写分离权重
测试读写分离效果
通过读写分离地址连接数据库,可实现读写分离功能。您可以使用内部SQL命令对读写分离效果进行验证。
操作步骤
1、通过读写分离地址连接数据库,具体请参考开通读写分离。
2、确定数据库主实例地址和只读实例的地址。
3、执行命令查看执行SQL命令的实例。
4、可以通过执行show last route查询上一条语句的路由结果,结果显示该读操作采用的是只读实例的地址,如下图所示。