全部产品
Search
文档中心

云数据库 RDS:开通读写分离(只读地址)

更新时间:Oct 18, 2024

RDS SQL Server提供管理只读实例的能力,并提供了一个只读地址,您可以在应用程序中配置主实例地址和只读地址,以此实现读写分离。该功能将有效提高系统的性能、可扩展性和读取操作的负载均衡,为应用程序提供更高效的读写分离服务。

读写分离简介

RDS SQL Server只读实例创建后开通读写分离(只读地址),并在应用程序中配置主实例地址和只读地址,可以实现写请求转发到主实例,读请求转发到只读地址,只读地址会根据权重将读请求自动转发给各个只读实例。

image

读写分离优势

  • 统一只读地址,方便维护。

    通过连接只读地址,即可方便地对只读实例进行读操作,降低了维护成本。同时,应用程序无需进行任何修改,只需添加只读实例的个数,即可不断扩展系统的处理能力。

  • 可自定义设权重,符合多场景使用。

    您可以自定义设置只读实例的读请求权重,以适应不同的场景需求。

  • 实例健康检查,提升数据库系统的可用性。

    读写分离模块会自动对只读实例进行健康检查,当发现某个实例发生宕机或延迟超过阈值时,系统将不再向该实例分配读请求,而是在剩余的健康实例间进行分配,以此确保单个只读实例发生故障时,不会影响应用的正常访问。当实例被修复后,RDS会自动将该实例纳回请求分配体系内。

    说明

    为避免单点故障,建议您为一个主实例创建至少两个只读实例。

只读地址和内外网地址说明

只读地址是一个额外的地址,配置在应用程序中可以实现读写分离。当客户端的读请求到达只读地址时,请求会根据实例的权重自动分配给备节点和所有配置的只读实例进行处理。

如果应用程序中只配置了主实例的内网或外网地址,那么请求只会被发送给主实例,而不会被分配给只读实例进行处理。

前提条件

已创建只读实例,请参见创建SQL Server只读实例

注意事项

  • 开通只读地址后生成的只读地址是固定的(只读地址暂不支持手动修改),不会因为多次关闭或开启只读地址而变化,因此您不用多次更改应用程序,降低维护成本。

  • 开通及使用只读地址是免费的,当前仅收取只读实例的费用。

  • 只读地址暂不支持经典网络。

开通读写分离

开通读写分离连接,并配置只读地址的权重比,系统将根据已配置的权重比例处理读请求。

  1. 访问RDS实例列表,在上方选择地域,然后单击目标实例ID。

  2. 单击左侧导航栏中的集群管理,然后单击右侧的立即开启

  3. 在弹出的对话框中,设置只读地址类型和各节点(主节点、备节点、只读实例)的权重分配。

    主节点和备节点为集群系列实例本身架构,只读实例为您手动所创建。更多详情,请参见集群系列架构

    image

    参数

    说明

    地址类型

    • 内网(专有网络):仅用于同VPC下的实例(ECS等阿里云实例)内网访问。

    • 外网地址:业务部署在其他VPC或本地机器上,需要通过外网地址访问实例,但您需提前手动申请外网地址。具体操作,请参见开通或关闭外网地址

    说明

    由于外网网络易波动,建议在业务中使用内网地址进行连接。更多详情,请参见内网地址和外网地址的区别

    权重分配

    参与权重分配的角色包括主节点、备节点和只读实例(存在时显示),读权重越高,处理的读请求越多。例如,若主实例有3个只读实例,读权重分别为100、200和200,则3个只读实例将按照1:2:2的比例处理读请求。

    • 系统分配:系统根据实例规格自动分配只读实例的读权重。

      后续该主实例下新增的只读实例也会自动设置权重,无需手动设置。更多详情,请参见系统权重分配规则

    • 自定义:手动设置各节点的读权重,范围为0~10000。

      后续该主实例下新增只读实例的读权重默认为0,需要您手动修改。

    重要

    如果集群中的只读实例释放了,系统会自动移除该只读实例的权重分配。

  4. 单击确定

查看集群信息

您可以访问目标实例的集群管理页面,查看集群基本信息和配置列表。

查看集群基本信息

集群基本信息包含只读地址网络端口地址类型权重分配模式参与实例个数等。

image

查看集群配置列表

实例列表展示了集群内所有实例及其对应的运行状态角色读权重等,您可以在此查看与管理集群内各角色实例。

image

相关操作

  • 业务压力过大时,您可按需重新修改只读地址的读权重分配比例,只读地址会根据修改后的权重将读请求自动转发给备节点和所有配置的只读实例。具体操作,请参见修改读权重分配

  • 如果您不再需要读写分离功能,可以将其关闭。具体操作,请参见关闭读写分离(只读地址)