
使用者通路 mongos 跟通路單個 mongod 類似
所有 mongos 是對等關系,使用者通路分片叢集可通過任意一個或多個mongos
mongos 本身是無狀态的,可任意擴充,叢集的服務能力為『shard服務能力之和』與『mongos服務能力之和』的最小值。
通路分片叢集時,最好将應用負載均勻的分散到多個 mongos 上
下面就是connection string包含的主要内容
mongodb:// 字首,代表這是一個connection string
username:password@ 如果啟用了鑒權,需要指定使用者密碼
hostx:portx 多個 mongos 的位址清單
/database 鑒權時,使用者帳号所屬的資料庫
?options 指定額外的連接配接選項
為了友善使用者使用,控制台上也生成了連接配接複制集的connection string及通過mongo shell連接配接的指令。
通過上述方式連接配接分片叢集時,用戶端會自動将請求分散到多個mongos 上,以實作負載均衡;同時,當uri 裡 mongos 數量在2個及以上時,當有mongos故障時,用戶端能自動進行 failover,将請求都分散到狀态正常的 mongos 上。
當 mongos 數量很多時,還可以按應用來将 mongos 進行分組,比如有2個應用a、b、有4個mongos,可以讓應用a 通路 mongos 1-2(uri裡隻指定mongos 1-2 的位址), 應用b 來通路 mongos 3-4(uri裡隻指定mongos 3-4 的位址),根據這種方法來實作應用間的通路隔離(應用通路的mongos彼此隔離,但後端 shard 仍然是共享的)。
在options裡添加<code>maxpoolsize=xx</code>即可将用戶端連接配接池限制在xx以内。
mongodb