大型网站架构设计-持久化存储介绍

2014-11-22 13:56:54     19 人阅读    

        随着科技的不断发展,越来越多的人开始参与到互联网活动中来,人们在网络上的活动, 如发表心情动态、微博、购物、评论等,这些信息最终被转变成二进制字节的数据存储下来。 面对并发访问量的激增和数据量几何级的增长,如何存储正在迅速膨胀并且不断累积的数据, 以及应对日益增长的用户访问频次,成为了亟待解决的问题。


        传统的IOE10解决方案,使用和扩展的成本越来越高,使得互联网企业不得不思考新的解决 方案。开源软件加廉价PC Server的分布式架构,得益于社区的支持。在节约成本的同时,也给 系统带来了良好的扩展能力,并且由于开源软件的代码透明,使得企业能够以更低的代价定制 10 I表示IBM小型机,O表示oracle数据库,E表示EMC高端存储。


       更符合自身使用场景的功能,以提高系统的整体性能。本节将介绍互联网领域常见的三种数据 存储方式,包括传统关系型数据库MySQL、Google所提出的bigtable概念及其开源实现HBase, 以及包含丰富数据类型的key-value存储Redis。


       作为传统的关系型数据库,MySQL提供完整的ACID操作,支持丰富的数据类型、强大的 关联查询、where语句等,能够非常容易地建立查询索引,执行复杂的内连接、外连接、求和、 排序、分组等操作,并且支持存储过程、函数等功能,产品成熟度高,功能强大。对于大多数 中小规模的应用来说,关系型数据库拥有强大完整的功能,以及提供的易用性、灵活性和产品 成熟度,地位很难被完全替代。但是,对于需要应对高并发访问并且存储海量数据的场景来说, 出于性能的考虑,不得不放弃很多传统关系型数据的功能,如关联查询、事务、数据一致性(由 强一致性降为最终一致性);并且由于对数据存储进行拆分,如分库分表,以及进行反范式设计, 以提高系统的查询性能,使得我们放弃了关系型数据库大部分原本强大的功能,牺牲了系统的 易用性,并且使得系统的设计和管理变得更为复杂。


      过去几年中,流行着一种新的存储解决方案,NoSQL、HBase和Redis作为其中较为典型 的代表,各自都得到了较为广泛的使用,它们各自都具有比较鲜明的特性。与传统的关系型数 据库相比,HBase有更好的伸缩能力,更适合于海量数据的存储和处理,并且HBase能够支持 多个Region Server同时写入,并发写入性能十分出色。但HBase本身所支持的查询维度有限, 难以支持复杂的条件查询,如group by、orderby、join等,这些特点使它的应用场景受到了限 制。对于Redis来说,它拥有更好的读/写吞吐能力,能够支撑更高的并发数,而相较于其他的 key-value类型的数据库,Redis能够提供更为丰富的数据类型支持,能更灵活地满足业务需求。


本文出自   《大型分布式网站架构设计与实践试读样章》 试读,如果感觉到对你有帮助可以去购买该书


原文地址:http://www.itmmd.com/201411/205.html
该文章由 萌萌的IT人 整理发布,转载须标明出处。

大型网站架构设计-MySQL 大数据大并发支持   上一篇
下一篇  大型网站架构设计-memcached分布式 session 管理

精彩回复
发表评论
姓名:       

《程序员app》专门为程序员量身定做!