我想将mongodb实现为分布式数据库,但我找不到合适的教程。每当我在mongodb中搜索分布式数据库时,都会给出分片的链接,所以我很困惑它们是不是都是一样的东西?
发布于 2015-06-12 14:22:03
一般来说,如果你有一个读繁重的系统,你可能会想要使用replication。最大为50 secondaries的1 primary。secondaries分担读取压力,而primary负责写入。它是一个自动故障切换系统,因此当primary关闭时,其中一个secondaries将接管那里的工作,并成为新的primary。
然而,Sharding更加灵活。所有Shards共享写压力和读压力。也就是说,数据分布在不同的Shards中。每个分片可以由一个Replication系统组成,并且自动故障转移的工作原理如上所述。
我会首先选择replication,因为它很简单,基本上可以满足大多数场景。一旦还不够,你可以选择convert from replication to sharding。
这里还有另一个关于differences between replication and sharding的讨论,供您参考。
发布于 2015-06-12 14:33:04
只是对分布式数据库的一些看法:
在90年代早期,许多应用程序都是基于桌面的,并且有一个包含MB/GB数据的本地数据库。
现在,随着基于web的应用程序的出现,可能会有数百万用户使用和存储他们的数据,这些数据可能会达到GB/TB/PB。在单个服务器上存储所有这些数据在经济上是昂贵的,因此存在一个服务器集群(或商用硬件),其中的数据是水平分区的。分片是数据水平分区的另一个术语。例如,您有一个包含100行的Customer表,您希望将其分成4个服务器,您可以选择基于“key”的分片,其中客户的分布如下: SHARD-1(1-25),SHARD-2(26-50),SHARD-3(51-75),SHARD-4(76-100)
分片可以通过两种方式完成:
基于
https://stackoverflow.com/questions/30795937
复制相似问题