周明晰
摘要:為了滿足電務(wù)大數(shù)據(jù)智能運(yùn)維平臺在數(shù)據(jù)實(shí)時(shí)性、全面性、設(shè)備狀態(tài)健康診斷等方面的要求,需要將大數(shù)據(jù)技術(shù)應(yīng)用到ZPW-2000R軌道電路運(yùn)維平臺。
關(guān)鍵詞:大數(shù)據(jù);運(yùn)維平臺;ZPW-2000R軌道電路
一、概述
目前,ZPW-2000R遠(yuǎn)程服務(wù)平臺無法滿足哈局電務(wù)大數(shù)據(jù)智能運(yùn)維平臺在數(shù)據(jù)實(shí)時(shí)性、全面性、設(shè)備狀態(tài)健康診斷等方面的要求。需要在ZPW-2000R遠(yuǎn)程服務(wù)平臺的基礎(chǔ)上,開發(fā)ZPW-2000R大數(shù)據(jù)運(yùn)維平臺,實(shí)現(xiàn)ZPW-2000R軌道電路設(shè)備的實(shí)時(shí)監(jiān)測、運(yùn)用狀態(tài)健康診斷、故障處理流程管理等功能。
二、需求分析
通過與現(xiàn)場客戶的溝通,ZPW-2000R大數(shù)據(jù)運(yùn)維平臺需要實(shí)現(xiàn)的需求包括:與車站系統(tǒng)維護(hù)終端進(jìn)行數(shù)據(jù)交互,獲取各車站ZPW-2000R軌道電路設(shè)備監(jiān)測數(shù)據(jù);設(shè)備數(shù)據(jù)實(shí)時(shí)監(jiān)測;設(shè)備狀態(tài)健康診斷;篩選、排序、統(tǒng)計(jì)、匯總;故障處理作業(yè)流程管理;天窗設(shè)置管理;調(diào)試開通管理;返修設(shè)備記錄管理;通過短信、釘釘、微信等形式推送故障信息;向SAP系統(tǒng)發(fā)送返修設(shè)備基礎(chǔ)數(shù)據(jù)。
三、系統(tǒng)功能
ZPW-2000R大數(shù)據(jù)運(yùn)維平臺主要分成六個(gè)大模塊,功能應(yīng)用層、接口應(yīng)用層、數(shù)據(jù)處理平臺、站點(diǎn)數(shù)據(jù)解析模塊、基礎(chǔ)設(shè)施層以及其他應(yīng)用系統(tǒng)對接。系統(tǒng)架構(gòu)如圖1所示。
四、系統(tǒng)設(shè)計(jì)
ZPW-2000R大數(shù)據(jù)運(yùn)維平臺基本的技術(shù)方案架構(gòu)如圖2所示。
1、Web前端
Web頁面類型分為:靜態(tài)頁面,動態(tài)頁面。靜態(tài)頁面對I/O要求比較高;動態(tài)頁面對內(nèi)存、CPU等要求比較高。因此靜態(tài)頁面與動態(tài)頁面分開部署在具有針對性的服務(wù)器上以提高性能。
2、Web服務(wù)器
Web服務(wù)器分為靜態(tài)Web服務(wù)器,動態(tài)Web服務(wù)器。其中當(dāng)客戶訪問靜態(tài)頁面的時(shí)候,僅訪問靜態(tài)web服務(wù)器,靜態(tài)Web服務(wù)器根據(jù)需要從文件服務(wù)器上提取所必須的css,js,圖片等文件;而當(dāng)用戶訪問動態(tài)頁面時(shí),動態(tài)Web服務(wù)器根據(jù)需要先去緩存服務(wù)器上檢查是否有需要的數(shù)據(jù),如果有,則直接從緩存服務(wù)器中取,否則從數(shù)據(jù)庫中取相應(yīng)的數(shù)據(jù)(以此來達(dá)到部分分流效果),同時(shí)添加到緩存服務(wù)器上根據(jù)需要從文件服務(wù)器上提取所必須的css,js,圖片等文件。
為了讓多臺服務(wù)器更好的協(xié)同工作,添加多臺服務(wù)器達(dá)到分擔(dān)負(fù)荷的作用,利用網(wǎng)絡(luò)負(fù)載平衡器把這些服務(wù)器群集起來。動態(tài)服務(wù)業(yè)可以按照這樣的均衡方式達(dá)到提高性能與擴(kuò)展的效果。通過Nginx的負(fù)載均衡機(jī)制,將訪問請求均衡的分配到集群的各個(gè)服務(wù)器上。
3、數(shù)據(jù)庫系統(tǒng)
影響動態(tài)服務(wù)性能關(guān)鍵在于數(shù)據(jù)庫能否及時(shí)響應(yīng)。各個(gè)動態(tài)應(yīng)用規(guī)模越大,響應(yīng)的數(shù)據(jù)庫就越臃腫,響應(yīng)的速度就越慢。
數(shù)據(jù)庫系統(tǒng)綜合使用讀寫分離、縱向分割、橫向分割等三種方法實(shí)現(xiàn)數(shù)據(jù)庫負(fù)載均衡。
1)讀寫分離。由于讀多寫少,大部分時(shí)間消耗在查詢上,因此讓主庫專門用于寫,從庫專門用于讀(讀庫可以有很多個(gè),以減輕單個(gè)讀庫的負(fù)擔(dān)),同時(shí)同步寫庫與讀庫的數(shù)據(jù);
2)縱向分割。不同的應(yīng)用可以分到不同的DB中,不同的實(shí)例中。這種發(fā)放不但效率高,實(shí)施也很方便。
3)橫向分割。采用表分區(qū)把大表分成小表,數(shù)據(jù)存儲在不同文件上,然后再部署到獨(dú)立物理服務(wù)器增加IO吞吐以改善讀寫性能,表分區(qū)的另外一個(gè)優(yōu)勢可以增加數(shù)據(jù)查詢速度。
采用分布式數(shù)據(jù)庫集群的中間件,如mycat,性能良好,易于擴(kuò)展,同時(shí)監(jiān)控的更加全面。
緩存系統(tǒng)采用業(yè)內(nèi)主流的Memcache。Memcached是開源的分布式cache系統(tǒng)。Memcached的緩存是一種分布式的,可以讓不同主機(jī)上的多個(gè)用戶同時(shí)訪問, 因此解決了共享內(nèi)存只能單機(jī)應(yīng)用的局限,更不會出現(xiàn)使用數(shù)據(jù)庫做類似事情的時(shí)候,磁盤開銷和阻塞的發(fā)生。
服務(wù)器端使用CentOS Linux系統(tǒng),作為主流的服務(wù)器操作系統(tǒng)其穩(wěn)定性、實(shí)用性、適應(yīng)性、硬件資源利用率等方面均得到國內(nèi)外普遍認(rèn)可和采用。
數(shù)據(jù)庫分別使用MongoDB和Redis。MongoDB作為設(shè)備數(shù)據(jù)存儲,為WEB應(yīng)用提供可擴(kuò)展的高性能數(shù)據(jù)存儲解決方案。MongoDB是一個(gè)介于關(guān)系數(shù)據(jù)庫和非關(guān)系數(shù)據(jù)庫之間的產(chǎn)品,是非關(guān)系數(shù)據(jù)庫當(dāng)中功能最豐富,最像關(guān)系數(shù)據(jù)庫的。它支持的數(shù)據(jù)結(jié)構(gòu)非常松散,是類似json的bson格式,因此可以存儲比較復(fù)雜的數(shù)據(jù)類型。Mongo最大的特點(diǎn)是它支持的查詢語言非常強(qiáng)大,其語法有點(diǎn)類似于面向?qū)ο蟮牟樵冋Z言,幾乎可以實(shí)現(xiàn)類似關(guān)系數(shù)據(jù)庫單表查詢的絕大部分功能,而且還支持對數(shù)據(jù)建立索引。而且它的路線圖中已經(jīng)包含對MapReduce引擎的內(nèi)置支持。Redis用作數(shù)據(jù)庫、高速緩存和消息隊(duì)列代理。它支持字符串、哈希表、列表、集合、有序集合,位圖,hyperloglogs等數(shù)據(jù)類型。內(nèi)置復(fù)制、Lua腳本、LRU收回、事務(wù)以及不同級別磁盤持久化功能,同時(shí)通過Redis Sentinel提供高可用,通過Redis Cluster提供自動分區(qū)。支持很強(qiáng)的性能和并發(fā)性。
五、結(jié)束語
本文研究了ZPW-2000R大數(shù)據(jù)運(yùn)維平臺的一種實(shí)現(xiàn)方案,討論了平臺的系統(tǒng)架構(gòu)、功能和使用的技術(shù),為ZPW-2000R大數(shù)據(jù)運(yùn)維平臺的開發(fā)提供參考。
參考文獻(xiàn)
[1] 蔣志文 大數(shù)據(jù)分析技術(shù)在數(shù)據(jù)中心運(yùn)維中的應(yīng)用 信息與電腦(理論版). 2018,(15)