07|从一个手机云服务数据存储的需求开始
彭旭
你好,我是彭旭。
前面的课程我们介绍了一些数据库基础知识,也对比了一下我们要介绍的几个数据库。
这节课开始,我们就要介绍 HBase 相关的内容了,让我们从一个实际的案例出发。
这节课,我先介绍一个手机云服务数据存储的系统架构的演进,在存储成本、可伸缩性、数据备份等方面的需求。
后面的课程再来看看 HBase 是如何满足这些需求的。希望这几节课能够给你一个选型的参考,同时也在学习的过程中理解 HBase 的用法与原理。
基于 MySQL 的手机云服务架构
2017 年左右我在魅族开始负责 Flyme 系统的云服务,云服务包括用户的通话记录、短信、联系人的同步等。当时 Flyme 系统的总用户数近亿,月活千万级。最开始,Flyme 采用 MySQL 存储这些用户的数据。
云服务的业务很复杂,尤其是同步协议这块,在同步策略上包括慢同步、快同步。一次同步也分为了 4 个阶段,分别为 Request、Submitdata、Getdata、Result。
因为我们专栏主要聚焦在数据库存储,所以我们简化一下业务逻辑,主要聚焦在存储层。简化版本的系统架构如下图所示。
可以看到这个简化版本的架构分为 3 层。
第 1 层是接入层,叫做 GSLB(Global Server Load Balancing,全局服务器负载均衡),用来做请求的路由,将用户请求定位到最近的机房。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
1. MySQL存储架构存在高存储成本、运维成本和开发成本的问题,需要寻求新的存储方案。 2. 新的存储方案需要解决动态扩容、弹性伸缩的问题,实现无需侵入业务系统、无需研发资源介入的动态扩展。 3. 降低存储成本,考虑使用普通的机械硬盘,同时满足实时响应的需求。 4. 新的存储引擎需要在降低成本的同时,满足多机房的数据实时复制,实现高可用与故障恢复。 5. 存储引擎需要支持表的动态schema,适应不同客户端多版本、不同字段的需求。 6. 存储引擎需要能够将新用户数据打散分布到集群的各个节点,充分利用集群的能力。 7. 数据库需要支持基于用户ID的批量拉取,也支持修改了数据后的单行或者多行的实时读写,以及对数据的写入需要做到强一致性。 8. 存储引擎需要解决负载均衡与规避热点区间请求的问题,满足全量同步与增量同步需求。 9. 企业开始降本增效,需要存储方案在降低各种成本的同时,仍然能够提供实时高并发的随机存取。 10. 存储引擎需要在迁移过程中保障数据的一致性,双写以保障系统的顺利平滑过渡。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《分布式数据库从入门到实战》,新⼈⾸单¥59
《分布式数据库从入门到实战》,新⼈⾸单¥59
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
精选留言
由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论