電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>嵌入式開發(fā)>基于分布式數(shù)據(jù)庫或文件系統(tǒng)的高可用性的軟件架構設計方案

基于分布式數(shù)據(jù)庫或文件系統(tǒng)的高可用性的軟件架構設計方案

2017-10-27 | rar | 0.6 MB | 次下載 | 1積分

資料介紹

在業(yè)內(nèi),計算機應用系統(tǒng)的可用性定義為計算機應用系統(tǒng)保持正常運行時間的百分比,通常用表1所示的“9”的個數(shù)來劃分可用性的類型。
  基于分布式數(shù)據(jù)庫或文件系統(tǒng)的高可用性的軟件架構設計方案
  通常,硬件冗余(容錯計算機、雙機或多機集群、磁盤陣列、SAN等)、數(shù)據(jù)復制、合理的災難備份和恢復策略都可以極大地提高計算機應用系統(tǒng)的可用性。正因為如此,當前,對于計算機應用系統(tǒng)的高可用性、業(yè)務的可持續(xù)性要求,業(yè)內(nèi)通常以硬件系統(tǒng)的高可用性來應對或代替。常見的解決方案是雙機(或多機)集群方案或直接采用容錯計算機來保障系統(tǒng)的高可用性,應用軟件的設計和開發(fā)往往僅注重業(yè)務流程的分析和過程控制。在這種完全依賴硬件來保障整個系統(tǒng)的可用性的系統(tǒng)里,一旦關鍵硬件出現(xiàn)故障或數(shù)據(jù)庫宕機,正在進行中的業(yè)務流程(如需較長執(zhí)行時間的事務處理、后臺批處理過程等)必然會中斷,這是因為雙機切換也需要時間。對此,應用軟件本身并無多少作為,該類業(yè)務必須等待系統(tǒng)重新恢復后全部或部分重做。
  本文以基于大型數(shù)據(jù)庫的應用系統(tǒng)為例,從“軟件容錯”設計的概念出發(fā),參考“分布式”數(shù)據(jù)庫結構設計,以“系統(tǒng)服務總線”為核心,給出了一種可行的高可用性軟件架構的設計方案,可以極大地提高應用軟件的可用性和業(yè)務系統(tǒng)的可持續(xù)性。無論是傳統(tǒng)的C/S架構,還是近年來流行的B/S架構,本文中給出的設計方案都有一定的參考意義。
  1 軟件結構模型
  任何基于大型數(shù)據(jù)庫的應用系統(tǒng),都可以抽象為對數(shù)據(jù)的“讀”和“寫”操作。至于客戶端如何展現(xiàn)“讀”到的數(shù)據(jù),以及“客戶端”與“服務端”基于何種通信協(xié)議通信,不在本文討論之列。
  軟件結構的設計其實就是針對“讀”和“寫”的一系列流程的設計。如何最大限度地保證系統(tǒng)中的所有“硬件”和“軟件”協(xié)同工作,正確完成每一次“讀”和“寫”的操作,也就是對系統(tǒng)“高可靠性”和“高可用性”的要求。
  圖1是基于“軟件容錯”和“分布式數(shù)據(jù)庫系統(tǒng)”的原理,并參照了計算機“總線”的工作原理給出的一種基于分布式數(shù)據(jù)庫或文件系統(tǒng)的高可用性的軟件架構設計方案。系統(tǒng)采用3層架構:客戶端、中間應用層和數(shù)據(jù)庫層。
  基于分布式數(shù)據(jù)庫或文件系統(tǒng)的高可用性的軟件架構設計方案
  2 系統(tǒng)設計
  2.1 數(shù)據(jù)庫配置
  為了更清楚地闡述本文的設計方案,先對數(shù)據(jù)庫的配置及其功能進行描述。本系統(tǒng)中,數(shù)據(jù)庫按角色可劃分為如下三類數(shù)據(jù)庫:控制數(shù)據(jù)庫(COTROLL DB)、日志數(shù)據(jù)庫(LOG DB)、業(yè)務數(shù)據(jù)庫(BUS DB_N)。
  2.1.1 控制數(shù)據(jù)庫
  控制數(shù)據(jù)庫也可以是一個或多個系統(tǒng)控制(參數(shù))文件。它存放要訪問的目標數(shù)據(jù)庫的節(jié)點(N)、端口、用戶、文件頭、表、視圖等信息;存放對節(jié)點、業(yè)務數(shù)據(jù)庫、表或視圖的授權或訪問控制信息;目標數(shù)據(jù)庫(或文件)的當前狀態(tài)(聯(lián)機/脫機、忙/空閑等);目標數(shù)據(jù)庫中的表或視圖的當前狀態(tài)(聯(lián)機/脫機、忙/空閑、加鎖/解鎖等)。
  2.1.2 日志數(shù)據(jù)庫
  日志數(shù)據(jù)庫獨立于業(yè)務數(shù)據(jù)庫之外,用于記錄客戶端節(jié)點信息、請求時刻和發(fā)來的所有請求的原始內(nèi)容,但不做業(yè)務流程相關的處理、運算等。記錄每次數(shù)據(jù)操作分配的唯一的“事件號”(EVENT_ID)。對每一次客戶端的“請求”,“系統(tǒng)服務總線”(SYSSRV)會分配唯一的標識符號,可以定義為有一定意義的字符串,比如,“當前時刻+流水號”。以上信息可以被壓縮、打包、加密后存放,以記錄格式保存于數(shù)據(jù)庫的表或文件中。它可以設計為數(shù)據(jù)庫中的一個或多個表,也可以是文件格式。
  2.1.3 業(yè)務數(shù)據(jù)庫
  業(yè)務數(shù)據(jù)庫記錄所有業(yè)務相關的數(shù)據(jù)信息。所有業(yè)務數(shù)據(jù)庫的相關業(yè)務邏輯的數(shù)據(jù)結構相同,即,N個節(jié)點的業(yè)務數(shù)據(jù)庫中與業(yè)務模式相關的表、視圖、過程或其他程序設置相同。
  需要特別指出的是:
 ?。?)控制數(shù)據(jù)庫、日志數(shù)據(jù)庫和業(yè)務數(shù)據(jù)庫可以是不同數(shù)據(jù)庫廠家或品牌產(chǎn)品。比如,日志數(shù)據(jù)庫可以采用低端的數(shù)據(jù)庫產(chǎn)品或開源數(shù)據(jù)庫系統(tǒng),業(yè)務數(shù)據(jù)庫可以采用高端的大型數(shù)據(jù)庫產(chǎn)品。
  (2)控制數(shù)據(jù)庫、日志數(shù)據(jù)庫和業(yè)務數(shù)據(jù)庫在物理上和邏輯上是可以相互隔離的,這可以極大地提高系統(tǒng)的整體安全性。目標數(shù)據(jù)庫和要訪問的表或視圖對客戶端來說是“不可見”的,由控制數(shù)據(jù)庫動態(tài)定義和控制。
  (3)所有類別的數(shù)據(jù)庫在物理上位于一個或多個節(jié)點上,即節(jié)點N》=1;任意一個節(jié)點N上建有一個或多個業(yè)務數(shù)據(jù)庫(邏輯數(shù)據(jù)庫》=1);任意一個節(jié)點是一個完整的、可獨立工作的計算機。根據(jù)性能要求,可以是高性能PC機、PC服務器、小型機、集群或超級計算機,或是它們的“混合體”;任意一個節(jié)點是指定網(wǎng)絡中的一個指定節(jié)點。
  2.2 應用層設計
  中間應用層由5個后臺進程構成:(1)系統(tǒng)服務總線(SYSSRV);(2)數(shù)據(jù)庫寫進程(DBWRT_N);(3)數(shù)據(jù)庫讀進程(DBRED_N);(4)數(shù)據(jù)庫在線恢復進程(DBRCY);(5)日志檢查進程(LOGCHK)。
  2.2.1 系統(tǒng)服務總線
  這是一個后臺監(jiān)聽、分發(fā)、調(diào)度總進程。設計目標具有一定的“自我修復”和“自我復制”動能。它可以根據(jù)負載情況,自我復制或開啟子進程響應新的負載;可以動態(tài)配置可服務的節(jié)點或客戶端;可以為特定節(jié)點或客戶端指定專用進程;它通過“DBWRT”和“DBRED”“讀/寫”日志數(shù)據(jù)庫或日志文件。
  2.2.2 寫進程
  寫進程負責向所有節(jié)點寫數(shù)據(jù)。它可以配置成多進程/單進程模式;多進程模式,指對應每個業(yè)務數(shù)據(jù)庫N都有獨立的“寫”進程;單進程模式,指對應多個業(yè)務數(shù)據(jù)庫只有一個主進程,主進程開啟多個線程提供“寫”服務。
  2.2.3 讀進程
  讀進程負責向所有節(jié)點讀數(shù)據(jù),它可以配置成多進程/單進程模式。多進程模式指對應每個業(yè)務數(shù)據(jù)庫N都有獨立的“讀”進程,單進程模式指對應多個業(yè)務數(shù)據(jù)庫只有一個主進程,主進程開啟多個線程提供“讀”服務。
  根據(jù)需要,讀進程可以配置成:向所有在線節(jié)點并發(fā)讀數(shù)據(jù),返回最快的結果集,拋棄其他的結果集,并中斷其他讀進程;也可以配置成:隨機讀某個節(jié)點的數(shù)據(jù),如果失敗或超時,則再隨機讀余下的在線節(jié)點,直到“讀”成功或失?。贿€可以配置成向所有節(jié)點順序讀數(shù)據(jù),過程類似上面“隨機讀”。
  以上“讀寫”業(yè)務數(shù)據(jù)庫的進程,設計上支持多種數(shù)據(jù)庫訪問接口,針對“表”或“視圖”提供統(tǒng)一格式的、標準的、動態(tài)的SQL數(shù)據(jù)操作接口和方法,完成對數(shù)據(jù)庫中表或視圖的增、刪、改、查和批處理操作。它們可以設計為數(shù)據(jù)庫中的存儲過程,也可以是C++Java程序的API或混合體。
下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1TC358743XBG評估板參考手冊
  2. 1.36 MB  |  330次下載  |  免費
  3. 2開關電源基礎知識
  4. 5.73 MB  |  6次下載  |  免費
  5. 3100W短波放大電路圖
  6. 0.05 MB  |  4次下載  |  3 積分
  7. 4嵌入式linux-聊天程序設計
  8. 0.60 MB  |  3次下載  |  免費
  9. 5基于FPGA的光纖通信系統(tǒng)的設計與實現(xiàn)
  10. 0.61 MB  |  2次下載  |  免費
  11. 6基于FPGA的C8051F單片機開發(fā)板設計
  12. 0.70 MB  |  2次下載  |  免費
  13. 751單片機窗簾控制器仿真程序
  14. 1.93 MB  |  2次下載  |  免費
  15. 8基于51單片機的RGB調(diào)色燈程序仿真
  16. 0.86 MB  |  2次下載  |  免費

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費
  3. 2555集成電路應用800例(新編版)
  4. 0.00 MB  |  33564次下載  |  免費
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費
  7. 4開關電源設計實例指南
  8. 未知  |  21548次下載  |  免費
  9. 5電氣工程師手冊免費下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費
  11. 6數(shù)字電路基礎pdf(下載)
  12. 未知  |  13750次下載  |  免費
  13. 7電子制作實例集錦 下載
  14. 未知  |  8113次下載  |  免費
  15. 8《LED驅動電路設計》 溫德爾著
  16. 0.00 MB  |  6653次下載  |  免費

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費
  3. 2protel99se軟件下載(可英文版轉中文版)
  4. 78.1 MB  |  537796次下載  |  免費
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420026次下載  |  免費
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費
  11. 6電路仿真軟件multisim 10.0免費下載
  12. 340992  |  191185次下載  |  免費
  13. 7十天學會AVR單片機與C語言視頻教程 下載
  14. 158M  |  183278次下載  |  免費
  15. 8proe5.0野火版下載(中文版免費下載)
  16. 未知  |  138040次下載  |  免費