在对数据库有少量写请求,但有大量读请求的应用场景下,单个实例可能无法承受读取压力,甚至对业务产生影响。为了实现弹性扩展的读取能力,并分担数据库压力,RDS SQL Server支持通过创建一个或多个只读实例来实现读写分离,通过只读实例满足大量的数据库读取需求,可以增加应用程序的吞吐量。
简介
RDS SQL Server基于源生AlwaysOn技术,通过物理复制方式复制主实例生成只读实例,实现数据的同步。只读实例的数据与主实例保持一致,并且主实例的数据更新会自动同步到所有只读实例。
只读实例创建完成后,您需要开通读写分离(只读地址),并在应用程序中配置主实例地址和只读地址,以此实现写请求转发到主实例,读请求转发到只读地址。只读地址会根据权重自动将读请求分发到各个只读实例。
说明
RDS SQL Server和RDS MySQL的读写分离功能略有不同:
-
RDS SQL Server:需要在应用程序中分别配置主实例地址和只读地址,实现读写分离。
-
RDS MySQL:只需要在应用程序中配置一个读写分离地址,实现读写分离。
只读地址和内外网地址区别
开通只读地址后,您将获得一个额外的只读地址,将其配置在应用程序中,当客户端发出的读请求到达只读地址时,请求会根据实例的权重自动分配给内部的各个只读实例进行处理。
如果应用程序中只配置了主实例的内网或外网地址,那么请求只会被发送给主实例,而不会被分配给只读实例进行处理。
因此,为了实现读写分离,必须在应用程序中添加主实例地址和只读地址,并配置只读实例的权重。
读写分离优势
-
统一只读地址,方便维护。
通过连接只读地址,即可方便地对只读实例进行读操作,降低了维护成本。同时,应用程序无需进行任何修改,只需添加只读实例的个数,即可不断扩展系统的处理能力。
-
高安全链路原生支持,提升性能。
如果您在云上自行搭建代理层实现读写分离,在数据到达数据库之前需要经历多个组件的语句解析和转发,对响应延迟有较大的影响。而RDS内置于已有的高安全链路,没有任何额外的组件来消耗时间,可以有效降低延迟并提升处理速度。
-
可自定义设权重,符合多场景使用。
您可以自定义设置只读实例的读请求权重,以适应不同的场景需求。
-
实例健康检查,提升数据库系统的可用性。
读写分离模块会自动对只读实例进行健康检查,当发现某个实例发生宕机或延迟超过阈值时,系统将不再向该实例分配读请求,而是在剩余的健康实例间进行分配,以此确保单个只读实例发生故障时,不会影响应用的正常访问。当实例被修复后,RDS会自动将该实例纳回请求分配体系内。
说明
为避免单点故障,建议您为一个主实例创建至少两个只读实例。
-
只读地址免费使用,降低资源及维护成本。
RDS用户可以免费使用只读地址,无需支付额外费用。但只读实例需要按量付费。
注意事项
请参见创建SQL Server只读实例和开通读写分离(只读地址)文中的注意事项部分。
费用说明
创建只读实例会产生费用,支持包年包月和按量付费两种方式计费。包年包月费用请以实际购买页为准,按量付费具体费用请参见只读实例价格。
使用方法
-
创建SQL Server只读实例
-
开通读写分离(只读地址)
内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家
阿里云企业补贴进行中: 马上申请
腾讯云限时活动1折起,即将结束: 马上收藏
同尘科技为腾讯云授权服务中心。
购买腾讯云产品享受折上折,更有现金返利:同意关联,立享优惠
转转请注明出处:https://www.yunxiaoer.com/153907.html