1. 程式人生 > 其它 >分散式系統之平臺三大支柱

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

在《分散式系統之平臺十大系統》中,主要提到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.指令碼記錄管理器,維護指令碼記錄

綜上所見,服務閘道器是面向服務程式設計的必需品,分散式事務與資料庫讀寫分離則是做強做大後的事情,因為不必擔心一下子要做的事情太多,循序漸進即可。十大系統+三大支柱,技術平臺就是這麼簡單。