更新时间:2024-04-29 GMT+08:00
分享

开通读写分离

读写分离是指通过一个读写分离的连接地址实现读写请求的自动转发,通过GaussDB(for MySQL)的代理地址,写请求自动访问主节点,应用直连即可实现自动读写分离。目前支持创建4个代理实例,多个代理实例适用于有隔离需求的复杂业务,根据业务需要使用对应的代理地址连接到实例。

本文介绍如何开通读写分离功能。

约束限制

云数据库 GaussDB(for MySQL)的内核版本符合以下条件,不允许开通读写分离。

  • 云数据库 GaussDB(for MySQL)的内核版本大于等于2.0.26.2且小于等于2.0.28.3
  • 云数据库 GaussDB(for MySQL)的内核版本等于2.0.29.1

操作步骤

  1. 登录管理控制台
  2. 单击管理控制台左上角的,选择区域和项目。
  3. 在页面左上角单击,选择数据库 > 云数据库 GaussDB(for MySQL)
  4. 在实例列表中,单击目标实例的名称,进入实例的“基本信息”页面。
  5. 在左侧导航栏中,单击“数据库代理”

    图1 数据库代理页面

  6. 单击“新增代理”。
  7. 在弹出的对话框中,根据表1设置相关参数后,单击“确定”,开启实例的读写分离功能。

    在已有一个代理实例后,还需创建新的代理实例并开通读写分离功能,请单击“新增代理”进行设置。

    图2 开启数据库代理服务

    表1 设置读写分离参数

    参数名称

    说明

    代理实例名称

    长度在4个到64个字符之间,必须以字母开头,区分大小写,可以包含字母、数字、中划线或下划线,不能包含其他特殊字符。

    代理模式

    • 读写模式:所有写请求只发往主节点,所有读请求按照读权重配比或者是活跃连接数情况分发到已选节点。主节点的读权重值默认为100。
    • 只读模式:所有读请求按照读权重配比或者是活跃连接数情况分发到已选只读节点,不会分发到主节点。
      说明:
      • 只读模式仅支持读请求业务,写业务请求会有异常提示。
      • 该功能降低了主节点负载。
      • 在只读模式下,不支持DDL、DML操作和临时表操作。

    一致性级别

    GaussDB(for MySQL)实例的内核版本为2.0.28.1及以上时支持设置一致性级别。

    数据库代理支持如下一致性级别:

    • 最终一致性

      开启数据库代理后,同一会话内,连续多次SELECT请求会根据权重配比,路由到不同的数据库节点,由于主节点与读节点之前存在复制时延,并且各个读节点的复制时延大小不一定完全相同,可能会导致每次SELECT请求得到的结果存在差异,因此默认情况下,数据库代理只能保证数据的最终一致。

      如果需要减轻主节点压力,让尽量多的读请求路由到只读节点,您可以选择最终一致性。

    • 会话一致性

      由于最终一致性可能会导致多次SELECT请求的结果存在差异,数据库代理进一步提供了会话级别的数据一致性,保证了在同一会话内,每次SELECT请求都可以获取到上一次写入操作后,数据库的最新数据。

      开启会话一致性需要数据库代理的内核版本为2.7.4.0及以上。

    更多关于一致性级别的内容请参见一致性级别

    路由模式

    如需开通设置路由模式功能,请在管理控制台右上角,选择“工单 > 新建工单”,提交申请。

    数据库代理支持如下路由模式:

    • 权重负载:根据您设置的读权重比例分发读请求。
    • 负载均衡:根据数据库节点的活跃连接数情况进行读请求分发,将读请求分发到活跃连接数较少的节点上。

      负载均衡模式需要保证数据库代理的内核版本为2.22.07.000及以上。

    代理实例规格

    根据实际需要选择代理实例规格。

    • 鲲鹏通用计算增强型:2 vCPUs | 4 GB、4 vCPUs | 8GB、8 vCPUs | 16 GB
    • 通用增强型:2 vCPUs | 4 GB、4 vCPUs | 8 GB、8 vCPUs | 16 GB

    子网

    开通读写分离时支持指定子网。

    • 如需开通开启读写分离指定子网的权限,请在管理控制台右上角,选择“工单 > 新建工单”,提交申请。
    • 如果GaussDB(for MySQL)实例所在子网为扩展网段,则不支持跨子网开启读写分离,需要与GaussDB(for MySQL)实例在同一子网。

    代理实例节点数量

    默认为2个节点。最小支持2个节点,最大支持32个节点。

    推荐代理实例节点数量 =(主节点CPU核数+所有只读节点CPU核数总和)/(4*代理实例CPU核数),计算结果向上取整。

    选择数据库节点

    勾选需要加入到数据库代理中处理读请求的节点。

    • 路由模式为负载均衡时,不需要配置读权重。数据库代理会根据节点的活跃连接数情况进行读请求分发,将读请求分发到活跃连接数较少的节点上。
    • 路由模式为权重负载时,需要设置主节点和只读节点的读权重。数据库代理会根据您设置的读权重比例分发读请求。

      例如:代理实例已选择1个主节点和2个只读节点,读权重配置为100、200、200。

      在读写模式下,主节点和2个只读节点将按照1:2:2的比例处理读请求。即主节点处理20%的请求,2个只读节点分别处理40%的请求,写请求自动发往主节点。

      在只读模式下,主节点权重在进行读请求处理分配时不生效,由2个只读节点分别处理50%的请求。

  8. 读写分离开通后,在GaussDB(for MySQL)实例的“基本信息”页面,单击代理实例,在实例拓扑图中可查看每个代理实例关联的数据库节点。将鼠标悬浮在节点信息处,可查看该节点的详细信息。

    图3 代理实例关联节点信息

分享:

    相关文档

    相关产品