- 快召唤伙伴们来围观吧
- 微博 QQ QQ空间 贴吧
- 文档嵌入链接
- 复制
- 微信扫一扫分享
- 已成功复制到剪贴板
分布式数据库下5000亿+数据秒级响应的探索与实践
应用程序开发面临着从烟囱式架构向分布式的转型,当数据库在应对微服务应用框架时,分布式存储成为了更好的选择。许建辉老师以SequoiaDB为例,详细讲解新一代分布式数据库要适应微服务云化架构,需要在数据分片、高可用、水平扩展、分布式事务等能力上做到哪些要点,配合案例让大家更易于理解。
展开查看详情
1 .分布式数据库下 5000亿+数据秒级响应的探索与实践 巨杉数据库 许建辉
2 . SequoiaDB巨杉数据库简介 首款入选Gartner数 据库推荐报告的国 产分布式数据库产 品 超过100家大型金 融企业核心业务系 统上线使用
3 . 应用程序开发 面临怎样的趋势 ?
4 . 应用程序开发从烟囱式架构向分布式的转型 微 微 微 服 服 服 务 务 务 应用 应用 前端 前端 …… 数据库 …… 传统架构向 微服务转型 中间件 微 微 微 微 微 微 服 服 服 服 服 服 数据库 务 务 务 务 务 务 数据库 数据库 …… …… …… ……
5 . 数据库该如何 应对微服务应用框架 ?
6 . 数据库如何应对微服务应用框架 微服务 微服务 微服务 微服务 微服务 微服务 微服务 微服务 微服务 微服务 微服务 微服务 1 2 3 4 1 2 3 4 1 2 3 4 MySQL MySQL PGSQL S3对象 MySQL MySQL PGSQL S3 实例 实例 实例 实例 存储 集中式关系型 数据库 分布式数据库 集中式存储 碎片化存储 分布式存储 • 数据紧耦合 • 数据碎片化 • 微服务对应独 • 无法弹性扩张 • 数据无共享 立实例 • 单点故障 • 运维成本高 • 物理分散存储 • 逻辑集中管理
7 . 联机交易业务需要 什么样的分布式数据库 ?
8 . 联机交易业务需要什么样的分布式数据库 分布式与扩展性 ACID的支持 分布式是新一代架构的基础,扩展性能应对 传 事务、一致性等,处理OLTP 变化的数据量 统 新 技 技 术 术 HTAP 兼 前 容 瞻 混合事务和分析场景,适应 性 性 SQL完整支持 更多数据应用需求 MySQL/PostgreSQL语法的完整兼容 Multi-model与多租户 multi-model多模数据库引擎,同一引擎处理多种 数据应用场景,符合微服务和云数据库的架构理念
9 . 分布式交易型数据库技术发展体系 应用垂直分库 分库分表 原生分布式数据库 Application Application Application 分布式中间件(路由分发) 核心 信贷 CRM 票据 用户组1 用户组2 用户组3 用户组4 X X X cluster cluster cluster cluster cluster cluster cluster cluster cluster cluster cluster cluster 核心 核心 核心DB1 核心DB2 核心DB3 核心DBn X X X 核心DB1 核心DB2 核心DB3 核心DBn 信贷 信贷DB1 信贷DB2 信贷DB3 信贷DBn 信贷 信贷DB1 信贷DB2 信贷DB3 信贷DBn CRM-DB2 CRM-DB3 CRM-DBn CRM CRM-DB1 CRM-DB2 CRM-DB3 CRM-DBn CRM CRM-DB1 票据 票据DB1 X X X 票据DB2 票据DB3 票据DBn 票据 票据DB1 票据DB2 票据DB3 票据DBn
10 . 分布式数据库技术发展体系对比 垂直分库 分库分表 原生分布式数据库 • 起点比较早,应用控制能力强,可进 • 构建中间SQL解析层,尽可能将标准 • 数据库内部处理分布式事务与数据切 行深度定制化 SQL拆分成多个子查询下压到下层数 分逻辑,对于应用程序完全透明,不 • 对于底层数据库没有任何特殊要求, 据库,在SQL层进行结果拼装 需感知底层数据分布 优 完全在应用程序内部进行分库 • 对于底层数据库无特殊要求,在中间 • 数据库内部原生支持分布式事务,性 势 件进行SQL切分(支持XA即可) 能远远高于分库分表 • 部分兼容传统SQL,应用程序开发难 • 高可用与容灾能力由数据库内核原生 度小于垂直分库 支持,不需额外辅助工具 • 应用程序逻辑侵入性极强,应用程序 • 应用程序逻辑侵入性较强,应用程序 • 技术较新,业界成熟案例相对较少 需要进行复杂逻辑才能进行合理数据 需感知底层数据分布结构,才能设计 • 辅助工具相对较少,生态环境有待完 分布 出优化后的查询逻辑 善 劣 • 拓扑结构调整或扩容时非常痛苦,几 • 中间件实现分布式事务,跨库事务使 势 乎不可能完成在线扩容 用XA机制,性能大幅度下降 • 很难支持跨库事务 • 作为单点向新型分布式数据库转型的 过渡阶段,技术延续性堪忧
11 .巨杉分布式数据库
12 .“计算存储分离”架构
13 . 三大核心应用场景 联机交易 数据中台 内容管理 • 交易型业务场景 • 数据服务与高频只读 • 音视频、图片、文件 • 替换 MySQL、 类业务 等对象存储类业务 PGSQL 等传统关系 • 提供比 Hbase 更加友 • 提供比 Ceph 更优的实 型数据库 好的开发接口以及更 时容灾能力以及更加 加简便的运维能力 丰富的内容管理特性
14 . 新一代分布式数据库 如何适应微服务云化架构需求
15 .数据分片能力 TargetPartition = DHT ( Row->PartitionKey ) datagroup1 datagroup2 datagroup3
16 . 高可用能力 • 同分区内数据节点之间通过心跳保持连接 • 主节点2轮接收不到超半数节点心跳会自动降备 • 备节点2轮接收不到主节点心跳会发起选举投票 • 超半数节点同意后备节点当选新的主节点
17 . 水平扩展能力 数据库实例 3306 MySQL MySQL MySQL 11810 Coord Coord Coord 编目节点组 编目节点组 11800 Catalog Catalog Catalog Catalog Catalog Catalog 11800 datagroup1 datagroup4 11820 Data Data Data Data Data Data 11820 datagroup2 datagroup5 11830 Data Data Data Data Data Data 11830 datagroup3 datagroup6 11840 Data Data Data Data Data Data 11840 192.168.1.1 192.168.1.2 192.168.1.3 192.168.1.4 192.168.1.5 192.168.1.6
18 . 强大的分布式事务能力 • 传统二段提交机制 • 流水类数据按时间与ID二维切 • 保证数据跨节点一致性 分,避免数据搬迁 表设计原则 • 余额类数据按ID散列,保证均 二段提交 衡无热点 2PC • MySQL/PGSQL/SparkSQL保持 100%兼容 • 悲观锁 • 原生MySQL/PGSQL/ SparkSQL解 析与执行引擎,不需担心语法兼 • MVCC读已提交能力 容访问计划 兼容性 锁机制
19 .MySQL兼容能力 • 增删改查语法(SQL、DML) • 视图、存储过程、触发器、自增字段(DDL、DCL) 语法 • 跨节点跨表事务、四种隔离级别、读已提交能力 • 协议级兼容MySQL客户端 • 协议级兼容JDBC驱动 通讯协议 • 支持所有MySQL开发框架 • 访问计划计算方式兼容MySQL • 统计信息收集策略兼容MySQL 访问计划
20 . 准实时数据复制 准实时数据复制策略 1、异构数据源使用相关的工具将日志文 实时推送 格式转化 准实 件实时解析并写入管道 Oracle 时数 据复 2、通过Apache Storm对管道信息监听并 制策 转换为标准DML/DDL命令 略 DB2 3、指令分发至多线程处理服务进行巨杉 历史数据库的增删改查 Informix 4、满足异构数据源T+0的数据复制策略, 秒级延时 历史库 5、当前支持Oracle Golden Gate(对应 MySQL Oracle数据源)、IBM CDC(对应IBM 日志解析 任务处理 DB2)、IIE(对应IBM Informix)、以及 Cannel(对应MySQL) 6、对于当前不支持的数据库需要寻找开 源的日志解析工具或进行独立开发
21 . 异步数据复制 定期任务 异步数据复制策略 异步 Oracle 1、使用JSON或CSV格式定期将异构数据 数据 源的原始数据进行导出为文本文件 复制 策略 2、通过FTP等方式将文件传输至巨杉数据 DB2 导 库的客户端 入 工 具 3、通过sdbimprt工具将文本文件导入巨 Informix 杉数据库 历史库 4、满足异构数据源T+1的数据复制策略, MySQL 简单可靠
22 . 数据备份恢复 数据库实例级备份 • MySQL/PostgreSQL原生记录备份策略 数据库实例 数据库实例 数据库实例 集群级备份 • 全量离线备份 分布式集群 • 全量在线备份 • 增量在线备份 文件系统级备份 • 读节点文件系统全量备份 • 静态文件增量备份
23 .HTAP读写分离能力 微服务框架下,对成千上万个MySQL数据库实例做到统一化管理,防止数据碎片化,并对来自不同实 例和服务的数据统一实时分析,避免联机交易与分析业务相互干扰 MySQL实例1 MySQL实例2 MySQL实例3 MySQL实例4 (高可用) (高可用) (高可用) (高可用) SparkSQL实例1 SparkSQL实例2
24 .多租户物理隔离能力 在一个集群内同时提供关系型数据库以及对象存储实例 尽可能减少用户对于异构产品的学习与运维成本 MySQL实例1 MySQL实例2 S3对象存储 Posix文件系统 结构化存储格式 非结构化存储格式
25 .多租户权限管理能力 每个实例提供完全隔离的权限控制与数据可视范围 确保不会管理员不会有意无意使实例访问被隔离的其他信息 核心账务实例 信贷实例 信用卡实例 渠道业务实例
26 . 多中心容灾能力 同城方案 1、主备机房使用可靠高速光纤直连 2、每个分区主节点在主中心 3、平时使用强一致同步策略保障数据不丢 4、故障发生时使用takeover工具进行集群分离, 备集群独立运行 5、故障恢复后使用merge工具进行集群合并 双活方案 1、应用程序直连本地数据中心数据库协调节 点 2、应用程序不需要关注底层数据存储主备中 心复制和通讯策略 两地三中心 1、远程数据中心使用异步机制进行数据复制 2、数据中心之间可进行流量控制保证不会占 用过多带宽
27 .金融级分布式关系型数据库 立即开启全新体验: http://download.sequoiadb.com/cn/