MongoDB部署模式

目錄

單節點模式(Standalone)

副本集模式(Replica Set)

分片集群模式(Sharded Cluster)


MongoDB有多種部署模式,可以根據業務需求選擇適合的架構和部署方式。

單節點模式(Standalone)

單節點部署是單個MongoDB示例,也是最簡單的部署方式,數據都存儲在一個節點上,這種方式現在很少使用。

  • 特點
    • 適用于開發、測試或小型應用場景。
    • 無數據冗余,不具備高可用性。
    • 單節點故障會導致服務中斷。
  • 優點
    • 易于設置和維護,資源消耗低。
  • 適用場景
    • 開發測試環境。
    • 對高可用性要求不高的應用。

副本集模式(Replica Set)

MongoDB 中的副本集是一組維護相同數據集的?mongod?進程。副本集提供冗余和高可用性,是所有生產部署的基礎,副本集包含多個數據承載節點和一個可選的仲裁節點。在數據承載節點中,只有一個主節點,其他被為從節點。

主節點:主節點會接受所有的寫入操作,副本集中只會有一個主節點

從節點:從節點存儲也是一個完整的數據集,會復制主節點的oplog(oplog是主節點上的操作日志),并將這些操作應用于其數據集,以便從節點的數據集反映主節點的數據集狀態。如果主節點不可用,則某個符合條件的從節點將進行選舉,以將自己選舉為新的主節點。

  • 特點
    • 一組MongoDB實例組成,提供數據冗余和高可用性。
    • 自動故障切換:主節點宕機后,剩余節點選舉出新的主節點。
    • 數據一致性高(強一致性)。
  • 優點
    • 提供高可用性,保障數據安全。
    • 適用于生產環境。
  • 缺點
    • 需要額外的硬件資源。
    • 配置和維護比單節點稍復雜。
  • 適用場景
    • 需要高可用性和自動故障恢復的生產環境。

分片集群模式(Sharded Cluster)

副本集模式就是一個主從架構,雖然可以提升了高可用性,但是每個節點都需要存儲全部數據,這種冗余的方式增加了資源的消耗。而分片集群可以提供更好的可用性。

分片:分片是一種跨多臺機器分布數據的方法,mongo將數據分化為多個分片,每個分片保存的是數據的一部分,所有分片的數據疊加起來就是完整的數據。

分片集群:數據雖然被分配到多個分片節點上,但是每個分片也需要做冗余這樣才能提高可用性,所有每個分片也會有多個副本集,就是一個副本集模式,有主分片和從分片數據。

MongoDB的分片集群由一下幾個組件構成:

分片(shard):分片是存儲數據的位置,每個分片都包含分片數據的一個子集,每個分片都必須作為一個副本集進行部署。

路由服務器(mongos)mongos?充當查詢路由器,在客戶端應用程序和分片集群之間提供接口,客戶端訪問分片集群是直接和mongos服務器連接而不會直接和具體的分片連接,mongos會將請求分配到具體的分片上進行操作,同時多個分片的結果也會聚合到mongos上進行處理。

配置服務器(config sderver):配置服務器會存儲集群的元數據和配置設置,配置服務器最主要的作用就是記錄集群分片的情況,mongos進行路由的時候需要知道路由到哪個分片,而這就要依據config server的分片配置數據,配置服務器也是副本集模式部署。

  • 特點
    • 提供水平擴展能力,適合大規模數據和高并發應用。
    • 數據根據分片鍵分布在不同的分片中。
    • MongoDB 在分片集群中的分片之間分配讀寫工作負載,支持每個分片處理集群操作的子集。通過添加更多的分片,讀寫工作負載都可以在集群中橫向擴展。
  • 優點
    • 支持大數據集和高吞吐量。
    • 可按需擴展存儲和計算能力。
  • 缺點
    • 部署和維護復雜,要求分片鍵設計合理。
    • Config Server成為潛在的性能瓶頸。
  • 適用場景
    • 大型分布式系統。
    • 數據量超出單節點存儲能力的場景。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/67195.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/67195.shtml
英文地址,請注明出處:http://en.pswp.cn/web/67195.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

微服務搭建----springboot接入Nacos2.x

springboot接入Nacos2.x nacos之前用的版本是1.0的,現在重新搭建一個2.0版本的,學如逆水行舟,不進則退,廢話不多說,開搞 1、 nacos2.x搭建 1,首先第一步查詢下項目之間的版本對照,不然后期會…

react-native網絡調試工具Reactotron保姆級教程

在React Native開發過程中,調試和性能優化是至關重要的環節。今天,就來給大家分享一個非常強大的工具——Reactotron,它就像是一個貼心的助手,能幫助我們更輕松地追蹤問題、優化性能。下面就是一份保姆級教程哦! 一、…

npm啟動前端項目時報錯(vue) error:0308010C:digital envelope routines::unsupported

vue 啟動項目時,npm run serve 報下面的錯: error:0308010C:digital envelope routines::unsupported at new Hash (node:internal/crypto/hash:67:19) at Object.createHash (node:crypto:133:10) at FSReqCallback.readFileAfterClose [as on…

改進候鳥優化算法之三:引入自適應策略的候鳥優化算法(AS-MBO)

引入自適應策略的候鳥優化算法(Migrating Birds Optimization with Adaptive Strategy,簡稱AS-MBO)是對傳統候鳥優化算法(Migrating Birds Optimization,MBO)的一種改進。MBO算法本身是一種基于群體智能的元啟發式優化算法,其靈感來源于候鳥遷徙時的“V”字形飛行隊列,…

02-機器學習-核心概念

以下是機器學習核心概念的詳細梳理。 1. 機器學習三大范式 類型定義典型應用監督學習使用帶標簽的數據訓練模型,預測未知數據的標簽。分類(郵件垃圾過濾)、回歸(房價預測)無監督學習從無標簽的數據中發現隱藏模式或結…

Redis實戰(黑馬點評)——關于緩存(緩存更新策略、緩存穿透、緩存雪崩、緩存擊穿、Redis工具)

redis實現查詢緩存的業務邏輯 service層實現 Overridepublic Result queryById(Long id) {String key CACHE_SHOP_KEY id;// 現查詢redis內有沒有數據String shopJson (String) redisTemplate.opsForValue().get(key);if(StrUtil.isNotBlank(shopJson)){ // 如果redis的數…

算法-加油站問題

hello 大家好!今天開寫一個新章節,每一天一道算法題。讓我們一起來學習算法思維吧! function canCompleteCircuit(gas, cost) {// 加油站的總數const n gas.length;// 記錄總剩余油量,若總剩余油量小于 0,說明無法繞環…

訊飛繪鏡(ai生成視頻)技術淺析(二):大模型

1.訊飛星火大模型的基礎架構 2.自然語言處理(NLP)技術的具體實現 3.腳本生成的具體過程與模型公式 4.分鏡生成的具體過程與模型公式 5.視頻生成與編輯的技術細節 6.關鍵技術公式的詳細推導與解釋 一、訊飛星火大模型的基礎架構 訊飛星火大模型是基于Transformer架構的深…

【機器學習】深入探索SVM:支持向量機的原理與應用

目錄 🍔 SVM引入 1.1什么是SVM? 1.2支持向量機分類 1.3 線性可分、線性和非線性的區分 🍔 小結 學習目標 知道SVM的概念 🍔 SVM引入 1.1什么是SVM? 看一個故事,故事是這樣子的: 在很久以前的情人節&#xf…

pycharm 運行遠程環境問題 Error:Failed to prepare environment.

問題排查 拿到更詳細的報錯信息: Help > Diagnostic Tools > Debug Log Settings section: 添加下面的配置 com.intellij.execution.configurations.GeneralCommandLine 重顯報錯,我這里是再次運行代碼打開 Help | Collect Logs and Diagnosti…

一組開源、免費、Metro風格的 WPF UI 控件庫

前言 今天大姚給大家分享一個開源、免費、Metro風格的 WPF UI 控件庫:MahApps.Metro。 項目介紹 MahApps.Metro 是一個開源、免費、Metro風格的 WPF UI 控件庫,提供了現代化、平滑和美觀的控件和樣式,幫助開發人員輕松創建具有現代感的 Win…

讀寫和解析簡單的 nc 文件

NetCDF 文件格式在氣象數據工程領域占據著舉足輕重的地位,其結構靈活、強兼容性等優勢使其成為該領域的一個標準。無論是從事學術研究還是工程實踐,掌握這種數據格式變得越發重要。其次,我注意到目前社區中氣象編程大多數課程都聚焦于某個特定…

Mac m1,m2,m3芯片使用nvm安裝node14報錯

使用nvm安裝了node 12/16/18都沒有問題,到14就報錯了。第一次看到這個報錯有點懵,查詢資料發現是Mac芯片的問題。 Issue上提供了兩個方案: 1、為了在arm64的Mac上安裝node 14,需要使用Rosseta,可以通過以下命令安裝 …

【計算機網絡】host文件

host文件的主要功能: 域名解析 本地映射:host文件的主要功能是將**域名映射到相應的 IP 地址**。當計算機需要訪問一個網站或服務時,它會首先在 host文件中查找該域名對應的 IP 地址。如果在 host文件中找到了匹配的域名和 IP 地址映射&…

vue3中customRef的用法以及使用場景

1. 基本概念 customRef 是 Vue3 提供的用于創建自定義響應式引用的 API,允許顯式地控制依賴追蹤和觸發響應。它返回一個帶有 get 和 set 函數的工廠函數來自定義 ref 的行為。 1.1 基本語法 import { customRef } from vuefunction createCustomRef(value) {retu…

周末總結(2024/01/25)

工作 人際關系核心實踐: 要學會隨時回應別人的善意,執行時間控制在5分鐘以內 堅持每天早會打招呼 遇到接不住的話題時拉低自己,抬高別人(無陰陽氣息) 朋友圈點贊控制在5min以內,職場社交不要放在5min以外 職場的人際關系在面對利…

C++和Python實現SQL Server數據庫導出數據到S3并導入Redshift數據倉庫

用C實現高性能數據處理,Python實現操作Redshift導入數據文件。 在Visual Studio 2022中用C和ODBC API導出SQL Server數據庫中張表中的所有表的數據為CSV文件格式的數據流,用逗號作為分隔符,用雙引號包裹每個數據,字符串類型的數據…

基于OpenCV實現的答題卡自動判卷系統

一、圖像預處理 ?? 二、查找答題卡輪廓 ?? 三、透視變換 ?? 四、判卷與評分 ?? 五、主函數 六、完整代碼+測試圖像集 總結 ?? 在這篇博客中,我將分享如何使用Python結合OpenCV庫開發一個答題卡自動判卷系統。這個系統能夠自動從掃描的答題卡中提取信…

Android AOP:aspectjx

加入引用 在整個項目的 build.gradle 中,添加 classpath "com.hujiang.aspectjx:gradle-android-plugin-aspectjx:2.0.10" 可以看到測試demo的 gradle 版本是很低的。 基于 github 上的文檔,可以看到原版只支持到 gradle 4.4 。后續需要使…

第84期 | GPTSecurity周報

GPTSecurity是一個涵蓋了前沿學術研究和實踐經驗分享的社區,集成了生成預訓練Transformer(GPT)、人工智能生成內容(AIGC)以及大語言模型(LLM)等安全領域應用的知識。在這里,您可以找…