歡迎光臨
每天分享高質量文章

Docker最全教程——MongoDB容器化(十三)

上一節我們講述了資料庫容器化之持久儲存資料,本節將講訴MongoDB容器化實踐,並且接下來將逐步講解其他資料庫(MySql、Redis等等)的容器化實踐,然後將講訴一些分佈式架構的專案實踐。
由於實踐需要花費大量的時間,而目年前業務繁忙,只能加班來進行一些實踐並編寫,如果編寫比較慢,請多多海涵。
另外,考慮到文本內容表達有限,2月份將會推出視頻教程,並且提供腳本、代碼和筆記。

MongoDB容器化

MongoDB是一個免費的、開源的、跨平臺分佈式面向文件儲存的資料庫C++語言編寫。旨在為WEB應用提供可擴展的高性能資料儲存解決方案。

MongoDB是一個介於關係資料庫和非關係資料庫之間的產品,是非關係資料庫當中功能最豐富,最像關係資料庫的。它支持的資料結構非常鬆散,是類似json的bson格式,因此可以儲存比較複雜的資料型別。Mongo最大的特點是它支持的查詢語言非常強大,其語法有點類似於面向物件的查詢語言,幾乎可以實現類似關係資料庫單表查詢的絕大部分功能,而且還支持對資料建立索引。

官網:https://www.mongodb.com/

 

適用場景

  • 網站實時資料處理。它非常適合實時的插入、更新與查詢,並具備網站實時資料儲存所需的複製及高度伸縮性。

  • 快取。由於性能很高,它適合作為信息基礎設施的快取層。在系統重啟之後,由它搭建的持久化快取層可以避免下層的資料源過載。

  • 高伸縮性高可用的場景。MongoDB使用分片水平縮放,並且可以運行在多個服務器上,平衡負載或複製資料,以便在硬體出現故障時保持系統正常運行。

  • 海量資料。

 

不適用的場景

  • 要求高度事務性的系統。

  • 傳統的商業智慧應用。

  • 複雜的跨文件(表)級聯查詢。

鏡像說明

官方鏡像地址:

https://hub.docker.com/_/mongo

 

主要環境變數說明

  • MONGO_INITDB_ROOT_YSERNAME:管理員賬號,例如:root
  • MONGO_INITDB_ROOT_PASSWORD:管理員密碼,例如:12345

運行MongoDB容器鏡像

Powershell:

docker run  -p 27017:27017 –name myMongodb `

   -d mongo

 

 

使用主機目錄儲存資料庫檔案

PowerShell:

docker run  -p 27017:27017 –name myMongodb `

   -v d:/temp/data/mongodb:/data/db `

   -d mongo

執行之後如下圖所示:

 

註意:Windows和OS X上的Docker預設設置使用VirtualBox VM來托管Docker守護程式。但是VirtualBox用於在主機系統和Docker容器之間共享檔案夾的機制與MongoDB使用的記憶體映射檔案不兼容(請參閱vbox bug,docs.mongodb.org和相關的jira.mongodb.org錯誤)這意味著無法運行映射到主機的資料目錄的MongoDB容器。

管理Mongodb

使用nosqlbooster管理MongoDB

nosqlboostershell為中心的跨平臺GUIMongoDB管理工具,它提供全面的服務器監控工具,流暢的查詢構建器,SQL查詢支持ES2017語法支持和真正的智慧感知體驗,是非常值得推薦的一個MongoDB管理工具。

官方網址:https://nosqlbooster.com

 

 

非常值得推薦的是,NoSQLBooster支持我們使用SQL查詢語法來執行查詢(MongoDB本身不支持,是由NoSQLBooster進行了驗證和轉換處理)。

例如以下MongoDB查詢語法:

db.employees.aggregate([{

        $group: { _id:   “$department”, total: { $sum: “$salary” }}

}])

可以使用我們熟悉的SQL查詢語法來查詢:

mb.runSQLQuery(`

 

       SELECT department, SUM(salary) AS total FROM employees GROUP BY department

       

`)

這裡附上一個MySql和MongoDB的語法對比示例:

 

 

同時,NoSQLBooster提供豐富的性能監視和分析工具,如Visual Explain Plan

 

 

使用MongoDB Compass

MongoDB CompassMongoDB的可視化工具,適用於Linux,Mac或Windows,能夠非常直觀的查看和管理資料,並且可以輕鬆識別可能導致性能問題的瓶頸或慢查詢,這意味著我們可以更快地解決問題。

 

赞(0)

分享創造快樂