SQL Server提供管理只读实例功能,并且提供一个只读地址,实现读请求根据权重自动转发到所有只读实例。

在对数据库有少量写请求,但有大量读请求的应用场景下,单个实例可能无法承受读取压力,甚至对业务产生影响。为了实现读取能力的弹性扩展,分担数据库压力,您可以创建一个或多个只读实例,利用只读实例满足大量的数据库读取需求。

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

说明 RDS SQL Server和RDS MySQL的读写分离功能略有不同:
  • RDS SQL Server:目前需要您在应用程序中分别配置主实例地址和只读地址,实现读写分离。
  • RDS MySQL:需要您在应用程序中配置一个读写分离地址,实现读写分离。

只读地址和内外网地址区别

开通只读地址后将会生成一个只读地址,将其配置在应用程序中,客户端发出的读请求到达只读地址后会根据实例权重自动分配给内部的各个只读实例。

应用程序中的地址如果只有主实例的内网或外网地址,则请求只会交给主实例,而不会交给只读实例处理,必须在程序中添加主实例地址和只读地址,并且配置只读实例的权重,才能达到读写分离的效果。

功能优势

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

    连接只读地址后即可对只读实例进行读操作,可降低维护成本。

    同时,您只需添加只读实例的个数,即可不断扩展系统的处理能力,应用程序无需做任何修改。

  • 高安全链路原生支持,提升性能。

    如果您在云上自行搭建代理层实现读写分离,数据在到达数据库之前需要经历多个组件的语句解析和转发,对响应延迟有较大的影响。而RDS内置于已有的高安全链路,没有任何额外的组件来消耗时间,能够有效降低延迟,提升处理速度。

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

    您可以设置只读实例的读请求权重。

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

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

    说明 为避免单点故障,建议您为一个主实例创建至少两个只读实例。
  • 免费使用,降低资源及维护成本。

    为普惠用户,RDS用户可以免费使用只读地址,无需支付任何额外费用。

    说明 只读地址免费,但是 只读实例需要按量付费。