大并發量訪問架構分析

MarcelR08 8年前發布 | 25K 次閱讀 并發 軟件架構

一、系統并發訪問量的等級

信息系統基本模型是:C/S 結構,即“客戶”與“服務器”的結構形式。任何信息

系統結構(無論是 B/S ,B/S/S,C/S/S)都可以抽象為簡單的 C/S 結構。

圖,客戶服務器結構信息系統

當大量“客戶”同時訪問一個“服務器”時,“服務器”面臨的是大并發訪問的技 術和架構問題。大并發訪問的等級可以分為“超出連接”、“超出時限”和“超出應用 負載”三種。

1.1超出連接

圖,訪問請求超出連接容量

當客戶的連接超出數據庫的連接數或并發處理能力,當時沒有超出服務器的瞬間處

理能力,可以采用“訪問隊列”進行排隊。提高用戶體驗。

比如,數據庫的并行處理是 10 訪問請求,“瞬間處理能力”為 2 秒中內處理 1000

個請求。當最大并發客戶訪問請求是 1000 個,如果不加隊列,將有 1000-10=990 個客 戶請求失敗。如果應用“訪問隊列”,在不到 2 秒的瞬間,數據庫處理完畢這 1000 個

訪問請求。全部客戶體驗良好。

圖,訪問隊列管理服務結構

所以,當并發量超出并發處理能力,而在瞬間處理范圍內時,“訪問隊列服務”是

有效的方法。

1.2超出時限

同樣是并行處理能力是 10 個訪問,2 秒可以處理 1000 個請求,當最大并發客戶訪

問請求是 10000 個時,會出現等待 10 秒到 20 秒的請求。設客戶端可以容許的超時為 4

秒。則需要新的手段提高服務器的瞬間處理能力。

圖,應用服務結構

由于數據庫系統的并行處理能力比較低,相同的運算在數據庫系統中比在操作系統 中要慢。所以將可以分離出的運算程序由數據庫移出,在“訪問隊列服務”層執行,將

會大大提供整個服務器的處理能力。

承擔了訪問隊列管理和一部分業務運算功能的中間服務,稱為“應用服務”。

1.3超出應用負載

如果承擔了大量的業務運算功能的“應用服務”的處理能力成為系統效率的瓶頸,

即隊列壓力超出“應用服務”的處理能力,則需要將“應用服務”進行擴展。

圖,應用服務擴展

擴展的方法是在不同的設備上同時啟動應用服務,形成一個“應用服務群”,多個 服務分擔業務處理請求,并保證每個“應用服務”有充足的系統資源。

二、應用服務器架構分析 ----- ISFRAME DA

數據訪問中間件 DA(Data Access)系統架構中間件 ISFRAME 的一部分。DA 主要解

決業務訪問的技術問題和邏輯控制。

2.1 ISFRAME DA架構:結構清晰,易于開發和維護

圖,ISFRAME DA 應用服務器架構

ISFRAME DA 架構依次為訪問請求、負載均衡器、應用服務群組、被訪問資源。

訪問請求包括來自于“終端程序”和來自于“其它應用服務器”的訪問請求。

“負載均衡器”將訪問請求分配給較空閑的“DA 服務”。

“DA 服務”既包含“訪問隊列管理”,又包含了業務操作。多個“DA 服務”構成

應用服務群組。

“DA 服務”訪問“被訪問資源”,“被訪問資源”包括“本地數據”和“其它應

用服務器”

2.2 ISFRAME DA的隊列管理:入隊列訪問排隊,出隊列面向資源

DA 應用服務器接收來自客戶終端和其它應用服務器的訪問請求,并發起對本地數

據資源和其他應用服務器的訪問,管理“入”和“出”兩種隊列。

2.3 ISFRAME DA的應用掛載:直接執行多種程序,避免數據庫接口開發,

方便業務功能擴展和升級

DA 服務中可以通過定義的方式,將業務操作“掛載”到 DA 服務上。DA 服務可以

執行動態庫函數、存儲過程、可執行程序、全程指令多種操作。且定義簡單,減少了程

序編寫。

DA 的應用程序掛載功能,方便業務系統的功能擴展和修改。

2.4 ISFRAME DA的負載均衡:負載均衡,應用服務動態擴展

DA 的負載均衡功能使“DA 服務”可以動態增、減等擴展。

2.5 ISFRAME DA多點協同作業:跨節點協作,實現系統的整體功能,使

系統高效、靈活

DA 應用服務器可以接收其他服務器的指令,并可以向其它服務器發送指令。該功

能完成 S/S 的訪問和協同作業。多個服務器聯合完成一個客戶端的指令。

ISFRAME DA 是訪問管理的高效中間件,接口簡單,應用方便,減少編程開發。很少

的投入,就可以迅速構建起復雜的業務系統。

文章標簽: 架構

關注微信公眾號“架構說”,加入Q群微群,讓架構師帶你飛︿( ̄︶ ̄)︿。

原文鏈接: 閱讀原文 免責申明: 架構說任何轉載的文章都會明確標注原文鏈接。如有侵權,請與本站聯系。 轉載說明: 架構說原創文章轉載時請務必注明文章作者、鏈接和來源。

 

來自:http://www.jiagoushuo.com/article/1000466.html

 

 本文由用戶 MarcelR08 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!