集群評估
智能召回引擎BE采用分布式集群架構,主要由三部分組成:節點類型(即每個分片的規格)、副本數(即replica,每個備份都可獨立承擔線上流量,通過增加副本數可擴展集群的水平負載能力)、分片數(即partition,通過內部Hash處理,可將數據進行分片存儲到不同的節點上,從而擴展集群的數據容量能力)
節點類型:
分片規格 | 磁盤大小 | 一跳查詢QPS | 數據更新TPS |
cpu: 2核, mem: 8GiB | 120GiB | 2500 | 20000 |
cpu: 4核, mem: 16GiB | 240GiB | 5000 | 20000 |
cpu: 8核, mem: 32GiB | 500GiB | 10000 | 20000 |
cpu: 16核, mem: 64GiB | 1000GiB | 20000 | 20000 |
容量評估:
整個分布式BE的集群在線查詢和數據更新能力評估:
集群的在線查詢QPS = 所選節點規格對應的在線QPS * 副本數;
集群的數據更新TPS = 所選節點規格對應的更新TPS * 分片數;
注意:以上評估數據為內部測試經驗,僅作參考;如需具體業務集群真實負載能力,需要自行壓測。
舉例參考:
某社交APP使用智能召回引擎BE進行陌生人社交查詢,用戶數據百萬級,用戶關系千萬級,整體數據存儲需100GB,線上流量QPS為20000,實時數據更新TPS為40000,查詢RT為10ms。
評估思路:
1)整個業務要求較高QPS和RT,一般建議選擇節點選擇【cpu: 4核, mem: 16GiB】,基本符合大部分業務使用;
2)存儲數據需要100GB,同時TPS達到40000,數據更新量較大,按照1個【cpu: 4核, mem: 16GiB】節點承載TPS為20000,需要對數據進行分片,從而提升集群的數據更新。選擇分片數為【2】。
3)【cpu: 4核, mem: 16GiB】節點承載QPS為5000,業務要求QPS為20000,副本數計算值=20000/5000,選擇副本數為【4】。
創建集群:
具體配置參考圖如下:
副本數
智能召回引擎BE支持多副本,保證集群升級/數據切換中服務可用性。副本數越多,BE集群提供在線服務能力的searcher越多,集群在線性能更高,同時購買價格也會越多,望您按需選擇。
分片數
智能召回引擎BE支持多分片,將海量數據索引進行hash分列,可以方便存儲到固定存儲的分片上。
具體的分片計算公式,如下:
分片數 = 存儲量GB / 每個分片規格的磁盤量 / 2;