時間:2024-03-04 00:33作者:下載吧人氣:22
為何要分片
1.減少單機請求數(shù),降低單機負載,提高總負載
2.減少單機的存儲空間,提高總存空間。
常見的mongodb sharding 服務(wù)器架構(gòu)
要構(gòu)建一個 MongoDB Sharding Cluster,需要三種角色:
1.Shard Server
即存儲實際數(shù)據(jù)的分片,每個Shard可以是一個mongod實例,也可以是一組mongod實例構(gòu)成的Replication Set。為了實現(xiàn)每個Shard內(nèi)部的auto-failover(自動故障切換),MongoDB官方建議每個Shard為一組Replica Set。
2.Config Server
為了將一個特定的collection存儲在多個shard中,需要為該collection指定一個shard key(片鍵),例如{age: 1} ,shard key可以決定該條記錄屬于哪個chunk(分片是以chunk為單位,后續(xù)會介紹)。Config Servers就是用來存儲:所有shard節(jié)點的配置信息、每個chunk的shard key范圍、chunk在各shard的分布情況、該集群中所有DB和collection的sharding配置信息。
3.Route Process
這是一個前端路由,客戶端由此接入,然后詢問Config Servers需要到哪個Shard上查詢或保存記錄,再連接相應(yīng)的Shard進行操作,最后將結(jié)果返回給客戶端。客戶端只需要將原本發(fā)給mongod的查詢或更新請求原封不動地發(fā)給Routing Process,而不必關(guān)心所操作的記錄存儲在哪個Shard上。(所有操作在mongos上操作即可)
配置分片服務(wù)器
下面我們在同一臺物理機器上構(gòu)建一個簡單的 Sharding Cluster:
Shard Server 1:27017
Shard Server 2:27018
Config Server :27027
Route Process:40000
網(wǎng)友評論