2015-06-12 38 views
4

我想实现mongodb作为分布式数据库,但我找不到它的好教程。每当我在mongodb中搜索分布式数据库时,它会给我分片链接,所以如果两者都是相同的东西,我会感到困惑吗?与mongoDB中的分布式数据库分区相同吗?

+1

[Manual](http:///docs.mongodb.org/manual/core/sharding-introduction/)是mongoDB的最佳教程。 –

+1

@Glavić是的,我已阅读,但不能解答我的问题。 –

+0

然后回答是肯定的。 –

回答

4

一般来说,如果你有一个阅读繁重的系统,你可能想要使用replication。这是最多50个。 secondaries共享读取压力,而primary负责写入。这是一个自动故障转移系统,因此当primary停机时,其中一个secondaries将会在那里工作,并成为新的primary

Sharding,但是,更灵活。所有的Shards共享写入压力和读取压力。也就是说,数据分布到不同的Shards。并且每个分片可以包含一个Replication系统和自动故障转移,如上所述。

我首先会选择replication,因为它很简单,对于大多数场景来说基本就足够了。一旦这还不够,您可以选择convert from replication to sharding

还有differences between replication and sharding的另一个讨论供您参考。

0

刚上分布式数据库的一些观点:

在九十年代初很多应用程序是基于桌面的,并有其所含的各种数据的MB/GB的本地数据库。

现在随着基于Web的应用程序的出现,可能有成千上万的用户使用和存储他们的数据,这些数据可以运行到GB/TB/PB。将所有这些数据存储在一台服务器上的经济性很高,因此存在一组服务器(或商品硬件),数据在其中横向分区。分片是水平分割数据的另一个术语。 例如,您有一个包含100行的客户表,您希望将其分成4个服务器,您可以选择'key'为基础的分片,其中客户将按以下方式分发:SHARD-1(1-25),SHARD- 2(26-50),碎片-3(51-75),碎片-4(76-100)

拆分可以在2种方式来完成:

  1. 基于散列

  2. Key based