一、概述
1、什麼是cache伺服器
cache伺服器是新**系統中的乙個部件,對遠端的客戶端提供**資料服務,對客戶端來說所實現的功能和轉碼伺服器一致。
那麼既然cache伺服器實現和轉碼伺服器一致的功能,為什麼又要在**系統中提供這個部件呢?那是因為cache伺服器有乙個最大的特點,就是本地不需要有任何資料就可以進行服務,可以很好的迎合券商運營的零維護、低成本維護的要求,而這一點轉碼伺服器是無法做到的。
注:cache伺服器很多模組與轉碼伺服器類似,並且共用兩個lib,此文件僅描述與轉碼伺服器有區別的模組。
2、cache伺服器的部署
轉碼伺服器接入**傳輸系統獲得**資料,並由此生成歷史資料,而由於cache伺服器本地沒有任何資料,無法通過**傳輸系統獲得歷史資料提供服務,所以cache伺服器需要接入轉碼伺服器或者cache伺服器以獲得服務所需要的歷史資料。
3、cache伺服器的內部構架
如上圖所示,cache伺服器由接入層、資料轉碼層和服務層構成。
模組說明
接入層向接入的上層**系統請求伺服器工作所必須的基本資料,包括市場資訊、靜態資料、動態資料等等。
當前上層**系統無法完成指定的服務時,自動切換到穩定乙個穩定的**系統。
當資料轉碼層無法向服務層提供完整的資料時,向接入的上層**系統請求所需資料。
資料轉碼層補齊本地歷史資料時,向接入的上層**系統請求所需資料。
接受上層**系統推送動態資料更新資料轉碼層的實時資料。
資料轉碼層
向服務層提供實時、歷史資料,如果當前資料不能滿足需要則通過接入層向上層**系統請求資料。
每天通過接入層和上層**系統同步歷史資料。
服務層通過下層的平台對客戶端進行服務,通過轉碼層獲得所需的實時、歷史資料。
快取部分歷史資料。
和轉碼伺服器的這部分模組(完全)相同。
二、接入層
cache伺服器的接入層實際上與**轉碼伺服器的驅動層功能類似,都是向資料轉碼層提供統一的介面請求和推送資料。
接入層內部的實現是採用tcp/ip連線的方式向轉碼伺服器取資料,為了更好的利用頻寬,需要同時維護乙個推送通道和若干個請求通道。請求和推送通道使用不同的埠,以便區分。
推送通道會一直傳送心跳包維持和檢測鏈路,一旦發現鏈路無法聯通,或**中指定時間沒有推送資料到達,則認為此服務連線已不可用。這時候如果配置了多個伺服器,則切換連線。切換連線成功後,資料層暫停服務,開始初始化資料,初始化完成再提供服務。
如圖所示:
每個請求/推送通道,都由enginelib的msyncclientcomm類派生。
推送通道
請求通道
接入層介面
三、cache伺服器狀態邏輯
1.概述
cache伺服器的狀態變化並不是通過時間判斷,而是由其所連線的轉碼伺服器狀態決定。轉碼伺服器會把自身狀態通過市場狀態包推送到cache伺服器。
如圖所示:
cache伺服器根據市場推送包的狀態變化改變服務狀態。由processio的執行緒判斷服務狀態,進行初始化、**等工作。
2.初始化邏輯
cache伺服器的實時資料不儲存本地檔案,而是初始化時全部從轉碼伺服器請求。
四.歷史資料補齊與校驗
cache伺服器的**不是從本地資料生成歷史檔案,而是從轉碼伺服器請求。
如圖:客戶端請求歷史資料時,cache伺服器判斷本地檔案校驗碼與上層伺服器是否一致,如果不一致,則刪除本地檔案,把上層伺服器檔案同步到本地。
如圖:
總體設計是建模
工作都快兩年了 對軟體開發流程才開始有點認識 先談談對軟體總體設計的理解.所謂總體設計 是在對目標系統的理解 分析的基礎上 對系統進行抽象 建模的過程 這個過程是非常重要的 可以說是系統設計階段 這個模型描述了目標系統的功能的大體是如何完成的 說明了系統內部的模組是如何劃分的 以及它們又是如何聯絡在...
什麼是展覽的總體設計
展覽的總體設計,是展覽的設計與實施的主導,是根據展覽展出方案主題結合展館的情況,從總體的布局上對展出形式 展覽效果 色彩 風格和展覽的宣傳等進行總體形象的構思設計,將不同的展品進行統一的組織安排,使之成為有機聯絡的整體,同時使展出者和參觀者有著合理的工作和活動空間。總體設計的內容 總體設計包括展覽會...
TypeSDK總體設計思路和架構
引言 本文旨在提供讀者製作乙個自己的聚合sdk的思路,拋磚引玉,讓更多的讀者對聚合sdk有好的理解。這是最好的時代,這是最壞的時代,這是智慧型的時代,這是愚蠢的時代 這是信仰的時期,這是懷疑的時期 這是光明的季節,這是黑暗的季節 這是希望之春,這是失望之冬 人們面前有著各樣事物,人們面前一無所有 人...