分佈式系統之平臺三大支柱

 在《分佈式系統之平臺十大系統》中,主要提到10大系統,但是並沒有提到介於架構和平臺間的三個核心類作用的系統,本篇文章主要概述這三個系統的構思設計以及功能效用。從前向後看,首先接觸的是“服務網關”,它的主要作用是權限控制和防止腳本攻擊,當下以及今後都會規範爲“面向服務編程”,即服務方提供API,請求方只有具備API訪問權限纔可以繼續,所有請求方-服務方模式都遵從此約定,這也就將權限控制等具有共性的功能抽象提煉出來,形成獨立”服務網關“系統,從而服務網關係統可以爲所管轄的任何服務方提供安全保障。當產品架構過於龐大、複雜時,難免會遇到分佈式事務的難題,針對分佈式事務難題,沒有像關係型數據庫那樣的事務保障,已成實踐標準的是兩次提交-保證最終結果一致性的方法,即首先記錄請求信息到本地數據庫,倘若執行完畢沒有問題就結束,如果出現問題,則按照配置方案,執行自動回滾邏輯,此時執行成功也將結束,否則上報雲端進行人工處理。最後遇到的是數據存儲與計算問題,當然現在有NoSQL、大數據Hadoop等,但是他們替代不了關係型數據庫,關係型數據庫依然盤踞核心地位,所以如何在出現I/O瓶頸前,解決數據讀寫緩慢的問題要有準備方案,這裏主要包含兩大重點,一是實現數據的讀寫分離,二是實現只讀庫構建與同步數據問題,第二項有現成的解決方案,第一項也有現成的解決方案,但是極少有單位會把這種價值含量較高技術免費分享出來,所以自己動手才能豐衣足食。接下來的內容將是對三大支柱的設計,如下:

1.服務網關
1.1.權限管理器:Token令牌、通用權限、IP拒絕名單、ID拒絕名單
1.2.數據覈查器:JS腳本攻擊、SQL注入
1.3.併發控制器:超出服務上限,隨機拒絕請求
1.4.服務調度器:定時查詢可用服務、單服務請求失敗重試次數、多服務請求失敗重試個數
2.分佈式事務執行器
2.1.本地管理器
2.1.1.正常:註冊執行邏輯
2.1.2.失敗:失敗自動撤銷
2.1.3.撤銷:失敗上報雲端
2.1.4.雲端:接受銷燬記錄
2.1.5.管控:
2.1.5.1.期間內失敗次數達上線:停止服務,消息報告
2.1.5.2.期間內撤銷失敗達上線:停止服務,消息報告
2.2.雲端管理器
2.2.1.失敗請求管理
2.2.2.失敗請求恢復
3.讀寫分離器與多庫備份器
3.1.讀寫分離器
3.1.1.程序設計讀寫分離項目
3.1.2.依據記錄同步完成時間設計讀寫分離
3.1.3.依據同步時間拆分查詢時間分庫執行
3.1.4.依據查詢結果彙總數據集並輸出
3.2.多庫備份器
3.2.1.程序設計讀寫分離項目
3.2.2.將增刪改腳本記錄備份庫
3.2.3.備份庫管理只讀庫與最新執行時間
3.2.4.同步執行器,依據最新執行時間讀取未執行腳本於只讀庫執行
3.2.5.只讀庫管理器,管理只讀庫與其狀態
3.2.6.腳本記錄管理器,維護腳本記錄

 

綜上所見,服務網關是面向服務編程的必需品,分佈式事務與數據庫讀寫分離則是做強做大後的事情,因爲不必擔心一下子要做的事情太多,循序漸進即可。十大系統+三大支柱,技術平臺就是這麼簡單。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章