浅谈数据库分布式架构设计( 二 )


DRDS五大核心功能
分库分表
分库分表是DRDS的核心功能,DRDS 在后端将数据量较大的数据表水平拆分到后端的每个 RDS 数据库中,这些拆分到 RDS 中的数据库被称为分库,分库中的表称为分表 。拆分后,每个分库负责每一份数据的读写操作,从而有效的分散了整体访问压力 。在系统扩容时,只需要水平增加分库的数量,并且迁移相关数据,就可以提高 DRDS 系统的总体容量 。DRDS 支持库级拆分,表级拆分和分库分表拆分,通过 DRDS DDL 语句指定 。
读写分离
在主实例的读请求较多、读压力比较大的时候,可以通过 DRDS 读写分离功能对读流量进行分流,减轻 RDS 主实例的读压力 。
DRDS 的读写分离功能是对应用透明的设计 。应用在不修改任何代码的情况下,只需要在 DRDS 控制台中调整读权重,即可将读流量按配置的比例在主 RDS 实例与多个 RDS 只读实例之间进行分流;写流量则全部到主实例,不做分流 。
设置读写分离后,从主 RDS 实例读取的是强读,既实时强一致读,而只读实例上的数据是从主实例上异步复制的,存在毫秒级的延迟,因此从只读 RDS 实例读取的是弱读,属于非强一致性读 。个别需要实时性、强一致性读的 SQL 可以通过 DRDS Hint 指定到主实例上执行 。
全局唯一ID
DRDS 支持分布式全局唯一且有序递增的数字序列 。满足业务在使用分布式数据库下对主键或者唯一键以及特定场景的需求 。
小表广播
DRDS 将一些数据量小且更新频度不高的数据表存储为单表模式,这些数据表称为小表 。通过数据同步将小表复制到与之 JOIN 的分库上进而提升 JOIN 效率的解决方案称为“小表广播”或者“小表复制” 。支持查询引擎识别和下推复杂查询,兼容 98% MySQL 语法 。
弹性扩容
当逻辑库对应的底层存储已经达到物理瓶颈,需要进行水平扩展,比如磁盘余量接近30%,那么可以通过平滑扩容来改善 。平滑扩容是一种水平扩容方式,既把分库平滑迁移到新添加的底层存储上 。在实现上是通过增加 RDS 实例的数量来提升总体数据存储容量,将分库迁移到新增的 RDS 实例,从而降低单个 RDS 实例的处理压力 。
六分布式改造之后——运维
进行分布式改造之后,如何更省心省力对数据库进行运维?
靠人工?成本高、运维人员也难招!
借助数据库自动化管理平台EasyDB,企业数据库运维很简单 。
 

浅谈数据库分布式架构设计

文章插图
 
EasyDB完全兼容DRDS manager,具有高可用、高性能、易运维等特点 。从性能、资源、集群、备份、容灾入手,支持多种数据库实例,大规模量的数据库运维,提供稳定准确的数据库告警、大盘趋势分析预警、空间跟踪、SQL跟踪、巡检报告等功能 。运维管理人员可以轻松应对复杂的日常管理事务及突发性事件,数据库管理从此变得有规划,有效率,有预见性 。




推荐阅读