基于MongoDB数据库高可用高性能研究.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于MongoDB数据库高可用高性能研究

基于MongoDB数据库高可用高性能研究   摘要:当今数据已渗透到各行业领域,社会发展已进入“大数据”时代,针对大数据进行管理、处理的新技术不断涌现。数据资源种类多、容量大,会造成非IT技?g人员进行数据应用困难,数据的潜在价值难以体现,同时大数据的处理都是基于大平台,平时一般的数据分析人员在处理数据时很少能在大平台中进行数据分析,因此急需一套高可用高性能的亿级数据快速查询应用方法。   该文通过研究MongoDB的存储原理和实现机制,讨论了提升数据库可用性和存储查询性能的方法,并设计了高可用高性能的数据库集群方案,为海量数据的业务应用奠定了基础。   关键词:MongoDB;大数据;高性能;集群   中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2017)31-0008-03   1 概述   随着web2.0时代的到来,传统的关系型数据库在面对超大规模的数据和高并发动态网页生成任务时,显得非常吃力。关系型数据库具有严格的ACID特性(Atomicity原子性、Consistency一致性、Isolation隔离性、Durability持久性),因此会产生一些例如表连接等操作,这样会大大降低系统的性能。NoSQL的概念提出于20世纪80年代,当时是关系型数据库的天下,并没有现实的使用需求和应用场景,更多的是为了跟关系型数据库的概念相区别。但是,进入21世纪之后,随着国内互联网产业的高速发展和一批以百度、腾讯、阿里巴巴为代表的互联网巨头企业的诞生,带动了一大批创新行企业并改变了人们的生活方式,互联网已成为不可或缺的一部分。这样,网民不仅是信息消费者,也成为信息创建者,随着数据规模扩大和大批非结构化数据的产生,NoSQL数据库有了特定需求场景。   近年来,NoSQL数据库得到快速发展,具有代表性的就是MongoDB。目前国内对于MongoDB的研究还比较少。张路路研究了基于MongoDB的大数据存储方法,对典型的内存优化技术和布式存储技等大数据存储技术进行研究分析[1]。吴德宝对关系与非关系数据库进行了比较与分析,并对它们的主要典型代表Microsoft SQL Server和Mongo DB进行实验测试,对它们的性能做定量的对比和分析[2]。仝义明、黄蔚、李戴维等人设计并实现了一个基于MongoDB的多源信息集成系统,通过数据集成将存放在不同地点的数据进行数据采集与转化,利用MongoDB集群分布式存储海量数据并提供统一检索,实现了数据的共享[3]。   目前而言,国内研究主要在存储和基于MongoDB设计应用系统以及与传统关系数据库进行对比研究。本文的侧重点有所不同,主要研究利用MongoDB实现数据的高可用性和数据查询的高性能。   2 MongoDB简介   关系型数据库建立在关系模型的基础上,以数据表为单位进行存储,擅长结构化数据的存储、查询、删除、连接、交集、并集、差集等操作,仍是各个领域主要在用的数据库类型,在此不做赘述。   NoSQL(Not Only SQL)是非关系型数据存储的广义定义,得到广泛认同。在目前主要的NoSQL数据库中,有MongoDB、HBase、HyperTable、Cassandra等,而其中MongoDB是功能最丰富,最像关系数据库的。   MongoDB是一款强大、灵活,且易于扩展的通用型数据库[4]。相比关系型数据库,MongoDB是一个面向文档(document-oriented)的数据库,它有很多特点和优势,主要体现在以下几个方面:   1) 去除了关系型数据库的关系特征,面向集合存储,使得数据十分易于扩展;   2) 具有很好的读写性能,在海量数据下,性能表现同样非常优秀,这主要因为其结构简单,不受关系型数据库中表间关系的束缚;   3) 不需要预先创建数据字段,在集合中可以随时存入自定义的数据格式,可以轻而易举地增加或者删除字段;   4) 实现高可用架构的同时,不会对性能产生较大影响;   基于以上特点,本文选择MongoDB作为研究对象和候选工具,以解决处理海量数据时遇到的性能瓶颈问题。   3 高可用性研究   3.1 分片与副本集   我们知道,单台服务器的资源存储和计算能力都是有限的,当数据量和计算量达到一定程度时,进行垂直扩展会产生高昂的成本,这时就需要使用分布式存储进行横向扩展。   MongoDB实现的分布式技术,主要在于数据的分片(Shard)以及副本集,分片是集群中负责某一子集的一台或多台服务器[5]。简单来说,分片就是将数据集分割存储在不同的服务器上,以此来提高数据容量和读写吞吐量。MongoDB的分片以集合(Collection,集合的概念与关系型数据库中数据表Table类似)作为

文档评论(0)

317960162 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档