婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > Mongodb副本集和分片示例詳解

Mongodb副本集和分片示例詳解

熱門標簽:小裙科技電銷機器人怎樣 crm外呼系統聯系方式 內蒙古營銷智能外呼系統哪個好 智能外呼系統官網 青白江400企業電話申請 長沙電銷外呼防封卡是什么 外呼線路資源屬于電信業務嗎 河南電話外呼系統招商 呼和浩特外呼系統原理是什么

前言

因為之前沒用過mongo,所以最近的開發踩了不少坑,現在熟練了不少。

mongo在許多地方用起來還有許多不如意的地方,比如不知道如何加行鎖,雖然mongo本身可以加寫鎖, 多寫的時候保證原子性,但不能向mysql在事務中 select ... for update 這樣加鎖, 這樣可以在應用代碼中添加邏輯并且保證該對應行不被讀取或修改。

還好的是Mongodb4.0是支持事務的(看網上貌似3.6就支持了,但得自己開啟)。剛好前端時間有些業務需求需要用到事務來保證數據的準確性,因為一個動作內有多條出入和修改的操作,如果中途報錯需要回滾。

連接mongo的shell后使用 db.version() 來查看mongodb的版本

Python只用mongo事務

在python中使用使用 pymongo 來操作數據庫

import pymongo
mc = pymongo.MongoClient('mongodb://localhost:27018', connect=False, maxPoolSize=2000)
with mc.start_session() as session:
 with session.start_transaction():
  mc['test']['test'].insert_one({'a': 1}, session=session)
  mc['test']['test'].delete_one({'a': 1}, session=session)
  ...

但在實際使用中卻報了個錯

MongoError: Transaction numbers are only allowed on a replica set member or mongos.

上網搜索后很多解決方法都是npm安裝一個什么包,然后用它啟動mongo。

其實根據英文的意思也差不多能明白是怎么回事,網上搜索后發現了根本原因:事務只支持副本集和切片。而我這開發環境是直接mongod啟的

副本集

副本集搭建

啟動兩個mongodb服務(一個master,一個slave)

# 1
/usr/local/mongodb/mongodb4.0.10/bin/mongod \

--bind_ip=0.0.0.0 --port=27018
--logpath=/var/log/mongodb/mongodb_4_0_10.log \

--dbpath=/data/mongo_4.0.10_db \

--replSet rs0 --fork
# 2
/usr/local/mongodb/mongodb4.0.10/bin/mongod \

--bind_ip=0.0.0.0 --port=27019 \

--logpath=/var/log/mongodb/mongodb_4_0_10-2.log \

--dbpath=/data/mongo_4.0.10_db-2 \

--replSet rs0 --fork

在mongo shell中執行

# 啟動一個新的副本集
rs.initiate()
# 添加一個副本集
rs.add("localhost.localdomain:27019")

這樣的的話就可以使用mongodb的事務了

單節點也是支持事務的,我多加一個slave節點只是為了測試一下

slave節點讀

默認slave節點是不能讀的,在Mongo客戶端使用命令 db.setSlaveOk() 來開啟slave節點讀,

這樣的可以讀寫分離(master寫,slave讀),關于slave讀對副本集間的同步的影響我沒有實踐就不寫了,網上有資料介紹。

master選舉

http://www.mongoing.com/archives/295

分片

分片集群我沒有搭建,這里有個文章寫的比較不錯,分片加副本集搭建,這樣既分流的數據也保證了數據的備份。等有時間自己搭建我在詳細記錄這里的坑

https://www.jb51.net/article/167276.htm

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對腳本之家的支持。

您可能感興趣的文章:
  • 如何為MongoDB添加分片副本集
  • 分布式文檔存儲數據庫之MongoDB分片集群的問題
  • MongoDB搭建高可用集群的完整步驟(3個分片+3個副本)
  • MongoDB分片集群部署詳解
  • MongoDB分片在部署與維護管理中常見的事項總結大全
  • 詳解MongoDB4.0構建分布式分片群集
  • MongoDB分片鍵的選擇和案例實例詳解
  • MongoDB分片詳解
  • mongodb分片技術_動力節點Java學院整理
  • mongodb3.4集群搭建實戰之高可用的分片+副本集
  • 深入理解MongoDB分片的管理
  • Mongodb 刪除添加分片與非分片表維護
  • MongoDB 主分片(primary shard)相關總結

標簽:舟山 楚雄 安順 白山 呼倫貝爾 池州 菏澤 黃石

巨人網絡通訊聲明:本文標題《Mongodb副本集和分片示例詳解》,本文關鍵詞  Mongodb,副本,集,和,分片,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Mongodb副本集和分片示例詳解》相關的同類信息!
  • 本頁收集關于Mongodb副本集和分片示例詳解的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 闽清县| 肃北| 澎湖县| 利津县| 贡觉县| 织金县| 扶沟县| 丹巴县| 青阳县| 天津市| 新兴县| 武邑县| 河曲县| 濮阳市| 紫阳县| 双流县| 石家庄市| 渭源县| 东台市| 方城县| 安化县| 昌图县| 栖霞市| 中江县| 钟祥市| 永善县| 江城| 静宁县| 延长县| 苏尼特右旗| 东明县| 滨海县| 房产| 新龙县| 兴化市| 古浪县| 东安县| 张家口市| 罗定市| 庄河市| 盱眙县|