時間:2024-02-08 11:17作者:下載吧人氣:21
在分布式應用系統中,mongodb 已經成為 NoSQL 經典數據庫。要想很好的使用 mongodb,僅僅知道如何使用它是不夠的。只有對其架構原理等有了充分認識,才能在實際運用中使其更好地服務于應用,遇到問題知道怎么處理,而不是抓瞎抹黑。這篇文章就帶你進入 mongodb 集群的大門。
集群概覽
mongodb 相關的進程分為三類:
類比銀行服務,mongo 進程相當于客戶,mongos 進程是柜臺服務員,mongod 進程是銀行后臺實際處理業務的人員或者流程。客戶只需要和柜臺服務員溝通,告知辦什么業務,柜臺服務員將業務轉往后臺,后臺實際處理。
下圖是 mongodb 集群的一般拓撲結構。
如圖,mongodb 集群的節點分為三類:
還是拿銀行業務類比,當客戶辦理保單保存業務時,
mongos 路由服務
mongos 服務類似網關,連接 mongodb 集群與應用程序,對外屏蔽 mongodb 內部結構,應用程序只需要將請求發送給 mongos,而無需關心集群內部副本分片等信息。
mongos 本身不保存數據與索引信息,它通過查詢 config 配置服務來獲取,所以可以考慮將 mongos 與應用程序部署在同一臺服務器上,當服務器宕機時 mongos 也一起失效,防止出現 mongos 閑置。
mongos 節點也可以是單個節點,但為了高可用,一般部署多個節點。就像柜臺服務員一樣,可以有多個,相互之間沒有主備關系,都可以獨立處理業務。
需要注意的是,在開啟分片的情況下,應用程序應該避免直接連接分片節點進行數據修改,因為這種情況下很可能造成數據不一致等嚴重后果,而是通過 mongos 節點來操作。
config 配置服務
config 配置節點本質也是一個副本集,副本集中存放集群的元數據,如各個分片上的數據塊列表,數據范圍,身份驗證等信息。如下,可以看到數據庫 config,數據庫中集合保存了集群的重要元數據。
mongos> use config; switched to db config mongos> show collections; changelog chunks collections databases lockpings locks migrations mongos shards tags transactions version
網友評論