使用MongoDB Replica Sets的三種架構)

來源:互聯網
上載者:User
文章目錄
  • 1.在原有的Master/Slave 機制上添加一台arbiter
  • 2.一個 Primary用於寫,多個Secondary用於讀和一個Secondary用於備份
  • 3.MongoDB經典配置,上層是Auto-Sharding,每個Sharding結點又是一個Replica Sets

原文:http://blog.nosqlfan.com/html/1750.html

MongoDB 的replication機制除了最普通的Master/Slave模式之外,更強大的就是其支援自動容錯移轉的Replica Sets模式了。相對於其問題多多的auto-sharding機制,Replica Sets還是相對比較穩定。

作為MongoDB使用大戶,Foursquare(簡稱4sq) 在MongoDB使用上有相當豐富的經驗,下面是4sq的一篇文章,描述了Replica Sets機制在4sq 中的幾種架構方式。

原文連結:Fun with MongoDB replica sets

1.在原有的Master/Slave 機制上添加一台arbiter

4sq 在早期有一些Master/Slave的MongoDB架構,但這種模式不能實現自動的容錯移轉,需要在發生故障時手動進行切換。在Replica Sets出現後,這種結構被遷移成為三台機器的Replica Sets:一台Primary,一台Secondary,一台Arbiter。

遷移過程:

修改Master和slave的配置,添加如下幾項,並重啟MongoDB。

replSet = auxdb
fastsync = true
rest = true

fastsync 使得重啟動可以使用到原來的資料檔案,重啟會非常快。然後再在Primary上用rs.add 和 rs.addArb 將Secondary和Arbiter添加上。就算完成了。

2.一個 Primary用於寫,多個Secondary用於讀和一個Secondary用於備份

在寫多讀少的應用中,4sq主要使用了Replica Sets來實現讀寫分離。通過在串連時指定slaveOk,將讀操作放到Secondary上,Primary只承擔寫操作。同時指定一台 priority為0,hidden為true的Secondary來進行備份(這樣設定後此機器在讀寫中都不可見,並且不會被選舉為Primary)

3.MongoDB經典配置,上層是Auto-Sharding,每個Sharding結點又是一個Replica Sets

雖然4sq在這上面吃過虧,但很明顯他們已經吸取了教訓並且在更合理更小心的使用Auto-Sharding這一誘人的功能。

備忘:

分區功能效能上損失不小,其他的叢集方式都不能解決擴容的問題。當前還是用戶端均衡好了。

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.