暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

分布式关系型数据库DRDS

Reborn2020 2020-06-04
1248

一、定义

DRDS兼容MySQL交互协议,支持大部分MySQL的DML和DDL语法,具备分库分表、平滑扩容、服务升降配、透明读写分离等分布式数据库核心能力和特性

产品具备轻量(无状态)、灵活、稳定和高效等特点,并且为您提供分布式数据库全生命周期的运维管控能力

解决单机数据库容量瓶颈和扩展困难等问题



二、应用场景

1.面向客户类的互联网应用,围绕人或者用户为主体展开业务(DRDS for MySQL)

2.前台高并发低延迟类数据业务,例如银行、医院等柜台类业务,车联网车辆数据操作、轨迹跟踪、油耗曲线等(DRDS for MySQL)

3.归档不再改变(包括历史数据)的数据存储和聚合分析,例如已经完结的订单、流水、日志、操作行为记录等(DRDS for HiStore)



三、功能特性

1.分库分表

DRDS最擅⻓前台落数据业务。这类业务⼤部分操作围绕某⼀个数据库主体展开,例如互联⽹业务典型的按照⽤⼾展开业务操作,物联⽹围绕设备、⻋辆等展开业务操作,银⾏政府机构柜⾯类业务围绕客⼾展开业务操作后台类业务中,按条件组合过滤出⼀批数据分⻚展⽰,并且处理数据后写回数据库是DRDS能够部分解决的业务场景。这时可能存在⼤量单表和多表关联,多种过滤条件组合删选,多表事务处理等。这类场景⾸要拆分⽅式还是推荐数据主体拆分。如果数据库处理和时间紧相关,也可以按时间拆分


2.表单拆分

DRDS为⽤⼾提供了便捷的表单拆分和变更功能,⽀持单表转分表、分表转单表、分表转分表三种变更⽅式,拆分变更灵活⾃主

3.读写分离

DRDS的读写分离功能是基于RDS for MySQL只读实例所做的⼀种相对透明读流量切换策略

业务应⽤在能够忍受只读实例相对于主实例数据同步延迟的前提下,不需要修改代码,即可在DRDS控制台中增加RDS for MySQL只读实例和调整读权重,将读流量按照需要的⽐例在RDSfor MySQL主实例与多个RDS for MySQL只读实例之间调整,写操作和事务操作则统⼀走RDS for MySQL主实例



4.平滑扩容

创建扩容计划

全量迁移

增量数据同步

数据校验

应⽤停写和路由切换


5.服务升降配

DRDS Server层通过集群⽅式部署,由多个服务节点构成⼀个服务实例,通过负载均衡与DNS对外提供服务。DRDS的多个服务节点之间⽆状态同步,均衡处理外部请求。当服务集群的处理能⼒不⾜的时候,⽀持实时增加服务节点,扩展服务能⼒。


6.账号和权限系统

DRDS账号权限系统⽤法和MySQL⼀致,但是不⽀持跨多个数据库的授权,并且权限丰富度上也相较MySQL有⼀定的精简,⽀持 GRANT、REVOKE、SHOW GRANTS、CREATE USER、DROP USER、SET PASSWORD 等语句,⽬前⽀持库级和表级权限的授予,全局级别和列级别权限暂时不⽀持

权限⽬前⽀持和表相关联的8个基本权限项:CREATE、DROP、ALTER、INDEX、INSERT、DELETE、UPDATE、SELECT。

7.全局二级索引

DRDS全局二级索引(Global Secondary Index, GSI),允许用户按需增加拆分维度,提供全局唯一约束。每个GSI对应一张索引表,使用XA多写保证主表和索引表之间数据强一致

8.全局唯一数字序列

DRDS全局唯⼀数字序列(64位数字,对应MySQL中Signed BIGINT类型)的主要⽬标是为了⽣成全局唯⼀的数字序列(不保证递增),通常⽤于主键列、唯⼀键等值的⽣成。


9.秒级监控

DRDS⽀持通过指令 SHOW FULL STATS⽀持秒级监控,配合业务⾃⾝监控系统,或者对接第三⽅开源监控软件,达到⽐较好的监控告警效果

10.分布式SQL引擎

DRDS分布式SQL引擎⽬标是实现与单机MySQL数据库的⾼度兼容,实现分布式SQL操作下推(offload),下推核心原则有尽可能贴近数据做数据处理,减少数据的⽹络传输,减少DRDS层⾯的计算量,尽量将计算下推到下层的数据节点上,充分发挥数据库存储的特性和能⼒

11.高可用架构

DRDS Server⾃动切流:DRDS实例由多个DRDS Server(服务进程)构成,通过负载均衡设备以单⼀连接串的⽅式提供服务。当⼀个DRDS Server出现故障时,流量以秒级切换到其他DRDS Server上。整个切换过程对⽤⼾透明,应⽤代码⽆需变更,应⽤进程⽆需重启

只读实例⾃动切流:DRDS⽀持读写分离功能,可以在控制台的 DRDS数据库 > 读写分离⻚⾯进⾏配置。将部分读流量分配到备实例上。DRDS将识别出读SQL命令请求,并按照配置的⽐例下发到主、备RDS/MySQL实例执⾏,达到读写分离的⽬的。分配了读流量的备实例称为只读实例

12.分布式事务

分布式事务通常使用二阶段提交来保证事务的原子性(Atomicity)和一致性(Consistency)

二阶段事务将事务提交分成准备(PREPARE)和提交(COMMIT)两个阶段:PREPARE阶段,数据节点准备好所有事务提交所需的资源(例如加锁、写日志等),COMMIT阶段,各个数据节点才真正提交事务。当您提交一个分布式事务时,DRDS服务器作为事务管理器的角色,首先等待所有数据节点(MySQL服务器)PREPARE成功,之后再向各个数据节点发送COMMIT请求


13.多可用区实例

DRDS ⽀持选择跨多可⽤区的 DRDS 实例,在单⼀区域出现不可⽤的情况下,可确保 DRDS 实例

级别的可⽤性。

14.可用区迁移

DRDS 提供可⽤区迁移功能,⽀持单可⽤区与双可⽤区之间的双向迁移。⽤⼾可在 DRDS 可⽤区选择错误或RDS 可⽤区库存不⾜的情况下进⾏ DRDS 可⽤区迁移

15.软件升级

当DRDS评估您的版本存在重⼤安全隐患时,会主动通知您安排时间进⾏升级。DRDS团队将会全程⽀持升级过程

DRDS升级过程通常在五分钟以内完成,升级期间可能有数次数据库连接闪断。在应⽤程序正确配置了数据库连接重连(或连接池)的情况下,不会对应⽤程序造成明显的影响

16.SQL兼容性

1)DRDS SQL限制

暂不⽀持⽤⼾⾃定义数据类型和⾃定义函数

暂不⽀持视图、存储过程、触发器和游标

暂不⽀持BEGIN...END、LOOP...END LOOP、REPEAT...UNTIL...END REPEAT、WHILE...DO...END WHILE等复合语句

暂不⽀类似IF,WHILE等流程控制类语句

2)⼩语法限制

DDL:CREATE TABLE tbl_name LIKE old_tbl_name不⽀持拆分表,CREATE TABLE tbl_name SELECT statement不⽀持拆分表

DML:暂不⽀持SELECT INTO OUTFILE/INTO DUMPFILE/INTO var_name,暂不⽀持INSERT DELAYED语法,暂不⽀持⾮WHERE 条件的相关⼦查询,暂不⽀持SQL中带聚合条件的相关⼦查询,暂不⽀持SQL中对于变量的引⽤和操作,例如SET @c=1, @d=@c+1; SELECT @c, @d。

数据库管理:SHOW WARNINGS语法不⽀持LIMIT/COUNT的组合,SHOW ERRORS语法不⽀持LIMIT/COUNT的组合


四、产品架构

1.DRDS Server

DRDS Server是DRDS的服务层,由多个服务节点组成服务集群,提供分布式数据库服务,包括读写分离、SQL路由执行、结果合并、动态数据库配置、全局唯一ID服务等功能

2.RDS for MySQL

RDS for MySQL主要是负责在线数据数据存储和操作,通过MySQL主备复制实现高可用,配合RDS的主备切换系统实现动态数据库故障转移。

RDS for MySQL的管理控制平台实现了RDS生命周期内的管理、监控、告警、资源管理等工作

3.HiStore

当DRDS单独输出时(非阿里云整体输出),DRDS支持HiStore作为物理存储。HiStore是阿里巴巴自研的低成本高性能列存数据库。通过列式存储、知识网格、多核利用,做到相对于行存(如MySQL)更低的成本,更高的数据聚合和即席查询能力

HiStore的管理控制平台实现了HiStore生命周期内的管理、监控、告警、资源管理等工作

4.DBPaaS

当DRDS单独输出时(非阿里云整体输出),自带MySQL数据库运维平台DBPaas,实现MySQL生命周期内的管理、监控、告警、资源管理等工作

5.SLB(集中式负载均衡)

无需在用户侧安装客户端,用户的请求通过集中式负载均衡进行流量分配。当某个实例节点出现故障或者新增服务节点时,都能够通过负载均衡保证底层节点的流量相对均衡分配

6.VIPServer(客户端负载均衡)

需要在用户侧安装客户端,弱依赖于中心管控服务(只有在发生负载配置变更时才会进行交互),用户的请求通过该模块进行流量分配,当某个实例节点出现故障或者新增服务节点时,都能够通过均衡负载保证底层节点的流量相对均衡分配

7.Diamond配置中心

Diamond(配置中心)是负责DRDS配置存储和管理的系统,提供配置存储、查询、通知功能。在DRDS中主要存储数据库源数据、拆分规则、DRDS开关等配置

8.精卫(JINGWEI)

DRDS数据迁移同步主要由精卫系统负责,核心能力包含全量数据迁移和增量数据同步,衍生出来的功能包括数据平滑导入、平滑扩容、全局二级索引能力

精卫数据迁移同步系统需要ZooKeeper和DRDS Rtools提供支撑

9.DRDS Console(用户控制台)

主要面向业务DBA,按照用户隔离资源和操作,提供实例管理、库表管理、读写分离配置、平滑扩容、监控展现和IP白名单等功能。

10.DRDS Manager(运维控制台)

RDS实例依赖的所有资源管理,包括虚拟机、负载均衡、域名等资源

DRDS实例状态监控,包括QPS、活跃线程、连接数、各节点网络I/O、各节点CPU占用等指标

11.Rtools

Rtools是DRDS的运维支撑系统,支持进行数据库配置、读写权重、连接参数等管理以及库表拓扑、拆分规则等管理

五、产品优势

1.分布式架构

通过数据的水平拆分以及单一服务的集群化部署,解决了负载均衡、分布式数据库服务(DRDS)、数据存储(RDS)各层面的单点瓶颈问题,实现了分布式数据库的最大优点,即可扩展

2.弹性伸缩

可进行DRDS实例以及数据存储(RDS)的动态升降配(水平扩展),实现服务能力的灵活选择

3.高性能

DRDS for RDS(MySQL)贴合业务进行数据拆分,尽可能让数据跟随主要业务操作进行聚簇,从而提升在线事务型操作的响应速度。DRDS for HiStore通过使用列存、知识网格,极大地提升大范围数据聚合、ad hoc查询等常用分析性操作的响应速度,同时还通过高度压缩控制存储成本

4.安全可控

DRDS支持类单机数据库的账号权限体系,并且提供IP白名单、高风险SQL默认禁止等实用功能。即使需要集成到本地管控系统中,也有完整的API 体系作为支撑。同时我们也提供完整的产品支持和架构服务


六、实例规格

入门版:4C16G

标准版:8C32G

企业版:16C64G


七、测试工具

Sysbench

TPC-C

TPC-H


文章转载自Reborn2020,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论