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

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
网络型负载均衡 NLB,每月750个小时 15LCU
简介: (文末有彩蛋) # 简介 RDS为用户提供高透明,高可用,高性能,高灵活的读写分离服务。在最近的版本我们基于短连接的用户进行了优化,使得短连接的用户负载均衡更加完善合理。RDS读写分离有如下特性: * 易用/透明性 用户只需要在原来的只读实例的主实例上开通一个读写分离的VIP就可以使用读写分离,而不需要修改任何业务代码。

(文末有彩蛋)

简介

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自带的读写分离中间件服务来完成读写请求的路由及根据不同的只读实例规格进行不同的负载均衡,同时当只读实例出现故障时能够主动摘除,减少对用户的影响。对用户达到一键开通,一个地址,快速使用。

架构简介

Snip20170804_1.png

图1 用户链路视图

对于用户来说看到的还是一个普通的mysql连接,只是这个连接先直接访问RDS的中间件服务,再由中间件服务进行转发,对用户来说是完全透明的。

  • 内部框架

Snip20170804_2.png

图2 RDS中间件内部组件

RDS中间件服务的读写分离功能,主要由图2所示的模块组成。

  • RW SESSION:每个用户连接对应的RDS中间件服务里的一个rw session,其中主要维护着一个与主库的socket以及与只读库的ro_session,同时负责session状态的保持及恢复
  • RO SESSION:负责与只读库的请求处理
  • ROUTE STRATEGT:该模块也是读写分离的核心模块,负责sql的路由决策
  • LB:load balance,负责读请求的负载均衡,使用常用的weighted round robin算法
  • QOS:负责只读库的健康检查

PS:当前PGSQL暂时不支持读写分离

总结

RDS云数据库自带的读写分离服务能够有效的解决用户数据量大读请求多,带来的DB吞吐量下降等问题;一键开通、一个地址、快速使用极大的减少了用户的使用成本;配置灵活,自动检测消除了单点故障提高了系统的可用性。

这里是彩蛋

感谢各位小伙伴的耐心阅读,现在参加MySQL读写分离微博转发活动还有机会获得天猫精灵以及阿里云T恤。

点击云栖社区官方微博活动链接:https://weibo.com/1939498534/FymI1zPYp?type=comment

友情链接:

读写分离help

开通介绍

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
7月前
|
存储 关系型数据库 MySQL
MySQL 读写分离原理
MySQL 读写分离原理
108 0
MySQL 读写分离原理
|
7月前
|
关系型数据库 MySQL Java
MySQL的主从复制 && SpringBoot整合Sharding-JDBC解决读写分离
MySQL的主从复制 && SpringBoot整合Sharding-JDBC解决读写分离
152 0
|
7月前
|
SQL 关系型数据库 MySQL
Mycat【Mycat部署安装(核心配置及目录结构、安装以及管理命令详解)Mycat高级特性(读写分离概述、搭建读写分离、MySQL双主双从原理)】(三)-全面详解(学习总结---从入门到深化)
Mycat【Mycat部署安装(核心配置及目录结构、安装以及管理命令详解)Mycat高级特性(读写分离概述、搭建读写分离、MySQL双主双从原理)】(三)-全面详解(学习总结---从入门到深化)
646 0
|
2月前
|
负载均衡 监控 关系型数据库
MySQL 官宣:支持读写分离了!!
【10月更文挑战第8天】MySQL的读写分离功能显著提升了数据库性能、可用性和可靠性。通过将读写操作分配至不同服务器,有效减轻单个服务器负载,提高响应速度与吞吐量,并增强系统稳定性。此外,它还支持便捷的扩展方式,可通过增加只读服务器提升读操作性能。实现读写分离的方法包括软件层面(如使用数据库中间件)和硬件层面(使用独立服务器)。使用时需注意数据一致性、负载均衡及监控管理等问题。
145 0
|
7月前
|
SQL 关系型数据库 MySQL
mysql 主从复制与读写分离
mysql 主从复制与读写分离
|
3月前
|
关系型数据库 MySQL Java
MySQL主从复制实现读写分离
MySQL主从复制(二进制日志)、 Sharding-JDBC实现读写分离
MySQL主从复制实现读写分离
|
4月前
|
安全 关系型数据库 MySQL
揭秘MySQL海量数据迁移终极秘籍:从逻辑备份到物理复制,解锁大数据迁移的高效与安全之道
【8月更文挑战第2天】MySQL数据量很大的数据库迁移最优方案
761 17
|
4月前
|
SQL 关系型数据库 MySQL
(二十五)MySQL主从实践篇:超详细版读写分离、双主热备架构搭建教学
在上篇《主从原理篇》中,基本上把主从复制原理、主从架构模式、数据同步方式、复制技术优化.....等各类细枝末节讲清楚了,本章则准备真正对聊到的几种主从模式落地实践,但实践的内容通常比较枯燥乏味,因为就是调整各种配置、设置各种参数等步骤。
632 3
|
4月前
|
关系型数据库 MySQL PHP
开发者必看:MySQL主从复制与Laravel读写分离的完美搭配
开发者必看:MySQL主从复制与Laravel读写分离的完美搭配
84 2
|
4月前
|
存储 SQL 关系型数据库
(二十一)MySQL之高并发大流量情况下海量数据分库分表的正确姿势
从最初开设《全解MySQL专栏》到现在,共计撰写了二十个大章节详细讲到了MySQL各方面的进阶技术点,从最初的数据库架构开始,到SQL执行流程、库表设计范式、索引机制与原理、事务与锁机制剖析、日志与内存详解、常用命令与高级特性、线上调优与故障排查.....,似乎涉及到了MySQL的方方面面。但到此为止就黔驴技穷了吗?答案并非如此,以《MySQL特性篇》为分割线,整个MySQL专栏从此会进入“高可用”阶段的分析,即从上篇之后会开启MySQL的新内容,主要讲述分布式、高可用、高性能方面的讲解。
311 1