2024海量存储和高并发的数据库架构设计实践_第1页
2024海量存储和高并发的数据库架构设计实践_第2页
2024海量存储和高并发的数据库架构设计实践_第3页
2024海量存储和高并发的数据库架构设计实践_第4页
2024海量存储和高并发的数据库架构设计实践_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

海量存储和高并发的数据库架构设计实践

2024

目录

海量业务数据存储方案对比分析

01

传统关系库扩展方法论及企业级案例

02

新方向探索—分布式关系数据库应用实践

03

01海量业务数据存储方案对比分析

数据拆分

分布式存储

分布式事务

兼容问题

数据路由

业务适配

我们应该如何选择

数据拆分:分库分表方案带来的数据路由和分布式事务等复杂问题全部抛给了业务;

分布式存储:学习成本和不可预知的兼容问题,让我们不敢轻易尝试;

道阻且长,没有万金油....

02 传统关系库扩展方法论及企业级案例

02传统关系库扩展方法论及企业级案例

垂直 水平 冷热

垂直拆分:按业务隔离垂直拆表:宽表变窄表

横向扩展,提升系统存储量 热库抗线上流量冷库数据归档

02传统关系库扩展方法论及企业级案例

分库分表—案例分享

用户库分表

商品库分表

系统消息库分表

02传统关系库扩展方法论及企业级案例

分库分表—案例分享

用户库分表

商品库分表

系统消息库分表

存储均匀&访问均匀->取模

手机号查询怎么办?

02传统关系库扩展方法论及企业级案例

分库分表—案例分享

用户库分表

商品库分表

系统消息库分表

查询自己发布的商品

02传统关系库扩展方法论及企业级案例

分库分表—案例分享

用户库分表

pub

pub

商品库分表

两个维度查询必须满足

映射表太重

系统消息库分表

02传统关系库扩展方法论及企业级案例

分库分表—案例分享

用户库分表

商品库分表

系统消息库分表

时效性强

冷热数据拆分

思考:有效期30天

02传统关系库扩展方法论及企业级案例

分库分表—案例分享

用户库分表

商品库分表

系统消息库分表

时效性强

冷热数据拆分

02传统关系库扩展方法论及企业级案例

分库分表—案例分享

分表分少了怎么办?

02传统关系库扩展方法论及企业级案例

分库分表—案例分享

业务修改路由算法,后台清理数据

03 新方向探索—分布式关系数据库应用实践

03新方向探索—分布式关系数据库应用实战

分布式存储

分布式存储,副本集数据同步,提供良好的水平扩展能性

分片存储

数据分片存储,分片内主从同步,提供数据路由解决方案

存储计算分离

存储节点、计算节点均可水平扩展,持续提升系统吞吐量

03新方向探索—分布式关系数据库应用实战

NewSQL数据库引入测试

读写均匀 读多写少

03新方向探索—分布式关系数据库应用实战

模拟业务场景测试

选择场景

IM联系人列表

测试验证

构造数据

模拟流量

03新方向探索—分布式关系数据库应用实战

NewSQL数据库数据迁移

数据迁移

主从同步

双写

流量迁移

切读

停双写

网关层

业务逻辑层

MQ

read

sync

数据访问层

数据访问层

write write

MySQL

Master

TiDB

Slave

03新方向探索—分布式关系数据库应用实战

NewSQL数据库乐观锁问题

业务场景——手机通知栏推送

uid

token

version

ts

U12

P31

XXX

1XXXX

U2

P2

XXX

1XXXX

用户—设备ID映射

U3 default XXX 1XXXX

数据变更场景

1账号登陆多手机

1手机登陆多账号

优化业务,过滤默认值的数据

03新方向探索—分布式关系数据库应用实战

NewSQL数据库乐观锁问题

商品状态流转

id

status

ts

bis

1

0//可售

XXX

XXX

2

1//下架

XXX

XXX

3

2//拍下

XXX

XXX

发布者下架商品0-1

买家拍下商品0-2

Transaction1 Transaction2

BeginTransaction

BeginTransaction

setstatus=1whereid=1andstatus=0

if(affected==1)

setstatus=2whereid=1andstatus=0

........

if(affected==1)

..........

commit commit

03新方向探索—分布式关系数据库应用实战

悲观锁处理方式

Transaction1 Transaction2

BeginTransaction

BeginTransaction

set

status=1whereid=1andstatus=0

setstatus=2whereid=1andstatus=0

//blocking

if(affected==1)

if(affected==1)

........

不会进入

//affected==0

........

commit commit

03新方向探索—分布式关系数据库应用实战

乐观锁处理方式

Transaction1 Transaction2

BeginTransaction

BeginTransaction

set

status=1whereid=1andstatus=0

if(affected==1)

setstatus=2whereid=1andstatus=0

if(affected==1) //affected==1

........

//MQorRPC!如何回滚?

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论