2015-06-12 78 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