亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

MongoDB 客戶端連接選項(xiàng)

yexiaobai / 3182人閱讀

摘要:原文保持更新及修正基于的客戶端配置選項(xiàng),其它驅(qū)動(dòng)大同小異。連接池中連接的最大使用壽命毫秒。設(shè)置該選項(xiàng)后,客戶端將進(jìn)行以下行為以副本集模式連接,并根據(jù)給定的服務(wù)器發(fā)現(xiàn)副本集的所有成員。該選項(xiàng)可以和配合使用。編解碼器用于對(duì)進(jìn)行編碼和解碼。

原文保持更新及BUG修正:http://kweny.io/mongodb-clien...


基于 MongoDB Java Driver 3.8.1 的客戶端配置選項(xiàng),其它驅(qū)動(dòng)大同小異。

description

java.lang.String

客戶端的描述。該描述用于日志記錄和 JMX 等位置。

默認(rèn)為 null。

applicationName

java.lang.String
Server Version: 3.4

應(yīng)用程序的邏輯名稱??蛻舳丝梢該?jù)此標(biāo)識(shí)應(yīng)用程序服務(wù)器,用于服務(wù)器日志、慢查詢?nèi)罩炯案乓占?/p>

默認(rèn)為 null。

minConnectionsPerHost

int

每個(gè)主機(jī)的最小連接數(shù),這些連接在空閑時(shí)將保持在連接池中。

默認(rèn)為 0,不能小于 0。

maxConnectionsPerHost

int

每個(gè)主機(jī)允許的最大連接數(shù),這些連接在空閑時(shí)將保持在連接池中。當(dāng)連接池耗盡后,任何需要連接的操作都將被阻塞并等待可用連接。

默認(rèn)為 100,不能小于 1。

threadsAllowedToBlockForConnectionMultiplier

int

允許阻塞的連接線程數(shù)乘數(shù)。該值和 maxConnectionsPerHost 相乘的結(jié)果就是連接等待隊(duì)列的最大值,超出的線程將立即拋出異常。

如該值為 5,maxConnectionsPerHost 為 10,則最多可以同時(shí)有 50 個(gè)線程等待連接。

默認(rèn)為 5,不能小于 1。

maxWaitTime

int

線程從連接池中獲取可用連接的最長等待時(shí)間(毫秒)。

默認(rèn)為 120,000(120秒),0 表示不等待,負(fù)值意味著無限期等待。

maxConnectionIdleTime

int

連接池中連接的最大空閑時(shí)間(毫秒)。超出空閑時(shí)間的連接將被關(guān)閉,并在必要時(shí)由新建連接替換。

默認(rèn)為 0,表示無限制,不能小于 0。

maxConnectionLifeTime

int

連接池中連接的最大使用壽命(毫秒)。超出使用壽命的連接將被關(guān)閉,并在必要時(shí)由新建連接替換。

默認(rèn)為 0,表示無限制,不能小于 0。

connectTimeout

int

連接超時(shí)時(shí)間(毫秒),僅在新建連接時(shí)使用。

默認(rèn)為 10,000(10秒),0 表示無限制,不能小于 0。

socketTimeout

int

socket 超時(shí)時(shí)間(毫秒),用于 I/O 讀寫操作。

默認(rèn)為 0,表示無限制。

socketKeepAlive

boolean

是否啟用 socket 的 keep-alive 功能。

該選項(xiàng)從 MongoDB Java Driver 3.5.0 版開始已經(jīng)廢棄,現(xiàn)在默認(rèn)值為 true,不建議禁用。

heartbeatFrequency

int

心跳檢測頻率(毫秒)。該選項(xiàng)用于設(shè)定驅(qū)動(dòng)程序每次嘗試確定每個(gè)服務(wù)器當(dāng)前狀態(tài)的間隔時(shí)間。

默認(rèn)為 10,000(10秒)。

minHeartbeatFrequency

int

心跳檢測的最小頻率(毫秒)。如果驅(qū)動(dòng)程序需要經(jīng)常檢查服務(wù)器的可用性,那么距離上次檢測至少等待這么長時(shí)間,以避免資源浪費(fèi)。

默認(rèn)為 500。

heartbeatConnectTimeout

int

用于心跳檢測的連接超時(shí)時(shí)間(毫秒)。

默認(rèn)為 20,000(20秒)。

heartbeatSocketTimeout

int

用于心跳檢測的 socket 超時(shí)時(shí)間(毫秒)。

默認(rèn)為 20,000(20秒)。

retryWrites

boolean
Server Version: 3.6

設(shè)定當(dāng)由于網(wǎng)絡(luò)錯(cuò)誤而寫入失敗時(shí),是否進(jìn)行重試。

sslEnabled

boolean

是否啟用 SSL。

在未設(shè)置 socket factory 的情況下,設(shè)置該選項(xiàng)時(shí)將同時(shí)設(shè)置默認(rèn)的 socket factory,true 時(shí)為 java.net.ssl.SSLSocketFactory.getDefault(),false 時(shí)為 javax.net.SocketFactory.getDefault()。

開啟該選項(xiàng)時(shí),如果設(shè)置其它 socket factory,則該 factory 必須創(chuàng)建 java.net.ssl.SSLSocket 的實(shí)例,否則將拒絕連接。

默認(rèn)為 false,不啟用。

sslInvalidHostNameAllowed

boolean

啟用 SSL 時(shí)是否允許無效的主機(jī)名(證書域名檢查)。true 為允許,即關(guān)閉域名檢查。

設(shè)為 true(允許無效主機(jī)名)將使應(yīng)用程序容易受到中間人攻擊。

注意,證書域名檢查需要 Java 7 及以上版本,如果應(yīng)用程序使用了 SSL 運(yùn)行在 Java 6 上,則必須將該選項(xiàng)設(shè)為 true(關(guān)閉域名檢查)。

默認(rèn)為 false,即開啟域名檢查,不允許無效的主機(jī)名。

socketFactory

javax.net.SocketFactory

用于建立 socket 的工廠。

默認(rèn)為 javax.net.SocketFactory.getDefault()

sslContext

javax.net.ssl.SSLContext

啟用 SSL 時(shí)使用的 SSLContext,當(dāng) sslEnabled 為 false 或指定了 socket factory 時(shí),將忽略此選項(xiàng)。

requiredReplicaSetName

java.lang.String

指定必須的副本集名稱。確保連接的所有節(jié)點(diǎn)都屬于一個(gè)指定的副本集。

設(shè)置該選項(xiàng)后,客戶端將進(jìn)行以下行為——

以副本集模式連接,并根據(jù)給定的服務(wù)器發(fā)現(xiàn)副本集的所有成員。

確保所有成員報(bào)告的副本集名稱與指定名稱匹配。

如果服務(wù)器列表中的任何成員不屬于該副本集,則拒絕所有請(qǐng)求。

默認(rèn)為 null。

localThreshold

int

用于服務(wù)器選擇的一個(gè)參考閾值,單位為毫秒。如果對(duì)于某個(gè)操作存在多個(gè)合適的服務(wù)器,則以該選項(xiàng)的值來確定一個(gè)基于延遲時(shí)間(RTT)的延遲窗口范圍(Latency Window)。以延遲最小的服務(wù)器為基準(zhǔn)(最小延遲時(shí)間),所有延遲時(shí)間和最小延遲時(shí)間的差值小于該值的服務(wù)器,都有資格被隨機(jī)選中。

如果該參數(shù)設(shè)為 0,則不使用隨機(jī)算法,而是選擇延遲時(shí)間最小的服務(wù)器。

默認(rèn)為 15 毫秒,意味著所有有資格被選中的服務(wù)器之間的延遲時(shí)間只有 15 毫秒以內(nèi)的差異。

serverSelector

com.mongodb.selector.ServerSelector

服務(wù)器選擇器。用于增強(qiáng)標(biāo)準(zhǔn)的服務(wù)器選擇規(guī)則。

在執(zhí)行該選擇器篩選出符合要求的服務(wù)器列表后,驅(qū)動(dòng)程序?qū)⒗^續(xù)執(zhí)行以下兩個(gè)選擇操作——

根據(jù) localThreshold 選出延遲窗口范圍內(nèi)的服務(wù)器;

繼續(xù)從延遲窗口范圍內(nèi)的服務(wù)器隨機(jī)選擇一個(gè)服務(wù)器。

要跳過基于延遲窗口的選擇,可以使用以下方法——

localThreshold 設(shè)置為足夠高的值,以便不排除任何服務(wù)器。

使該選擇器返回的列表只包含單個(gè)服務(wù)器,這將使后續(xù)的選擇操作沒有其它服務(wù)器可選。

serverSelectionTimeout

int

服務(wù)器選擇的超時(shí)時(shí)間(毫秒),指定驅(qū)動(dòng)程序從集群中選擇服務(wù)器時(shí),無法成功而放棄并拋出異常的時(shí)間??梢愿鶕?jù)需要(如耐心等待或快速返回錯(cuò)誤)來設(shè)置該參數(shù)的值。

默認(rèn)為 30,000(30秒),這個(gè)時(shí)間對(duì)于在經(jīng)典的故障恢復(fù)階段中選舉出新的主節(jié)點(diǎn)來說已經(jīng)足夠。0 表示無可用服務(wù)器,將立即超時(shí);負(fù)值意味著無限期等待。

alwaysUseMBeans

boolean

設(shè)置驅(qū)動(dòng)程序注冊的 JMX Beans 是否始終為 MBeans,無論 VM 是不是 Java 6 及更高版本。

當(dāng)該選項(xiàng)為 false 時(shí),驅(qū)動(dòng)程序?qū)⒃?Java 6 或更高版本時(shí)使用 MXBeans;Java 5 中使用 MBeans。

默認(rèn)為 false。

compressorList

java.util.List
Server Version: 3.4

用于向 MongoDB 服務(wù)器收發(fā)消息的壓縮器列表。驅(qū)動(dòng)程序?qū)⑹褂梅?wù)器配置支持的列表中的第一個(gè)壓縮器。

默認(rèn)為空列表。

writeConcern

com.mongodb.WriteConcern

寫入策略,用于控制寫入安全的級(jí)別,以保障寫操作的可靠性??蛇x配置如下——

w - 該選項(xiàng)要求寫入確認(rèn)操作已經(jīng)傳遞到指定數(shù)量的節(jié)點(diǎn)或指定標(biāo)簽的節(jié)點(diǎn)。有以下可選值——

w:0 (Unacknowledged) - 寫入操作調(diào)用后立刻返回,無法知道寫入是否成功。性能最好,但可靠性最差,不推薦使用。此外還有一個(gè) w:-1 (error ignored) 級(jí)別,基本和 w:0 差不多,不同的是 w:0 對(duì)于網(wǎng)絡(luò)錯(cuò)誤會(huì)返回異常,而 w:-1 不會(huì)捕獲任何異常。

w:1 (Acknowledged) - 等待實(shí)際寫入操作完成后才返回響應(yīng),如果寫入發(fā)生錯(cuò)誤,可以捕獲到并進(jìn)行處理。該級(jí)別具備基本的可靠性,是目前的默認(rèn)設(shè)置。

w:2 (Replica Acknowledged) - 當(dāng) secondary 節(jié)點(diǎn)從 primary 節(jié)點(diǎn)完成了復(fù)制之后返回響應(yīng)。其中的數(shù)字 2 表示完成復(fù)制操作的節(jié)點(diǎn)數(shù)目,可以是其它 >=2 的數(shù)字,如 w:3 表示至少要有 3 個(gè)節(jié)點(diǎn)有數(shù)據(jù)。

w:majority - 和 w:2 一樣,secondary 節(jié)點(diǎn)從 primary 節(jié)點(diǎn)完成數(shù)據(jù)復(fù)制后返回響應(yīng)。不同的是這里并不指定具體的節(jié)點(diǎn)數(shù)量,而是使用 majority 表示“大多數(shù)”,即超過一半(>1/2)的節(jié)點(diǎn)數(shù)。

tag set - 指定副本集成員的標(biāo)簽,要求寫入確認(rèn)已經(jīng)傳遞到指定 tag 標(biāo)記的副本集成員后返回響應(yīng)。

wtimeout - 寫入超時(shí)時(shí)間(毫秒)。用于設(shè)定一個(gè)時(shí)間限制,當(dāng)寫入過程持續(xù)超過該時(shí)間后則認(rèn)為寫入失敗。該選項(xiàng)僅適用于集群環(huán)境,當(dāng)指定 w 值大于 1 時(shí)生效。數(shù)據(jù)需要寫入指定數(shù)量的節(jié)點(diǎn)才算成功,但如果有節(jié)點(diǎn)發(fā)生故障,可能導(dǎo)致這個(gè)數(shù)量無法達(dá)到,從而無法進(jìn)行響應(yīng),通過設(shè)定這個(gè)超時(shí)時(shí)間,可以防止寫入操作被無限制阻塞。該參數(shù)可以設(shè)置為 0,表示無限期。

journal - 寫入操作記錄到 Journal Log 持久化之后才向客戶端返回響應(yīng)。該選項(xiàng)要求服務(wù)端開啟 journaling 功能,不能與 fsync 結(jié)合使用。要記錄到 Journal Log 必須等到下一次提交,可以通過增加 Journal Log 的提交頻率來降低延遲。

默認(rèn)為 w:1(com.mongodb.WriteConcern.ACKNOWLEDGED)。

readConcern

com.mongodb.ReadConcern
Server Version: 3.2

讀取策略(隔離級(jí)別),決定集群環(huán)境中如何返回?cái)?shù)據(jù)——

local - 直接從本地讀取,不考慮數(shù)據(jù)是否已經(jīng)在集群的其它節(jié)點(diǎn)同步,默認(rèn)值。

majority - 只讀取成功寫入大多數(shù)節(jié)點(diǎn)的數(shù)據(jù)。

linearizable - Server Version: 3.4 版本引入。和 majority 類似,但修復(fù)了 majority 的一些 bug,但比 majority 在性能上的損耗更大。linearizable 對(duì)于同一文檔的并發(fā)讀、寫操作時(shí)線性的。

snapshot - Server Version: 4.0 版本引入。MongoDB 從 4.0 開始支持副本集多文檔事務(wù),同時(shí)提供了 snapshot 隔離級(jí)別,在事務(wù)開始時(shí)創(chuàng)建一個(gè) WiredTiger snapshot(快照),保存當(dāng)時(shí)整個(gè)引擎所有事務(wù)的狀態(tài),確定哪些事務(wù)對(duì)當(dāng)前可見,哪些不可見,然后在整個(gè)事務(wù)過程中使用這個(gè)快照提供事務(wù)讀。

該選項(xiàng)可用于解決“臟讀”的問題,如從 primary 節(jié)點(diǎn)上讀取了某條數(shù)據(jù),但這條數(shù)據(jù)并沒有同步到大多數(shù)節(jié)點(diǎn),然后 primary 節(jié)點(diǎn)故障,重新恢復(fù)后 primary 節(jié)點(diǎn)會(huì)將未同步到大多數(shù)節(jié)點(diǎn)的數(shù)據(jù)回滾掉,導(dǎo)致之前讀取的數(shù)據(jù)成了“臟數(shù)據(jù)”。

而將 readConcern 的級(jí)別設(shè)置為 majority,則可以保證讀取到的數(shù)據(jù)已經(jīng)寫入大多數(shù)節(jié)點(diǎn),這些數(shù)據(jù)不會(huì)發(fā)生回滾,也就避免了“臟讀”的問題。需要注意的是,該級(jí)別能保證讀取到的數(shù)據(jù)不會(huì)發(fā)生回滾,但并不能保證讀到的數(shù)據(jù)是最新的。

該選項(xiàng)可以和 readPreference 配合使用。

readPreference

com.mongodb.ReadPreference

用于查詢、Map-Reduce、聚合、計(jì)數(shù)的讀取首選項(xiàng)。

MongoDB 有 5 種 ReadPreference 模式——

primary - 主節(jié)點(diǎn),默認(rèn)模式,只從 primary 節(jié)點(diǎn)讀取,如果 primary 節(jié)點(diǎn)不可用,則報(bào)錯(cuò)或拋出異常。

primaryPreferred - 首選主節(jié)點(diǎn),優(yōu)先從 primary 節(jié)點(diǎn)讀取,如果 primary 節(jié)點(diǎn)不可用(如故障轉(zhuǎn)移),則從 secondary 節(jié)點(diǎn)讀取。

secondary - 從節(jié)點(diǎn),只從 secondary 節(jié)點(diǎn)讀取,如果 secondary 節(jié)點(diǎn)不可用,則報(bào)錯(cuò)或拋出異常。

secondaryPreferred - 優(yōu)先從 secondary 節(jié)點(diǎn)讀取,如果沒有可用的 secondary 節(jié)點(diǎn),則從 primary 節(jié)點(diǎn)讀取。

nearest - 最近節(jié)點(diǎn),根據(jù)網(wǎng)絡(luò)距離從最近的節(jié)點(diǎn)讀取,可能是 primary 節(jié)點(diǎn)或 secondary 節(jié)點(diǎn)。

默認(rèn)為 primary(com.mongodb.ReadPreference.primary())。

cursorFinalizerEnabled

boolean

是否啟用游標(biāo)的 finalize 方法,用于清理客戶端未關(guān)閉的 DBCursor 實(shí)例。

如果能夠確保每次都會(huì)調(diào)用 DBCursor 的 close 方法,則可以關(guān)閉該選項(xiàng)(設(shè)為 false)。

默認(rèn)為 true。

codecRegistry

org.bson.codecs.configuration.CodecRegistry

編解碼器注冊表。編解碼器用于對(duì) Document 進(jìn)行編碼和解碼。

dbEncoderFactory

com.mongodb.DBEncoderFactory

編碼器工廠。

默認(rèn)使用驅(qū)動(dòng)程序的標(biāo)準(zhǔn)配置。

dbDecoderFactory

com.mongodb.DBDecoderFactory

解碼器工廠。

默認(rèn)使用驅(qū)動(dòng)程序的標(biāo)準(zhǔn)配置。

commandListeners

java.util.List

命令事件監(jiān)聽器集合。

默認(rèn)為空列表。

clusterListeners

java.util.List

與集群相關(guān)的事件監(jiān)聽器集合。

默認(rèn)為空列表。

connectionPoolListeners

java.util.List

與連接池相關(guān)的事件監(jiān)聽器集合。

默認(rèn)為空列表。

serverListeners

java.util.List

與服務(wù)器相關(guān)的事件監(jiān)聽器集合。

默認(rèn)為空列表。

serverMonitorListeners

java.util.List

與服務(wù)器監(jiān)控相關(guān)的事件監(jiān)聽器集合。

默認(rèn)為空列表。


本文版權(quán)屬于 K棧。歡迎注明出處轉(zhuǎn)載本文。本文鏈接:http://kweny.io/mongodb-clien...

如果您喜歡我的文章,可以在以下平臺(tái)關(guān)注我——

個(gè)人主頁:http://kweny.io

GitHub:https://github.com/kweny

簡書:https://www.jianshu.com/u/b9a...

知乎:https://zhihu.com/people/kweny

思否:https://segmentfault.com/u/kweny

微博:https://weibo.com/kweny

公眾號(hào):K棧IO(KwenyIO)

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/19388.html

相關(guān)文章

  • [Carefree MongoDB] Spring Boot MongoDB 自動(dòng)化配置

    摘要:然而,只提供了最簡單的客戶端選項(xiàng),且不支持多數(shù)據(jù)源配置。由此而生,除了支持完整的客戶端選項(xiàng)及多數(shù)據(jù)源配置之外,還提供了一些其它的實(shí)用功能。配置示例多數(shù)據(jù)源進(jìn)行多數(shù)據(jù)源配置時(shí),需要明確指定各數(shù)據(jù)源的名稱。 最近在制作一個(gè) spring boot 小應(yīng)用時(shí)使用了 MongoDB,鑒于官方庫的簡陋配置,決定自己造個(gè)輪子,源碼發(fā)布在 GitHub Carefree MongoDB,jar 已在...

    時(shí)飛 評(píng)論0 收藏0
  • 關(guān)于mongodb遠(yuǎn)程訪問問題

    摘要:背景在視頻學(xué)習(xí)開發(fā)中使用到了這個(gè)數(shù)據(jù)庫,視頻中安裝在本地也能通過命令訪問到本地?cái)?shù)據(jù)庫。在練習(xí)中將安裝到了云服務(wù)器上,通過外網(wǎng)來訪問這個(gè)的時(shí)候卻超時(shí)了。使用對(duì)性能沒有影響并且可以防范類似于的攻擊。參見配置以獲得更多信息。 背景:在視頻學(xué)習(xí)vue開發(fā)中使用到了mongodb這個(gè)數(shù)據(jù)庫,視頻中安裝在本地也能通過mongo命令訪問到本地?cái)?shù)據(jù)庫。在練習(xí)中將mongodb安裝到了云服務(wù)器上,通過外...

    chanjarster 評(píng)論0 收藏0
  • Express使用mongodb管理會(huì)話儲(chǔ)存 connect-mongo模塊簡介

    摘要:簡介在我的前一篇小文中小書提到了可以更換會(huì)話儲(chǔ)存那么這篇文章我們就來講講在進(jìn)行會(huì)話管理的時(shí)候如何將會(huì)話數(shù)據(jù)保存在外部數(shù)據(jù)庫中本文中我們使用用作會(huì)話儲(chǔ)存數(shù)據(jù)庫本文中使用的模塊以及版本號(hào)一覽模塊名稱版本號(hào)特性支持支持所有版本的支持支持 簡介 在我的前一篇小文中express-session小書提到了express-session可以更換會(huì)話儲(chǔ)存. 那么這篇文章我們就來講講express在進(jìn)...

    jackzou 評(píng)論0 收藏0
  • Express使用mongodb管理會(huì)話儲(chǔ)存 connect-mongo模塊簡介

    摘要:簡介在我的前一篇小文中小書提到了可以更換會(huì)話儲(chǔ)存那么這篇文章我們就來講講在進(jìn)行會(huì)話管理的時(shí)候如何將會(huì)話數(shù)據(jù)保存在外部數(shù)據(jù)庫中本文中我們使用用作會(huì)話儲(chǔ)存數(shù)據(jù)庫本文中使用的模塊以及版本號(hào)一覽模塊名稱版本號(hào)特性支持支持所有版本的支持支持 簡介 在我的前一篇小文中express-session小書提到了express-session可以更換會(huì)話儲(chǔ)存. 那么這篇文章我們就來講講express在進(jìn)...

    zhangxiangliang 評(píng)論0 收藏0
  • mongodb數(shù)據(jù)庫在centos 下啟動(dòng)

    摘要:添加完后,重啟數(shù)據(jù)庫服務(wù),帶參數(shù)啟動(dòng)這樣就會(huì)開啟安全檢查。要給具體的數(shù)據(jù)庫設(shè)置專用的管理員,先用命令切換到對(duì)應(yīng)的數(shù)據(jù)庫,在調(diào)用函數(shù)來添加賬戶就行。登錄客戶端之后,切換到數(shù)據(jù)庫,再調(diào)用函數(shù)來關(guān)閉服務(wù)。 下面操作都是centos Linux系統(tǒng)下完成。1.啟動(dòng):使用MongoDB bin目錄下的mongod命令來啟動(dòng)mongodb服務(wù)器:mongod --dbpath=/home/mong...

    haoguo 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<