你可以學習到:
MongoDB 可以安裝在 上Linux/macOS/Windows,它提供水平擴展 (Sharding),垂直擴展 (Replication) 的強大機制。 然而,要建置 MongoDB 叢集會有很多工作要做,像是啟動很多台 MongoDB 的服務、組態設定,工作十份繁複。
再者,你也可能遭遇實體主幾不夠而不能啟動太多 MongoDB(若一台只啟動一個 MongoDB),或者一台機器太強大,有高核心數高記憶本,想要榨乾它的效能。
基於以上理由, Docker 容器化技術為構築 MongoDB 叢集提供很好的解決方案。 Docker Compose File 提供述描執行服務的組態設定,以達到 code as infrastructure 的目地,你可以容易在任何 docker 環境下重現你的 MongoDB 叢集。
若你想要快速的體驗使用 docker 建立 MongoDB 可以見我在 iT 邦的文章 用js成為老闆心中的全端工程師:Day 15 - 二周目 - 用 Docker 玩轉 MongoDB
因為本篇的目地是「用 Docker 建立 MongoDB 叢集」,所以不會涉汲太多 Docker 說明。若需要幫助,可以見以下的 用js成為老闆心中的全端工程師 文章:
Day 26 - 三周目 - Docker 基本使用:看完就會架 docker 化的服務
Day 29- 三周目 - Docker Compose:一次管理多個容器
Day 30- 三周目 - Docker network 暨完賽回顧
MongoDB 可能有以下架構:
Replica Set
,所以同時有 HA 的能力當 MongoDB 變成叢集就會衍生出以下問題:
因為本系列只專注建立叢集,不會涉及其它議題,有興趣的人可以自行學習。
若你不想自己架設 MongoDB,可以考慮試用看看 MongoDB Atlas。它提供 DBaaS,幫你架設在 AWS, Azure 或 GCP。目前有 512 MB 免費空間且現送 $200 優惠券,代碼為 MAXIME200。見:Quick Start: Getting Your Free MongoDB Atlas Cluster
你可以在以下地方輸入優惠券代碼