2013-11-21 43 views
0

我希望部署的MongoDB複製分片簇用於生產 -MongoDB的分片複製的羣集生產部署

  • 2副本集:R11,R21,R31,R21,R22,R23(1個初級,2二次 在每一組)
  • 3配置服務器 - C1,C2,C3
  • 1個Mongos - M1

我Qs的是 -

  1. Ci與Rij在不同的機器上嗎?建議什麼?我知道這取決於使用情況,但建議使用什麼?我在文檔中看到,建議Ci使用3臺不同的機器。這是否意味着這3臺機器必須與Rij的機器不同?
  2. M1是否與Ci和Rij不在同一臺機器上?或者我可以使用R11作爲M1。

我的用例 - 在頭六個月裏,我的數據是可以管理的。在一年內,它可能會變得很大。

+1

你可以把配置放在與副本相同的服務器上。配置不處理很多事情,因此可以放在同一臺機器上。或者你可以把一些真正的舊機器。 –

+1

但是,將配置放在與複製品相同的服務器上會使3個冗餘配置服務器失敗。 MongoDB全是關於冗餘的,你把它拿走,你可能會使用一臺機器設置 – Sammaye

+1

一種方法是實際運行每個應用程序服務器的mongos,並讓該應用程序與本地主機通信。在過去,這對我來說效果不錯 – Sammaye

回答

2

我打算用一些筆記來回答這個問題。

Ci與Rij在不同的機器上嗎?

由於@SalvadorDali說你可以將你的配置服務器放到你的shard/mongos /任何服務器上。他們只是爲你的mongos路由器提供配置信息以傳播他們自己的配置,以便他們知道你的集羣是如何建立起來的以及它的功能如何。

什麼是推薦?

MongoDB在冗餘的情況下蓬勃發展。即使你可以把它們放在同一臺服務器上,這樣可以降低你的冗餘度,反過來也可以克服電路故障。

強烈建議爲這些機器獲得三個極低功率的機器,你甚至可以在手機上運行一個配置服務器(當然,你不會有明顯的原因,其中一個原因是它不包含適用於MongoDB的兼容處理器)。

這是否意味着這3臺機器必須與Rij's不同?

他們應該是。只有在測試環境中,您纔想要減少羣集的冗餘。

M1是否在與Ci和Rij不同的機器上?或者我可以使用R11作爲M1。

M1實際上通常在不同的機器上。無數次,最佳設置被發現使用每個應用程序服務器的mongos,並且在其編程中應用程序調用localhost。這樣,您的mongos實例就不會綁定到一組外部實例,而是與您的應用程序的可用性相關聯。讓我們面對它,如果你的應用程序不可用,那麼你的mongos實例沒有多少可用...

1

他給你的最小配置是使用3臺服務器。

>>> 1.是否Ci在與Rij不同的機器上?

Ci可以與Rij在同一臺機器上。看下面的圖片。

>>>什麼是推薦?

沒有有關配置嚴格的推薦,但如果你想你的系統是高可用的,你只需要在不同的機器上部署的CI服務器和它們之間分配RIJ。一個規則是使用不少於RF(副本因子)服務器來進行配置。對於你的情況RF = 3,這意味着至少有3臺機器。

>>>我在文檔中看過,建議Ci使用3種不同的機器。這是否意味着這三臺機器必須與Rij's所用的不同 ?

不,您可以使用這3臺機器在Rij和Ci之間共享它們。

>>> M1是否在與Ci和Rij不同的機器上?或者我可以使用R11作爲M1。

M1可以部署在Ci和Rij都相同的機器上。

最小配置:

The smallest configuration 中間配置: enter image description here 最災難恢復配置:要使用單獨的服務器爲每個的mongod和mongos實例。

+0

我強烈建議在將兩個副本放在同一臺服務器上之前先打自己的腳,另外您會發現資源爭用將成爲此處的主要問題 – Sammaye

+0

最冗餘的解決方案不會是每蒙哥拉一個服務器,mongos只是一個路由器,如果需要它可以坐在應用程序端。事實上,由於延遲等原因會更好。 – Sammaye

+0

關於mongos你是對的。我agrre :)我編輯文章:)謝謝:) –