第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

使用 mongo.Connect 時(shí)連接未打開,而是在我執(zhí)行查詢時(shí)打開

使用 mongo.Connect 時(shí)連接未打開,而是在我執(zhí)行查詢時(shí)打開

Go
不負(fù)相思意 2022-10-17 19:35:13
我正在編寫一個(gè)使用 mongo-driver 連接到 mongo 副本集的 Go 應(yīng)用程序。我注意到mongo.Connect實(shí)際上并沒有連接到數(shù)據(jù)庫。即使我關(guān)閉了mongod實(shí)例,mongo.Connect仍然可以通過。但是,當(dāng)我進(jìn)行查詢時(shí),它將連接到mongod實(shí)例。現(xiàn)在我的問題是我對(duì)同一mongod實(shí)例中的不同數(shù)據(jù)庫有很多(> 100)并發(fā)查詢。驅(qū)動(dòng)程序創(chuàng)建了一大堆連接并且因?yàn)檫B接太多而使mongod我失敗,即使我使用單個(gè).Too many files openedmongo.Client這是 mongo_driver 的正確行為嗎?我該如何處理?MongoDB 是否需要每個(gè)數(shù)據(jù)庫的每個(gè)連接?
查看完整描述

1 回答

?
慕妹3146593

TA貢獻(xiàn)1820條經(jīng)驗(yàn) 獲得超9個(gè)贊

mongo.Connect()創(chuàng)建一個(gè)新的mongo.Client并初始化它,但不(必然)創(chuàng)建到數(shù)據(jù)庫服務(wù)器的連接。

要實(shí)際創(chuàng)建連接并檢查服務(wù)器是否可訪問(不執(zhí)行查詢),您可以使用該Client.Ping()方法。如果服務(wù)器不可訪問,這將返回錯(cuò)誤。

官方的 mongodb 驅(qū)動(dòng)程序管理一個(gè)內(nèi)部連接池。連接在使用后不會(huì)立即關(guān)閉,而是將它們放回池中,因此當(dāng)需要連接來執(zhí)行操作時(shí),可以立即使用池中的空閑連接。這是預(yù)期的行為。您可以通過options.ClientOptions傳遞給mongo.Connect().

ClientOptions.SetMaxPoolSize()

SetMaxPoolSize 指定驅(qū)動(dòng)程序的連接池中允許到每個(gè)服務(wù)器的最大連接數(shù)。如果達(dá)到此最大值,對(duì)服務(wù)器的請(qǐng)求將被阻止。這也可以通過“maxPoolSize” URI 選項(xiàng)進(jìn)行設(shè)置(例如“maxPoolSize=100”)。默認(rèn)值為 100。如果為 0,則設(shè)置為 math.MaxInt64。

示例設(shè)置連接受限的客戶端并對(duì)其執(zhí)行 ping 操作:

ctx := context.Background()


opts := options.Client().

    ApplyURI("mongodb://localhost").

    SetMaxPoolSize(20) // Allow no more than 20 connections per server


client, err := mongo.Connect(ctx, opts)

if err != nil {

    log.Printf("mongo.Connect() failed: %v", err)

    return

}

defer client.Disconnect(ctx)


if err := client.Ping(ctx, nil); err != nil {

    log.Printf("Can't connect to db: %v", err)

    return

}


// Use client

見相關(guān):goroutine create multiple mongodb connection


查看完整回答
反對(duì) 回復(fù) 2022-10-17
  • 1 回答
  • 0 關(guān)注
  • 159 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)