深入学习mongodb pdf 文字高清版本|百度网盘下载-云顶国际集团

2022-04-04 00:23:15281

o’reilly media 通过图书、杂志、在线服务、调查研究和会议等方式传播创新知识。
自 1978 年开始,o’reilly 一直都是前沿发展的见证者和推动者。超级极客们正在开创
着未来,而我们关注真正重要的技术趋势——通过放大那些“细微的信号”来刺激社
会对新科技的应用。作为技术社区中活跃的参与者,o’reilly 的发展充满了对创新的
倡导、创造和发扬光大。
o’reilly 为软件开发人员带来革命性的“动物书”;创建第一个商业网站(gnn);组
织了影响深远的开放源代码峰会,以至于开源软件运动以此命名;创立了 make 杂志,
从而成为 diy 革命的主要先锋;公司一如既往地通过多种形式缔结信息与人的纽带。
o’reilly 的会议和峰会聚集了众多超级极客和高瞻远瞩的商业领袖,共同描绘出开创
新产业的革命性思想。作为技术人士获取信息的选择,o’reilly 现在还将先锋专家的
知识传递给普通的计算机用户。无论是通过书籍出版、在线服务或者面授课程,每一
项 o’reilly 的产品都反映了公司不可动摇的理念——信息是激发创 新的力量。

 

在《终结者》系列影片中,一个称作“天网”的人工智能生命向人类发动战争,年
复一年地制造机器人和杀戮人类。这是大部分运维人员的梦想,当然不是指毁灭人
类,而是指构建一个可以长时间运行而无需人工干预的分布式系统。遗憾的是,时
至今日“天网”依旧是个幻想,因为设计好并维护其稳定持续运行,对一个分布式
系统来说仍然是一件非常困难的事情。
单台数据库服务器的状态通常很简单:非启即停。但是如果再添一台服务器并把数
据分开来,则这两台服务器之间会产生某种依赖。假设其中一台停机,对另一台会
造成什么影响?你的应用程序能应付其中一台(或两台一起)停机的情况吗?如果
两台都在运行但无法通信呢?又或是可以通信,但是速度非常非常慢呢?
随着更多节点被添加到集群里,这类问题会变得越来越多和复杂。如果集群中的一
整部分无法与其他部分通信会发生什么?如果一部分机器崩溃了又会如何?如果整
个数据中心都出问题了呢?突然之间,即使是创建一个备份也将变得异常困难。怎
样为分布在集群中几十台机器上的 tb 级数据建立一致性快照,但又不会冻结正在
使用这些数据的应用程序?
如果一台服务器可以满足需求,那就能避免很多问题。但是如果想要存储大量数据
或者想以高于单服务器处理能力的频率来访问这些数据,则建立一个集群是不可避
免的。mongodb 的优势之一正是试图帮助你解决上面列出的许多问题。不过这并
不像设置单个 mongod 实例(这又是什么?)那么简单。本书将向你展示如何一步
步建立起一个健壮的集群,以及在这个过程中将遇到的各种挑战。
什么是分片
分片(sharding)是 mongodb 用来将大型集合分割到不同服务器(或者说一个集
群)上所采用的方法。尽管分片起源于关系型数据库分区,但它(像 mongodb 的
大部分方面一样)完全是另一回事。
和你可能使用过的任何分区方案相比,mongodb 的最大区别在于它几乎能自动完
成所有事情。只要告诉 mongodb 要分配数据,它就能自动维护数据在不同服务器
之间的均衡。当然,你得告诉 mongodb 把服务器添加到集群中,不过只要这么做
了,mongodb 同样会确保新加入的服务器分得均等的数据。
分片主要是为了实现 3 个简单的目标。
让集群“不可见”
应用程序只要知道跟它打交道的是一个普通的 mongod 实例就够了。

为了实现这一目标,mongodb 自带了一个叫做 mongos 的专有路由进程。mongos
坐镇集群大前方,对连上它的任何应用而言就像是一个普通的 mongod 服务器。
mongos 会把请求正确无误地转发到集群中的一个或一组服务器上,接着再把获得的
响应拼装起来发回给客户端。这样一来,客户端无需知道与其通信的是一台服务器
还是一个集群。
不过由于集群本身的特性使然,也存在一些违背该抽象的特殊情况,这些特殊情况
会在第 4 章中提到。
保证集群总是可读写
任何集群都无法保证永远可用(比如出现大范围停电之类的情况),但是在合理的条
件下,永远都不应该出现用户无法读写数据的情况。在功能发生明显降级前,集群
应当允许尽可能多的节点失效。
mongodb 通过多种途径来确保最长的正常运行时间。集群的每一部分可以并且应
当在其他服务器上(最理想的情况是在其他数据中心)有冗余的进程运行,以便当
一个进程 / 机器 / 数据中心坏掉了,其他副本可以立即(自动地)接替坏掉的部分
继续工作。
把数据从一台服务器迁移到另一台的过程中也存在着一个非常有趣的难题:在传
输过程中如何保证对数据访问的持续性和一致性?我们已经找出了一些非常好的
云顶国际集团的解决方案,不过有些超出本书的讲述范围。总之,mongodb 采用了一些非常漂亮
的技巧。
使集群易于扩展
当系统需要更多的空间或资源时,应当可以添加。mongodb 支持按需扩充系统容
量。有关增加(和移除)容量的更多内容参见第 3 章。
要实现这些目标,一个集群应该易于使用(就像使用单个节点一样)和易于管理
(否则添加新的分片就不那么容易了)。mongodb 能够轻而易举地让应用程序自然
茁壮地成长。

链接:https://pan.baidu.com/s/1hna3ouy-hnoj2uo_fcbnda

你是否在搜索这些内容?                                 
  • 声明:本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,以上内容仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站内容来自网络收集整理或网友投稿,所提供的下载链接也是站外链接,云顶国际亚洲唯一官网的版权争议与本站无关。您必须在下载后的24个小时之内,从您的设备中彻底删除上述内容。如果您喜欢该程序和内容,请支持正版!我们非常重视云顶国际亚洲唯一官网的版权问题,如有侵权请邮件与我们联系处理。敬请谅解!邮箱地址:121671486@qq.com

云顶国际集团-云顶国际亚洲唯一官网 © all rights reserved.   
站点地图| 免责说明| | 本站发布的内容仅为个人学习试用,请在下载后24小时内删除,不得用于任何商业用途,否则后果自负。如有侵权请及时联系云顶国际集团处理,邮箱:vlimit@qq.com

网站地图