网站大量收购独家精品文档,联系QQ:2885784924

基于FODA法mongodb大数据负载均衡策略的改进.docx

基于FODA法mongodb大数据负载均衡策略的改进.docx

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于FODA法mongodb大数据负载均衡策略的改进

基于FODA算法mongodb大数据负载均衡策略的改进摘要:随着Web2.0技术的发展和云存储技术的成熟,如何有效地存储、处理海量数据成了一个非常严峻的问题。对于数据库的并发性、可扩展性能力的要求也变的越来越高。云计算就在这样的环境下产生。云计算是一种通过Internet以服务的方式提供动态可伸缩性的虚拟化的资源计算模式,由计算机和其它设备提供共享资源,软件和信息作为网络的计量服务。很多大学,供应商和政府组织投资关于云计算的研究,比如:亚马逊推出的简单存储服务和弹性计算云,谷歌提出的可扩展的分布式文件系统(GFS),BigTable和MapReduce,这些技术都已经成功用于生产环境。相对于此,传统的关系型数据库(ORDBMS)在面对并发量极高的Web2.0网站时已经显得捉襟见肘,主要体现在一下几个方面:对大并发量的访问需求。当前Web2.0网站的数据库有很高的并发量,每秒上万次读写要求已是常事,对于上万次查询来说,关系型数据库勉强还撑得住,但面对上万次写入访问,硬盘IO就无法承受了。对大数据量的存储效率和快速访问的需求。当前大型的SNS网站每天生成的数据数以亿计。以国外的Friendfeed 为例,一个月的用户动态就可以达到2亿条以上。对于关系数据库来说,在一张如此庞大的表里面进行查询,其效率必然是极其低下的。由于传统的关系型数据库系统无法满足以上需求,因此NoSQL数据库系统在主要互联网公司的应用不断上升,比如Google,Amazon,Twitter和Facebook。在众多NoSQL数据库当中,MongoDB是比较出色的一款。MongoDB是一个类似于关系数据库的非关系数据库,它支持的数据结构跟Json格式类似,称为Bson,因此可以存储比较复杂的数据类型。本文主要讨论MongoDB的工作机制、自动分片原理,最后基于源代码分析MongoDB的负载均衡算法,并提出一定的改进。关键字:大数据,FODA(Frequency Of Data Access),MongoDB,负载均衡1 引言1.1 MongoDB数据库简介MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。它支持的数据结构非常松散,是类似Json的Bson格式,因此可以存储比较复杂的数据类型。MongoDB的特点:面向集合存储;模式自由;支持动态查询;支持完全索引;支持查询;支持复制和故障转移;自动处理碎片;支持RUBY,PYTHON,JAVA,C++,PHP等多种语言;文件存储格式为BSON(一种JSON的扩展);可通过网络访问;所谓“面向集合”(Collenction-Orented),意思是数据被分组存储在数据集中,被称为一个集合(Collenction)。每个集合在数据库中都有一个唯一的标识名,并且可以包含无限数目的文档。集合的概念类似关系型数据库(RDBMS)里的表(table),不同的是它不需要定义任何模式(schema)。模式自由(schema-free),意味着对于存储在mongodb数据库中的文件,我们不需要知道它的任何结构定义。如果需要的话,你完全可以把不同结构的文件存储在同一个数据库里。存储在集合中的文档,被存储为键-值对的形式。键用于唯一标识一个文档,为字符串类型,而值则可以是各中复杂的文件类型。我们称这种存储形式为BSON(Binary Serialized dOcument Format)。MongoDB服务端可运行在Linux、Windows或OS X平台,支持32位和64位应用,默认端口为27017。推荐运行在64位平台,因为MongoDB在32位模式运行时支持的最大文件尺寸为2GB。MongoDB把数据存储在文件中(默认路径为:/data/db),为提高效率使用内存映射文件进行管理。1.2 MongoDB集群系统一个MongoDB的集群系统如图1所致,主要由片(Sharding)、Mongos路由服务器和Config服务器三部分组成。片:片就是主要存储数据的容器。每个片可以是单独的服务器,也可以是副本集。Mongos 路由器:每个分片都包含部分集群数据,那么还需要一个接口连接整个集群,这就是Mongos。Mongos 进程是一个路由器的工作,它可以将所有的读写请求指引到合适的分片上,从而为客户端提供了一个合理的视图。Config 服务器: Config 服务器中持久化了分片集群中的元数据,包括全局集群配置,每个数据库、集合和特定范围的位置,以及一份变更记录,保存了数据在分片之间进行迁移的历史信息。图1.集群系统的架构2MongoDB的自动分片功能什么时候需要分片:a.机器的磁盘不够用了b.单个Mongod已经不能满足些数据的性能需要了c.想将大量数据放在内存中提高性能一般来说,先要从不分片开始,然后在需要的时候将其

您可能关注的文档

文档评论(0)

135****6041 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档