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

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

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

文档评论(0)

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

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

1亿VIP精品文档

相关文档