资讯专栏INFORMATION COLUMN

RDS读写分离,海量数据一键搞定

VioletJack / 3251人阅读

摘要:同时在故障节点恢复后重新按权重进行负载均衡。用户只需要一个请求地址,业务不需要做任何修改,由自带的读写分离中间件服务来完成读写请求的路由及根据不同的只读实例规格进行不同的负载均衡,同时当只读实例出现故障时能够主动摘除,减少对用户的影响。

简介
RDS为用户提供高透明,高可用,高性能,高灵活的读写分离服务。在最近的版本我们基于短连接的用户进行了优化,使得短连接的用户负载均衡更加完善合理。RDS读写分离有如下特性:

易用/透明性
用户只需要在原来的只读实例的主实例上开通一个读写分离的VIP就可以使用读写分离,而不需要修改任何业务代码。对用户的接入成本几乎为0。

高可用
RDS读写分离服务能够主动判断只读库的健康情况(包括节点crash,主备同步异常,延迟较大等),对于不健康的只读库不再进行路由,从而保证系统的整体可用性。同时在故障节点恢复后重新按权重进行负载均衡。

高性能
RDS的读写分离服务,由RDS的中间件服务提供路由及负载均衡,对于读多写少的业务能够充分利用只读库的资源,使得整体业务性能得到显著的提高。

高灵活
RDS的读写分离服务为用户提供按权重的请求及连接双重负载均衡模式,用户可以根据自己只读库的硬件资源情况,对每个只读库设置相应的读权重,同时也支持把主库放到读列表里,分担部分读请求。

另外,为用户提供读库同步延迟的可用性配置,当用户对数据的实时性要求较高的话,用户可以通过调小该值来保证只有在只读库与主库的同步延迟小于该值时,读写分离服务才会把读请求路由到该只读库。

扩容更灵活,用户可以随着业务的增长适当的扩容只读库,而这个也只需要在控制台上下发一个扩容请求就可以,无需业务上做任务调整。

提供特定的hit语法:如/FORCE_MASTER/ /FORCE_SLAVE/,方便用户指定SQL到master或slave上执行;以及/PROXY_INTERNAL/show last route查看sql路由情况等。

场景应用
随着业务增长,数据越来越大,用户对数据的读取需求也随之越来越多,比如各种AP操作,都需要把数据从数据库中读取出来,同时,随着数据量的增加,读请求的性能消耗也可能随之增加,从而导致影响到用户的写请求,反之亦然,写请求也可能会影响到用户的读请求,使得DB的总体吞吐量下降。为了解决该问题,RDS之前提供了只读实例的方案,用户可以通过开通多个只读实例,将读请求业务直接连接到只读实例上,该方案能够解决上述问题,但引来的问题也很明显,用户的使用成本增大了:需要手动区分读写业务,有多个访问地址维护性差,无法做负载均衡,容易受只读实例的可用性影响等。

RDS云数据库读写分离就是为了解决如上问题而产生的。用户只需要一个请求地址,业务不需要做任何修改,由RDS自带的读写分离中间件服务来完成读写请求的路由及根据不同的只读实例规格进行不同的负载均衡,同时当只读实例出现故障时能够主动摘除,减少对用户的影响。对用户达到一键开通,一个地址,快速使用。

架构简介

阅读需要支付1元查看
<