在1個產品環境下,高可用是必須到達的目標。下圖是mongodb 3.0以后的shard cluster架構圖。
1. mongos實現了mongod1樣的服務接口,監聽相同的27017端口,mongos接到訪問要求后,會根據sharding算法,將要求轉發到對應的shard中,然后會將各個shard返回的結果合并后返回給要求方
其實還有其他方法,比如通過LVS將多個mongos放在1個域名下,利用LVS的負載均衡。然后所有web server只通過這個域名發出查詢/寫入等要求。不過這個方法需要額外的LVS支持。1般情況下,1對1方案就已夠用
2. 部署程序的時候,請1同部署mongos。比如1個web服務器上有1個web server和1個mongos。web server總是訪問本地運行的mongos,不需要指定1堆IP地址和端口號,那是訪問replica set的方式。shard cluster模式下,反而簡單了。
3. config server本質上是用mongod組成replica set,記錄元數據。config server可以用3臺低配的服務器,但是要獨立,不要和shard, mongos放在1臺服務器上。