摘要:搭建服務器采用搭建,可參考讀模式的讀模式共有五種在主節(jié)點上進行所有的讀操作優(yōu)先在主節(jié)點上進行讀操作,如果主節(jié)點不可用,再從從節(jié)點操作。
Replica Sets搭建
服務器采用Replica Sets搭建,可參考Deploy a Replica Set
讀模式Mongod的讀模式共有五種:
primary. 在主節(jié)點上進行所有的讀操作
primaryPreferred. 優(yōu)先在主節(jié)點上進行讀操作,如果主節(jié)點不可用,再從從節(jié)點操作。
secondary.所有的讀操作在從節(jié)點上進行。
secondaryPreferred.優(yōu)先在從節(jié)點進行讀操作,如果所有從節(jié)點都不可用,再從主節(jié)點操作。
nearest. 根據(jù)網(wǎng)絡延遲時間 ,就近進行讀操作,不考慮節(jié)點類型。
配置節(jié)點Tags SetsTag sets 允許指定一個replica set進行讀操作,其中Mongod的讀模式必須是以下四種之一:
primaryPreferred、secondary、secondaryPreferred、nearest
Tags Sets配置參考:Configure Replica Set Tag Sets
主要操作如下:
conf = rs.conf() conf.members[0].tags = { "dc": "east", "use": "production" } conf.members[1].tags = { "dc": "east", "use": "reporting" } conf.members[2].tags = { "use": "production" } rs.reconfig(conf)mgo代碼示例
根據(jù)以上的配置,如果需要指定從members 1中進行數(shù)據(jù)庫讀操作,可采取以下代碼:
session, err := mgo.Dial("localhost") if err != nil { log.Fatalln(err) } defer session.Close() session.SetMode(mgo.Eventual, true) //需要指定為Eventual session.SelectServers(bson.D{{"dc", "east"}, {"use", "reporting"}}) // 指定從1中讀取 db := session.DB("test") col := db.C("tbl") data := make([]interface{}, 10) col.Find(nil).Limit(10).All(&data) log.Println(data)
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉載請注明本文地址:http://systransis.cn/yun/18714.html
摘要:如果刪除所有用替換其他寫了一個和結合的數(shù)據(jù)查詢服務細節(jié)可點擊鏈接到查看 1.系統(tǒng)環(huán)境 Golang:go version go1.10.3 darwin/amd64 OS:MacOS MongoDB: version: 3.4.4 2.Golang使用MongoDB 使用:gopkg.in/mgo.v2 獲取包:go get gopkg.in/mgo.v2 引入:impor...
摘要:準備數(shù)據(jù)結構這個以對一個簡單的通訊錄進行插入查詢更新刪除記錄為例,中包含和兩個字段下載還沒出官方的驅動包,是現(xiàn)在比較流行的第三方包,能找到的相關資料也比較多。準備實現(xiàn)對的增刪改查操作,先想了下怎么寫測試案例。查找,通過查找該條記錄。 環(huán)境聲明:go version go1.11MongoDB server version 4.0.3 背景 這是我第一次接觸golang和MongoDB,...
摘要:本節(jié)將學習來統(tǒng)一管理和部署微服務,引入第三個微服務并進行存儲數(shù)據(jù)。到目前為止,要想啟動微服務的容器,均在其中的同時設置其環(huán)境變量,服務多了以后管理起來十分麻煩。 譯文鏈接:wuYin/blog原文鏈接:ewanvalentine.io,翻譯已獲作者 Ewan Valentine 授權。 本文完整代碼:GitHub 在上節(jié)中,我們使用 go-micro 重新實現(xiàn)了微服務并進行了 Doc...
摘要:無法打開和都是,也就是說它們可以指向任意類型,此時是指向結構的指針是具體此時是指針,指向的類型是會把當成對待所有域的信息都會輸出來此時是指向結構的指針只有確定了類型后,才會當成具體類型只有確定了類型后,才會當成具體類型輸出結果如下 package main import ( gopkg.in/mgo.v2 log reflect ) func main() ...
摘要:實際情況默認情況下,使用自動生成,而且在自帶的命令里,無法指定一個自增字段。自增字段在多線程時必須是原子性的,這在大數(shù)據(jù)情況下很難實現(xiàn)伸縮性。而且,在里面,有一個命令是原子性的。代碼如下無法打開創(chuàng)建個模擬多線程環(huán)境輸出查詢結果 實際情況 默認情況下,mongo使用_id自動生成uniq id,而且在mongo自帶的命令里,無法指定一個自增字段。自增字段在多線程時必須是原子性的,這在大數(shù)...
閱讀 3026·2020-01-08 12:17
閱讀 2000·2019-08-30 15:54
閱讀 1157·2019-08-30 15:52
閱讀 2043·2019-08-29 17:18
閱讀 1053·2019-08-29 15:34
閱讀 2466·2019-08-27 10:58
閱讀 1868·2019-08-26 12:24
閱讀 377·2019-08-23 18:23