分布式存储架构设计

栏目: 数据库 · 发布时间: 5年前

互联网系统,存储与计算是极其重要两个方面。无论是服务端 mysql 数据库、 redis 缓存以及计算应用框架spring、dubbo等,还是大数据hdfs、hbase以及mapreduce、spark等计算框架。都体现了存储计算是互联网应用系统两个核心方面。

分布式存储架构设计

存储三种类型基于hash数据结构比如redis以及小图片系统TFS,hash数据结构能够支持读写qps很高是做存储非常好数据结构,redis类存储结构缺点是成本高;以及基于B+树MySQL,MySQL类数据库支持完整 sql 语法使用方面,对于事务支持好,但B+树这种数据结构对于大量随机写,当数量大之后性能会变差;再有是基于LSM bigtable、hbase等,LSM将写入变随机为顺序写入,极大增加存储写入速度,基于LSM存储利用BoomFilter过滤器、table缓存等技术加快读取速度,但是读取qps依然会小于redis很多。

根据以上特点存储要根据实际业务需求结合使用,而不能了解一种就抓住一种不放,认为找到银弹。业务特点最近的数据写多,读少要缓存在内存,历史数据写少读少存储在磁盘。

分布式存储设计不仅要考虑一致性、可用性、分区容忍性,还要在设计实现时就要考虑整体架构可运维性,以及可监控性,这样能够方便集群管理成本,方便集群进行各种各样操作。

分布式存储架构设计

1、故障发现快,并且能够进行多节点恢复。设计监控能够快速发现故障节点,并且能沟通过扩容服务,将故障节点快速将数据复制,并将节点上到集群。

2、独立分区,将容器独立一块区域,避免一个存储集群服务过载影响其他集群。从而影响线上多个业务。

3、跨机房热备,通过数据同步服务一般基于Raft协议,将数据同步到同城机房或者异地机房进行灾备,灾备机房也可直接提供读服务。

4、持久化,redis类缓存能够通过快照或者append方式将数据持久化。基于磁盘类型天然支持持久化。

5、读策略,多种读策略。支持根据配置读取相应机房,可以实现同机房服务优先读取同机房存储,以及随机主从读取等多种策略,根据业务需求进行灵活配置。

6、自动化运维,通过扩容服务管理备用资源池,当线上存储节点存在问题,则通过扩容服务获取备用资源池节点,拷贝数据以及设置节点到集群,并将信息注册到Meta信息,完成故障节点处理。

7、复制,实现基于主从复制,能够实现基于最终一致性的主从复制。并且能够监控所有分片主从同步情况以及主从连接情况,主从断开后能够进行报警以便运维人员能够及时处理。

8、监控,对于节点分片ops量、读写量监控以及配置报警阀值,对于集群整体磁盘内存使用量进行监控,当磁盘或内存超过设置阀值比如75%时进行报警,以便进行扩容操作。对于慢查询进行监控,并进行持久化存储以支持后续分析。对于连接数监控,存储所在物理机连接数是重要资源,连接数过多会导致有客户端取不到连接从而导致取不到数据,连接数也要进行严格监控。

9、流控,对于存储服务也要提供过载保护机制,避免读写流量过大,影响集群稳定性,当超过集群请求后,返回异常信息给客户端,避免存储服务过载。

10、其他,分布式存储支持多种数据结构,方便业务使用;对于基本数据类型int、char、string等数据存储格式支持;对于传统sql语句支持;对于分布式事务支持;分布式双写支持等等,是分布式系统不断演进以及研发方向。

存储是架构设计一部分,要根据实际架构需要来使用存储,你在实际中用过哪些存储?

两个架构相关优秀专栏,推荐订阅学习,均有返现

分布式存储架构设计

分布式存储架构设计


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

赢在设计

赢在设计

[美] 洛芙迪 (Lance Loveday)、[美] 尼豪斯 (Sandra Niehaus) / 刘淼、枊靖、王卓昊 / 人民邮电出版社 / 2010-8 / 55.00

企业总是面临在网站设计和改进方面进行投资的抉择。怎样才能让有限的资金发挥出最大的效益呢?网站设计不应只是把网站做得赏心悦目,它更应该是提高经济收益和获得竞争优势的战略利器。是时候让网站发挥其潜能,以业务指标为导向来做设计决策,为提升网站收益而设计了。 作者凭借多年为众多网站做咨询工作的经验,为我们揭示了赢在设计的奥秘。它针对目前网站设计中存在的典型问题,先从宏观上探讨解决问题的战略手段,围绕......一起来看看 《赢在设计》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

html转js在线工具
html转js在线工具

html转js在线工具