您好,欢迎来到[编程问答]网站首页   源码下载   电子书籍   软件下载   专题
当前位置:首页 >> 编程问答 >> 其他数据库 >> mongodb 三种集群的区别(Replica Set / Sharding / Master-Slaver)

mongodb 三种集群的区别(Replica Set / Sharding / Master-Slaver)

来源:网络整理     时间:2018/1/22 2:55:44     关键词:

关于网友提出的“ mongodb 三种集群的区别(Replica Set / Sharding / Master-Slaver)”问题疑问,本网通过在网上对“ mongodb 三种集群的区别(Replica Set / Sharding / Master-Slaver)”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:

问题: mongodb 三种集群的区别(Replica Set / Sharding / Master-Slaver)
描述:

Replica Set / Sharding / Master-Slaver 三种集群的区别


解决方案1:

Master/Slave

先说最后一个,是Master/Slave,不是Slaver。这种方式基本上不再推荐使用,只能从Master复制数据到Slave,并不提供高可用,一旦Master结点出故障就比较难处理。具体细节就不说了,反正已经不推荐使用。

Replica Set

即常说的复制集。复制集的主要目标有几个:

  • 高可用(主要目标):当一个结点故障时自动切换到其他结点;
  • 数据冗余(主要目标):数据复制到n个结点上,增加数据安全性,同时为高可用提供基础;
  • 功能隔离(次要目标):使用不同的结点隔离某些有特殊需求的功能,比如使用一个结点进行OLAP运算(大规模资源占用),使用一个结点在远程做灾备(性能要求不如本地高),读写分离等等;

Sharded Cluster

即分片集。分片集的主要设计目标是:

  • 水平扩展:当一台服务器满足不了需求的时候,我们可以选择垂直扩展(增加服务器硬件),它虽然简单,但很容易达到极限,并且面临成本高等明显缺点。成本更低的方式是使用n台服务器组成集群来满足系统需求。这就是分片集的主要设计目标;
  • 缩短响应时间:因为可以把数据分散到多台服务器上,自然每台服务器的处理压力减小,处理时间就会缩短;

这里会出现一个问题:假设每台服务器出故障的机率是x%,那么n台服务器有一台出现故障的机率就是x% * n,如果不做高可用设计,集群出现故障的概率就会随机器数量成正比增长,这在工程上是不能接受的。幸运的是我们已经有了解决高可用的方案,也就是复制集。所以MongoDB的分片集群要求每一个片都是复制集(当然测试环境也可以使用单结点,生产环境不推荐)。

总结

大概就是这样,大家的设计目标不一样,各做各的事情。


以上介绍了“ mongodb 三种集群的区别(Replica Set / Sharding / Master-Slaver)”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/4532199.html

相关图片

相关文章