11|实现:基于HBase的手机云服务数据存储设计
彭旭
你好,我是彭旭。
前面几节课,我们探讨了 HBase 实现分区弹性伸缩,优化实时随机存取性能,以及实现高可用的方法。HBase 的这些特性解决了手机云服务系统的运维需求、成本需求和高性能需求。为云服务采用 HBase 作为新的存储方案提供了理论上的支撑。
这节课我们再来看看,如果采用 HBase 作为新的存储引擎,系统架构设计是怎样的,过程中又可能遇到什么问题。
这节课会复习到前面讲解过的如何基于业务场景设计 HBase 行键,如何优化列限定符来减少存储空间。同时,我也会讲一个新的知识点,HBase 如何实现跨集群数据的实时复制,完成单元化、集群数据汇总分析。
单元化与数据备份
你应该还记得我们讲云服务需求的时候有提到,多机房的目标本来是单元化,也就是每个机房能够独立提供服务,具备数据的完整性。但是因为 MySQL 使用 SSD 存储,导致了巨大的成本压力,最后每个机房只存储了一部分的数据,所有机房加起来才是一份完整的数据。这样其实没有做到真正的单元化,而且数据也没有多机房的容灾。
其实使用 HBase 作为新的存储引擎后,这几个问题很容易就解决了。
首先,HBase 可以使用机械硬盘存储,使用编码与压缩,也能较大地压缩数据存储空间。这样整体的存储硬件成本至少能够减少 50%。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
1. HBase作为手机云服务数据存储引擎,解决了多机房数据单元化、成本压力和高可用性的问题。 2. HBase集群间replication采用数据源推的方式,防止数据的循环复制。 3. HBase为复制提供了至少投递一次的语义,但无法保证数据更新的顺序不变。 4. HBase2.1以后提供了串行化复制的能力,保障数据的有序性。 5. 行键设计需要做到让数据均衡分布,同时将查询条件尽可能融到行键里面,提升数据读取效率。 6. 行键选用用户ID+UUID读写成本会更低,而且排查问题的时候,更容易找到数据。 7. 数据迁移过程分为了3个阶段,保证出问题了能够随时回滚。 8. HBase的复制能力实现了多机房的单元化,每个机房都存储了一份完整的数据,可以用来做灾备。 9. HBase存储的模型设计主要在表如何分区、行键如何设计上,避免热点区间的同时,将查询条件尽可能的融到行键上.
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《分布式数据库从入门到实战》,新⼈⾸单¥59
《分布式数据库从入门到实战》,新⼈⾸单¥59
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
精选留言
由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论