MongoDB中writeConcern的原理是什么,相信很多沒有經(jīng)驗(yàn)的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個(gè)問題。
成都創(chuàng)新互聯(lián)公司堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都網(wǎng)站設(shè)計(jì)、做網(wǎng)站、成都外貿(mào)網(wǎng)站建設(shè)公司、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的大廠網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
MongoDB writeConcern原理解析
MongoDB支持客戶端靈活配置寫入策略(writeConcern),以滿足不同場景的需求。
db.collection.insert({x: 1}, {writeConcern: {w: 1}})
writeConcern選項(xiàng)
MongoDB支持的WriteConncern選項(xiàng)如下
w: 數(shù)據(jù)寫入到number個(gè)節(jié)點(diǎn)才向用客戶端確認(rèn)
{w: 0} 對客戶端的寫入不需要發(fā)送任何確認(rèn),適用于性能要求高,但不關(guān)注正確性的場景
{w: 1} 默認(rèn)的writeConcern,數(shù)據(jù)寫入到Primary就向客戶端發(fā)送確認(rèn)
{w: “majority”} 數(shù)據(jù)寫入到副本集大多數(shù)成員后向客戶端發(fā)送確認(rèn),適用于對數(shù)據(jù)安全性要求比較高的場景,該選項(xiàng)會(huì)降低寫入性能
j: 寫入操作的journal持久化后才向客戶端確認(rèn)
默認(rèn)為”{j: false},如果要求Primary寫入持久化了才向客戶端確認(rèn),則指定該選項(xiàng)為true
wtimeout: 寫入超時(shí)時(shí)間,僅w的值大于1時(shí)有效。
當(dāng)指定{w:
}時(shí),數(shù)據(jù)需要成功寫入number個(gè)節(jié)點(diǎn)才算成功,如果寫入過程中有節(jié)點(diǎn)故障,可能導(dǎo)致這個(gè)條件一直不能滿足,從而一直不能向客戶端發(fā)送確認(rèn)結(jié)果,針對這種情況,客戶端可設(shè)置wtimeout選項(xiàng)來指定超時(shí)時(shí)間,當(dāng)寫入過程持續(xù)超過該時(shí)間仍未結(jié)束,則認(rèn)為寫入失敗。
看完上述內(nèi)容,你們掌握MongoDB中writeConcern的原理是什么的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道,感謝各位的閱讀!