云架构下的分布式数据库设计与实践
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
cluster cluster
X X 核心DB1
核心DB2
核心DB3
核心DBn
信贷DB1
信贷DB2
信贷DB3
信贷DBn
CRMDB1
X CRMDB2
XXCRMDB3
XCRMDBn
票据DB1
票据DB2
票据DB3
票据DBn
原生分布式数据库
Application
核心 信贷 CRM 票据
cluster cluster cluster cluster
• 交易型业务场景 • 替换 MySQL、
PGSQL 等传统关 系 型数据库
数据中台
• 数据服务与高频只读 类业务
• 提供比 Hbase 更加 友 好的开发接口以 及更 加简便的运维 能力
内容管理
• 音视频、图片、文件 等对象存储类业务
• 提供比 Ceph 更优的 实 时容灾能力以及更 加 丰富的内容管理特 性
变化的数据量
新
技
术
前
HTAP
瞻 性
混合事务和分析场景,适应
更多数据应用需求
Multi-model与多租户
multi-model多模数据库引擎,同一引擎处理多 种
数据应用场景,符合微服务和云数据库的架构理念
ACID的支持
事务、一致性等,处理
传
OLTP
统
技
术
兼
容
性
SQL完整支
持
MySQL/PostgreSQL语法的完整兼
新一代分布式数据库 如何适应微服务云化架构需求
?
数据分片能力
TargetPartition = DHT ( Row->PartitionKey )
datagroup1
datagroup2
datagroup3
高可用能力
• 同分区内数据节点之间通过心跳保持连接 • 主节点2轮接收不到超半数节点心跳会自动降备 • 备节点2轮接收不到主节点心跳会发起选举投票 • 超半数节点同意后备节点当选新的主节点
?
数据库如何应对微服务应用框架
微服务 1
微服务 2
微服务 3
微服务 4
微服务 1
微服务 2
微服务 3
微服务 4
微服务 1
微服务 2
微服务 3
微服务 4
集中式关系型 数据库
MySQ L
MySQ L
PGSQL 象
S3对 存储
MySQ L
实例
MySQ L
实例
PGSQ L
实例
S3 实例
分布式数据库
集中式存储
Data
Data
Data
192.168.1.1 192.168.1.2 192.168.1.3
Catalog Data Data Data
编目节点组
Catalog
datagroup4
Data
datagroup5
Data
datagroup6
Data
Catalog 11800
Data
11820
Data
11830
水平扩展能力
3306 11810
MySQL Coord
11800
Catalog
11820
Data
11830
Data
11840
Data
数据库实例 MySQL Coord
编目节点组
Catalog
datagroup1
Data
datagroup2
Data
datagroup3
Data
MySQL Coord
Catalog
劣•
分布 拓扑结构调整或扩容时非常痛苦,几
•
出优化后的查询逻辑 中间件实现分布式事务,跨库事务使
善
势
乎不可能完成在线扩容
用XA机制,性能大幅度下降
• 很难支持跨库事务
• 作为单点向新型分布式数据库转型的
过渡阶段,技术延续性堪忧
分布式数据库技术发展体系对比
“计算存储分离” 架构
三大核心应用场景
联机交易
核心DB1
核心DB2
核心DB3
核心DBn
信贷DB1 CRM-DB1 票据DB1
信贷DB2
信贷DB3
信贷DBn
CRM-DB2
CRM-DB3
CRM-DBn
票据DB2
票据DB3
票据DBn
分布式数据库技术发展体系对比
垂直分库
分库分表
原生分布式数据库
• 起点比较早,应用控制能力强,可进 • 构建中间SQL解析层,尽可能将标准 • 数据库内部处理分布式事务与数据切
• 原生MySQL/PGSQL/ SparkSQL 解 析与执行引擎,不需担心语法 兼 容访问计划
兼容性
锁机制
• 悲观锁
• MVCC读已提交能 力
MySQL兼容能 力
容
分布式交易型数据库技术发展体系
应用垂直分库
Application
核心 信贷 CRM 票据
cluste r
cluste r
cluster r
cluste
分库分表
Application 分布式中间件(路由分发)
核心 信贷 CRM 票据
用户组1 用户组2 用户组3 用户组4
X XX
cluste r
cluster
云架构下的分布式数据库设计与实践
技术创新,变革未来
程序开发 面临怎样的趋势
?
应用程序开发从烟囱式架构向分布式的转型
应用 前端
应用 前端
中间件
传统架构向 微服务转型
数据库
微
微
微
服
服
服
务
务
务
…
… 数据库
…
…
微
微
微
服
服
服
务
务
务
…
… 数据库
…
…
微
微
微
服
服
服
务
务
ห้องสมุดไป่ตู้
务
…
… 数据库
…
…
数据库该如何 应对微服务应用框架
• 数据紧耦合 • 无法弹性扩张 • 单点故障
碎片化存储
• 数据碎片化 • 数据无共享 • 运维成本高
分布式存储
• 微服务对应独 立实例
• 物理分散存储 • 逻辑集中管理
联机交易业务需要 什么样的分布式数据库
?
联机交易业务需要什么样的分布式数据库
分布式与扩展性
分布式是新一代架构的基础,扩展性能应对
行深度定制化
SQL拆分成多个子查询下压到下层
分逻辑,对于应用程序完全透明,不
优•
对于底层数据库没有任何特殊要求, 完全在应用程序内部进行分库
•
数 据库,在SQL层进行结果拼装 对于底层数据库无特殊要求,在中间
•
需感知底层数据分布 数据库内部原生支持分布式事务,性
势
件进行SQL切分(支持XA即可)
能远远高于分库分表
Data
11840
192.168.1.4 192.168.1.5 192.168.1.6
强大的分布式事务能力
• 传统二段提交机制 • 保证数据跨节点一致性
二段提交 2PC
表设计原则
• 流水类数据按时间与ID二维 切 分,避免数据搬迁
• 余额类数据按ID散列,保证 均 衡无热点
• MySQL/PGSQL/SparkSQL保持 100%兼容
• 部分兼容传统SQL,应用程序开发
• 高可用与容灾能力由数据库内核原生
难 度小于垂直分库
支持,不需额外辅助工具
• 应用程序逻辑侵入性极强,应用程序 • 应用程序逻辑侵入性较强,应用程序 • 技术较新,业界成熟案例相对较少
需要进行复杂逻辑才能进行合理数据
需感知底层数据分布结构,才能设计 • 辅助工具相对较少,生态环境有待完