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