1 SET解決什麼問題?
1.1 容災問題
核心服務掛掉、數據庫主庫集中在一個IDC、
1.2 資源擴展問題
單個IDC擴展有限(如機房滿載、帶寬不足),跨機房、異地擴展IDC又會出現跨機房造成的延遲問題
數據單主情況,連接數有限,不支持應用無限擴展
1.3 大集羣拆分問題
分佈式集羣規模巨大會帶來響應的資源擴展、大集羣拆分、容災問題
處於業務角度考慮,會出現容災、異地需求,底層無法實現
單元化架構應運而生
2 SET化方案演進
2.1 同城雙活,存儲、mq、緩存、定時任務異地主從架構,跨機房寫入;一個數據中心異常,可手動切換;
2.2 兩地三中心
同城雙活基礎上,在異地部署數據中心,只有災難級故障才啓用(異地冷備)
冷備不敢切、浪費資源、本質仍然是單點、資源,容災,擴展問題依然未解決
2.3 SET化 流量路由到中心集羣還是單元集羣
Route By UserId
3 SET化架構
3.1 單元化集羣,每個集羣都可以獨立處理單元內的流量,實現流量拆分、故障隔離
3.2 每個單元只存儲本集羣的數據;後續做數據雙向同步,實現容災切換需求
3.3 中心集羣:未進行單元化改造的服務,通常爲非核心服務
3.4 SET化策略:
中間件:MQ、RPC、KV等
RPC---對SET服務封閉調用,對非SET服務調用中心集羣
MQ、KV---支持分SET的生產、查詢、消費
數據同步:
全量數據:對數據量小的數據部署中心集羣,其他數據路由到單元集羣
未來規劃:對各個單元的數據,需要互相同步,完成容災需求
SET化能力:
流量調度
容災
高效本地化服務:
根據前端的信息,ip,屬地、流量路由到最近的SET
O2O場景更需要高效的本地化服務能力
集裝箱式部署:
SET一鍵創建、發佈
4 SET化架構原則是什麼:
4.1 對業務系統透明 業務不需要關心SET的規則,部署問題
4.2 切分原則:切分由業務層面按需切分、優先選最大的業務維度切分、海量O2O用戶按屬地就近切分、單個SET不侷限與單個機房,但集羣不宜過大