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