一種基于大數(shù)據(jù)的智能交通平臺數(shù)據(jù)集成方法
【專利摘要】一種基于大數(shù)據(jù)的智能交通平臺數(shù)據(jù)集成方法,該方法將數(shù)據(jù)集成層部署在網(wǎng)絡層和應用層之間;實現(xiàn)集成平臺與子系統(tǒng)之間數(shù)據(jù)轉(zhuǎn)發(fā)、數(shù)據(jù)暫存、數(shù)據(jù)轉(zhuǎn)儲功能;通過連接池形式提供生產(chǎn)者和消費者連接;引擎采用服務器集群提供數(shù)據(jù)服務,集群中有新服務器加入能夠自動注冊并上線運行,有服務器故障會通知客戶端并清理連接池;引擎能夠提供數(shù)據(jù)轉(zhuǎn)發(fā),數(shù)據(jù)被持久化為標準化流;生產(chǎn)者向引擎推送數(shù)據(jù);消費者是主動拉取引擎上數(shù)據(jù)專題內(nèi)容。本發(fā)明提供給智能交通子系統(tǒng)統(tǒng)一的數(shù)據(jù)接入服務,能夠支撐大規(guī)模數(shù)據(jù)不間斷穩(wěn)定傳輸。自身轉(zhuǎn)發(fā)效率高,能夠提供實時數(shù)據(jù)轉(zhuǎn)發(fā)和歷史數(shù)據(jù)暫儲功能,實現(xiàn)對智能交通大數(shù)據(jù)分析、處理的支撐。
【專利說明】一種基于大數(shù)據(jù)的智能交通平臺數(shù)據(jù)集成方法
【技術領域】
[0001]本發(fā)明涉及一種基于大數(shù)據(jù)的智能交通平臺數(shù)據(jù)集成引擎設計和實現(xiàn),它根據(jù)智能交通平臺與子系統(tǒng)之間數(shù)據(jù)交換類型和交換方式,提出一種新型數(shù)據(jù)采集、存儲、交互的應用服務集群構建方法,屬于智能交通大數(shù)據(jù)應用領域。
【背景技術】
[0002]智能交通集成平臺作為城市交通管理的中心:它以警用地理信息系統(tǒng)為依托,綜合治安卡口、電子警察、視頻監(jiān)控、交通信號控制、警車警員GPS、交通流檢測、交通設備設施管理、交通信息發(fā)布等多個子系統(tǒng)功能為一體。
[0003]目前國內(nèi)廠家在做子系統(tǒng)集成時候大多會按照每個子系統(tǒng)數(shù)據(jù)類型將數(shù)據(jù)劃分為以下幾種:結構化數(shù)據(jù)(關系型數(shù)據(jù)庫表結構數(shù)據(jù))、非結構化數(shù)據(jù)(圖片、音頻、視頻、文本等)、空間數(shù)據(jù)(地理信息數(shù)據(jù)等)。
[0004]傳統(tǒng)劃分數(shù)據(jù)類型帶來的結果是:集成平臺數(shù)據(jù)接入方法會與子系統(tǒng)數(shù)據(jù)類型強相關,必然在做數(shù)據(jù)接入服務時候會依據(jù)不同類型數(shù)據(jù),考慮不同接入方法甚至是不同的軟件架構。
[0005]智能交通集成平臺所面對的數(shù)據(jù)符合大數(shù)據(jù)的特點:數(shù)量大、有用的信息少。所以采用大數(shù)據(jù)技術來處理交通海量數(shù)據(jù)成了此類應用的新需求。
【發(fā)明內(nèi)容】
[0006]本發(fā)明所要解決的技術問題是針對現(xiàn)有技術的不足,提出一種基于大數(shù)據(jù)的智能交通平臺數(shù)據(jù)集成方法。該方法設計合理,采用統(tǒng)一的系統(tǒng)架構對數(shù)據(jù)接入流程進行重新設計和優(yōu)化,提供了一個具有高穩(wěn)定性、高吞吐的數(shù)據(jù)接入、存儲、轉(zhuǎn)發(fā)層。
[0007]本發(fā)明所要解決的技術問題是通過以下的技術方案來實現(xiàn)的。本發(fā)明是一種基于大數(shù)據(jù)的智能交通平臺數(shù)據(jù)集成方法,其特點是:該方法將數(shù)據(jù)集成層部署在網(wǎng)絡層和應用層之間;實現(xiàn)集成平臺與子系統(tǒng)之間數(shù)據(jù)轉(zhuǎn)發(fā)、數(shù)據(jù)暫存、數(shù)據(jù)轉(zhuǎn)儲功能;能夠支持大數(shù)據(jù)應用;通過連接池形式提供生產(chǎn)者和消費者連接;引擎采用服務器集群提供數(shù)據(jù)服務,集群中有新服務器加入能夠自動注冊并上線運行,有服務器故障會通知客戶端并清理連接池;引擎能夠提供數(shù)據(jù)轉(zhuǎn)發(fā),數(shù)據(jù)持久化,向Hdfs文件存儲系統(tǒng)轉(zhuǎn)儲;數(shù)據(jù)被持久化為標準化流,保存到FIFO文件隊列,同時在內(nèi)存中維持一張文件頭索引表;生產(chǎn)者向引擎推送數(shù)據(jù),并發(fā)布數(shù)據(jù)專題;消費者是主動拉取引擎上數(shù)據(jù)專題內(nèi)容,并自己記錄已經(jīng)拉取的數(shù)據(jù)位置;引擎向消費者發(fā)送其請求的數(shù)據(jù)時,采用零拷貝方法;據(jù)專題作為消費者識別數(shù)據(jù)類型的依據(jù);數(shù)據(jù)專題可以和多個段文件進行關聯(lián),實現(xiàn)專題數(shù)據(jù)內(nèi)容的橫向擴展;每個段文件在多臺服務器上有復本,從而保證數(shù)據(jù)文件安全。
[0008]本發(fā)明所要解決的技術問題還可以通過以下的技術方案來進一步實現(xiàn)。本發(fā)明所述的方法,其特點是:段文件多個文件復本所在服務器被劃分為Master和Slave兩類角色,Master負責數(shù)據(jù)寫操作、轉(zhuǎn)發(fā)讀操作、通知Slave進行數(shù)據(jù)同步;Slave負責轉(zhuǎn)發(fā)寫操作、與Master同步、提供讀取服務;Master是從Slave中選舉出來,在集群發(fā)現(xiàn)Master不能提供正常服務后會發(fā)起選舉,Slave的數(shù)量必須滿足2*n+l才能保證選舉成功,選舉采用fastpaxos算法。
[0009]本發(fā)明所要解決的技術問題還可以通過以下的技術方案來進一步實現(xiàn)。本發(fā)明所述的方法,其特點是:該方法基于大數(shù)據(jù)的存儲系統(tǒng)來設計數(shù)據(jù)接入層;從集成平臺接入層就對數(shù)據(jù)進行了分類,實時數(shù)據(jù)直接分發(fā)到集成平臺客戶端顯示;歷史消費的數(shù)據(jù)由支持大數(shù)據(jù)處理的文件存儲系統(tǒng)來存取,需要進一步處理的數(shù)據(jù)采用大數(shù)據(jù)處理方法,將數(shù)據(jù)按需轉(zhuǎn)換到不同的數(shù)據(jù)倉庫中供集成平臺調(diào)?。粺o需處理的數(shù)據(jù)直接按照原始的數(shù)據(jù)格式進行留存。
[0010]本發(fā)明所要解決的技術問題還可以通過以下的技術方案來進一步實現(xiàn)。本發(fā)明所述的方法,其特點是:數(shù)據(jù)存儲轉(zhuǎn)發(fā)引擎生產(chǎn)數(shù)據(jù)處理流程如下:
(1)引擎獲取生產(chǎn)者連接,接收生產(chǎn)者發(fā)送的數(shù)據(jù)到臨時隊列。引擎會根據(jù)配置文件中設置的數(shù)據(jù)緩存長度或者緩存時長,檢查接收到的數(shù)據(jù)量,達到配置文件要求時,會執(zhí)行數(shù)據(jù)持久化操作;
(2)由于數(shù)據(jù)持久化是通過Master來完成,所以數(shù)據(jù)在持久化到段文件之前,弓丨擎會判斷該段文件所在的Master是否正常,如果正常則進行下一步寫入段文件操作;則轉(zhuǎn)入Master選舉流程;
(3)Master選舉流程選用fastpaxos算法,該算法對參與選舉的服務器數(shù)要求必須是2*n+l個;選舉是由當前寫入服務器發(fā)起,并由其統(tǒng)計每個Slave得票數(shù),其他的Slave服務器負責投票,直到Master產(chǎn)生;
(4)Master產(chǎn)生后將負責把文件寫入到段文件中,根據(jù)生產(chǎn)者要求將段文件關聯(lián)到指定專題,同時在內(nèi)存索引表中添加該段文件地址索引項;
(5)結束數(shù)據(jù)上傳流程,并發(fā)布到專題,供消費者拉取消費。
[0011]本發(fā)明所要解決的技術問題還可以通過以下的技術方案來進一步實現(xiàn)。本發(fā)明所述的方法,其特點是:數(shù)據(jù)存儲轉(zhuǎn)發(fā)引擎消費數(shù)據(jù)處理流程如下:
(1)引擎獲取消費者連接,接收消費者拉取數(shù)據(jù)的請求;該請求中包括消費者要消費的專題項信息、段文件起始地址、內(nèi)部數(shù)據(jù)偏移量等;
(2)引擎從頁面緩存中直接將數(shù)據(jù)轉(zhuǎn)遞到socket緩存,發(fā)送給消費者;
(3)段文件中的每條數(shù)據(jù)都會有一個遞增的唯一ID標識;Slave服務器會定期向Master發(fā)送最大標識ID,詢問Master是否需要同步數(shù)據(jù),Master收到標識后會給出應答,同步采用增量同步方式,每次同步的增量Master在應答中會告知Slave, Slave收到后就啟動同步線程,執(zhí)行同步;
(4)每次消費者拉取的數(shù)據(jù)多少,引擎端不做任何的記錄;需要消費者在本地記錄已經(jīng)讀取的數(shù)據(jù)地址和偏移,當然消費者也可以通過修改地址和偏移的方式,重復讀取引擎端的數(shù)據(jù)。
[0012]智能交通集成指揮平臺分為以下五層:用戶界面層、應用層、數(shù)據(jù)集成層、網(wǎng)絡層、設備層,參見圖1。本發(fā)明主要完成數(shù)據(jù)存儲轉(zhuǎn)發(fā)引擎集群設計和實現(xiàn)。集群設計的目標是:單個引擎功能設計如圖2數(shù)據(jù)存儲轉(zhuǎn)發(fā)引擎功能圖所示。本發(fā)明從對數(shù)據(jù)到達消費者的時效性要求的高低,將智能交通集成平臺數(shù)據(jù)劃分為兩類:實時消費數(shù)據(jù)和歷史消費數(shù)據(jù)。為了實現(xiàn)統(tǒng)一設計,就要統(tǒng)一這兩類數(shù)據(jù)處理方法。通常只要能滿足消費實時數(shù)據(jù)要求,同時增加數(shù)據(jù)緩存隊列保存歷史數(shù)據(jù),就可以滿足消費歷史數(shù)據(jù)要求。本發(fā)明采用集群的方式實現(xiàn)高穩(wěn)定性、高性能。引擎集群能夠自動感知集群新進引擎并上線提供服務。老引擎停止服務時通知生產(chǎn)者和消費者,重新選取引擎服務來處理數(shù)據(jù)。引擎中的數(shù)據(jù)由生產(chǎn)者推送過來,為了避免頻繁的1操作,生產(chǎn)者是按批次推送數(shù)據(jù),引擎成批的接收數(shù)據(jù),消費者成批的拉取數(shù)據(jù)。
[0013]引擎為了提高數(shù)據(jù)轉(zhuǎn)發(fā)、轉(zhuǎn)儲的效率,對數(shù)據(jù)內(nèi)容不進行任何解析操作。生產(chǎn)者將數(shù)據(jù)格式化為統(tǒng)一結構(例如:google buffer、json等)然后序列化為標準文件流。標準化文件流就可以方便在網(wǎng)絡層、引擎服務器、消費者之間進行傳輸,這種數(shù)據(jù)只有到達真正的使用者時才會被解析,反序列化出來。傳輸采用零拷貝技術,減少數(shù)據(jù)在用戶空間緩存與內(nèi)核空間緩存的拷貝。如圖3零拷貝與傳統(tǒng)發(fā)送數(shù)據(jù)流程對比圖。
[0014]在引擎服務器內(nèi)存維護一張段文件索引表,存儲每個段文件起始地址。持久化生產(chǎn)者發(fā)送的數(shù)據(jù)到引擎服務器段文件中,段文件采用FIFO隊列組織。提供多個段文件在不同引擎服務器上的數(shù)據(jù)復本,保證持久化數(shù)據(jù)安全。
[0015]每一個段文件多個復本分別存放在不同的物理服務器上,物理服務器會被劃分為兩類角色:Master和Slave。Master負責段文件的寫操作、并通知Slave數(shù)據(jù)同步;Slave負責向Master轉(zhuǎn)發(fā)寫操作,提供應用層讀取服務。Master是采用paxos動態(tài)選舉產(chǎn)生,一旦一個Master失效,會從Slave中重新選舉一個Master,此算法需要段文件復本數(shù)大于2*N+1 個。
[0016]自動在引擎集群之間同步數(shù)據(jù),保證所有消費者在任意一個引擎上看到的數(shù)據(jù)都是一致的。引擎向生產(chǎn)者提供發(fā)布數(shù)據(jù)專題接口,將專題關聯(lián)到無限多個段文件上,從而保證專題內(nèi)容可以橫向擴展;通過不同專題向應用層提供不同協(xié)議類型的數(shù)據(jù)。協(xié)調(diào)生產(chǎn)者推送數(shù)據(jù)速度和消費者拉取數(shù)據(jù)速度,避免當消費者由于資源限制不能及時處理生產(chǎn)者發(fā)送數(shù)據(jù),而引起消費者服務器資源耗盡的拒絕服務攻擊。引擎提供數(shù)據(jù)訪問連接池,生產(chǎn)者和消費者每次連接到引擎時會初始化連接池,當推送或拉取數(shù)據(jù)時會從連接池中優(yōu)選一條連接傳輸數(shù)據(jù)。
[0017]消費者保存當前的數(shù)據(jù)專題信息,包括專題中段文件的起始地址和段文件中已經(jīng)讀取數(shù)據(jù)的偏移量。每次讀取都會根據(jù)當前偏移加上數(shù)據(jù)長度來拉取數(shù)據(jù)。由于數(shù)據(jù)讀取偏移是記錄在消費者,所以消費者通過回退偏移量,可以重新拉取以前使用的數(shù)據(jù)。這個特性可以保證歷史上被錯誤處理的數(shù)據(jù),可以在修復消費邏輯后重新處理一遍。在實際中如車流量數(shù)據(jù)在糾偏時采用算法得到進一步完善,就可以在實施新算法后采用回退機制重新獲取一遍原始數(shù)據(jù)進行糾偏。當然歷史數(shù)據(jù)保留期限可以在引擎上設置,引擎會自動清理過期數(shù)據(jù),防止歷史數(shù)據(jù)占滿引擎存儲空間。
[0018]本發(fā)明是一種基于大數(shù)據(jù)的智能交通平臺數(shù)據(jù)集成引擎,引擎提供給智能交通子系統(tǒng)統(tǒng)一的數(shù)據(jù)接入服務,能夠支撐大規(guī)模數(shù)據(jù)不間斷穩(wěn)定傳輸。引擎通過集群設計和優(yōu)化數(shù)據(jù)存取模式提高自身轉(zhuǎn)發(fā)效率,能夠提供實時數(shù)據(jù)轉(zhuǎn)發(fā)和歷史數(shù)據(jù)暫儲功能,通過原生支持HDFS文件轉(zhuǎn)儲,實現(xiàn)對智能交通大數(shù)據(jù)分析、處理的支撐。
【專利附圖】
【附圖說明】
[0019]圖1為基于大數(shù)據(jù)集成平臺結構圖;
圖2為數(shù)據(jù)存儲轉(zhuǎn)發(fā)引擎功能圖;
圖3為零拷貝與傳統(tǒng)發(fā)送數(shù)據(jù)流程對比圖;
圖4為基于大數(shù)據(jù)與傳統(tǒng)數(shù)據(jù)處理流程圖對比圖;
圖5為數(shù)據(jù)存儲轉(zhuǎn)發(fā)引擎生產(chǎn)數(shù)據(jù)處理流程圖;
圖6為數(shù)據(jù)存儲轉(zhuǎn)發(fā)引擎消費數(shù)據(jù)處理流程圖。
【具體實施方式】
[0020]以下參照附圖,進一步地對本發(fā)明的技術方案進行描述,以使本領域技術人員進一步地理解本發(fā)明,而不構成對本發(fā)明權利的限制。
[0021]實施例1,參照圖1-3,一種基于大數(shù)據(jù)的智能交通平臺數(shù)據(jù)集成方法,該方法將數(shù)據(jù)集成層部署在網(wǎng)絡層和應用層之間;實現(xiàn)集成平臺與子系統(tǒng)之間數(shù)據(jù)轉(zhuǎn)發(fā)、數(shù)據(jù)暫存、數(shù)據(jù)轉(zhuǎn)儲功能;能夠支持大數(shù)據(jù)應用;通過連接池形式提供生產(chǎn)者和消費者連接;引擎采用服務器集群提供數(shù)據(jù)服務,集群中有新服務器加入能夠自動注冊并上線運行,有服務器故障會通知客戶端并清理連接池;引擎能夠提供數(shù)據(jù)轉(zhuǎn)發(fā),數(shù)據(jù)持久化,向Hdfs文件存儲系統(tǒng)轉(zhuǎn)儲;數(shù)據(jù)被持久化為標準化流,保存到FIFO文件隊列,同時在內(nèi)存中維持一張文件頭索引表;生產(chǎn)者向引擎推送數(shù)據(jù),并發(fā)布數(shù)據(jù)專題;消費者是主動拉取引擎上數(shù)據(jù)專題內(nèi)容,并自己記錄已經(jīng)拉取的數(shù)據(jù)位置;引擎向消費者發(fā)送其請求的數(shù)據(jù)時,采用零拷貝方法;據(jù)專題作為消費者識別數(shù)據(jù)類型的依據(jù);數(shù)據(jù)專題可以和多個段文件進行關聯(lián),實現(xiàn)專題數(shù)據(jù)內(nèi)容的橫向擴展;每個段文件在多臺服務器上有復本,從而保證數(shù)據(jù)文件安全。
[0022]實施例2,實施例1所述的方法中:段文件多個文件復本所在服務器被劃分為Master和Slave兩類角色,Master負責數(shù)據(jù)寫操作、轉(zhuǎn)發(fā)讀操作、通知Slave進行數(shù)據(jù)同步;Slave負責轉(zhuǎn)發(fā)寫操作、與Master同步、提供讀取服務;Master是從Slave中選舉出來,在集群發(fā)現(xiàn)Master不能提供正常服務后會發(fā)起選舉,Slave的數(shù)量必須滿足2*n+l才能保證選舉成功,選舉采用fast paxos算法。
[0023]實施例3,實施例1所述的方法中:該方法基于大數(shù)據(jù)的存儲系統(tǒng)來設計數(shù)據(jù)接入層;從集成平臺接入層就對數(shù)據(jù)進行了分類,實時數(shù)據(jù)直接分發(fā)到集成平臺客戶端顯示;歷史消費的數(shù)據(jù)由支持大數(shù)據(jù)處理的文件存儲系統(tǒng)來存取,需要進一步處理的數(shù)據(jù)采用大數(shù)據(jù)處理方法,將數(shù)據(jù)按需轉(zhuǎn)換到不同的數(shù)據(jù)倉庫中供集成平臺調(diào)?。粺o需處理的數(shù)據(jù)直接按照原始的數(shù)據(jù)格式進行留存。
[0024]實施例4,如圖4基于大數(shù)據(jù)與傳統(tǒng)數(shù)據(jù)處理流程對比圖所示,基于大數(shù)據(jù)的存儲系統(tǒng)來設計數(shù)據(jù)接入層。從集成平臺接入層就對數(shù)據(jù)進行了分類,實時數(shù)據(jù)直接分發(fā)到集成平臺客戶端顯示;歷史消費的數(shù)據(jù)由支持大數(shù)據(jù)處理的文件存儲系統(tǒng)來存取,需要進一步處理的數(shù)據(jù)采用大數(shù)據(jù)處理技術和方法,將數(shù)據(jù)按需轉(zhuǎn)換到不同的數(shù)據(jù)倉庫中供集成平臺調(diào)??;無需處理的數(shù)據(jù)直接按照原始的數(shù)據(jù)格式進行留存。圖4中與傳統(tǒng)方法相比,本設計避開數(shù)據(jù)轉(zhuǎn)儲的過程,將數(shù)據(jù)接入層直接與大數(shù)據(jù)存儲層對接,實現(xiàn)了對大數(shù)據(jù)處理原生支持。減少數(shù)據(jù)處理流程,避免數(shù)據(jù)格式來回轉(zhuǎn)換造成服務器資源開銷,將有限服務器資源集中到集成平臺上層更關注的大數(shù)據(jù)應用上。
[0025]實施例5,實施例1所述的方法中:如圖5數(shù)據(jù)存儲轉(zhuǎn)發(fā)引擎生產(chǎn)數(shù)據(jù)處理流程圖:
I)引擎獲取生產(chǎn)者連接,接收生產(chǎn)者發(fā)送的數(shù)據(jù)到臨時隊列。引擎會根據(jù)配置文件中設置的數(shù)據(jù)緩存長度或者緩存時長,檢查接收到的數(shù)據(jù)量,達到配置文件要求時,會執(zhí)行數(shù)據(jù)持久化操作。
[0026]2)由于數(shù)據(jù)持久化是通過Master來完成,所以數(shù)據(jù)在持久化到段文件之前,引擎會判斷該段文件所在的Master是否正常,如果正常則進行下一步寫入段文件操作。否則轉(zhuǎn)入Master選舉流程。
[0027]3)Master選舉流程選用fast paxos算法,該算法對參與選舉的服務器數(shù)要求必須是2*n+l個。選舉是由當前寫入服務器發(fā)起,并由其統(tǒng)計每個Slave得票數(shù),其他的Slave服務器負責投票,直到Master產(chǎn)生。
[0028]4)Master產(chǎn)生后將負責把文件寫入到段文件中,根據(jù)生產(chǎn)者要求將段文件關聯(lián)到指定專題,同時在內(nèi)存索引表中添加該段文件地址索引項。
[0029]5)結束數(shù)據(jù)上傳流程,并發(fā)布到專題,供消費者拉取消費。
[0030]實施例6,實施例1所述的方法中:如圖6數(shù)據(jù)存儲轉(zhuǎn)發(fā)引擎消費數(shù)據(jù)處理流程圖:
I)引擎獲取消費者連接,接收消費者拉取數(shù)據(jù)的請求。該請求中包括消費者要消費的專題項信息、段文件起始地址、內(nèi)部數(shù)據(jù)偏移量等。
[0031]2)引擎從頁面緩存中直接將數(shù)據(jù)轉(zhuǎn)遞到socket緩存,發(fā)送給消費者。
[0032]3)段文件中的每條數(shù)據(jù)都會有一個遞增的唯一 ID標識。Slave服務器會定期向Master發(fā)送最大標識ID,詢問Master是否需要同步數(shù)據(jù),Master收到標識后會給出應答,同步采用增量同步方式,每次同步的增量Master在應答中會告知Slave, Slave收到后就啟動同步線程,執(zhí)行同步。
[0033]4)每次消費者拉取的數(shù)據(jù)多少,引擎端不做任何的記錄。需要消費者在本地記錄已經(jīng)讀取的數(shù)據(jù)地址和偏移,當然消費者也可以通過修改地址和偏移的方式,重復讀取引擎端的數(shù)據(jù)。
[0034]以上實現(xiàn)了基于大數(shù)據(jù)智能交通平臺數(shù)據(jù)集成引擎設計,本引擎能提供高性能的智能交通平臺大數(shù)據(jù)接入服務,能夠支撐智能交通平臺大數(shù)據(jù)分析、處理的要求。
【權利要求】
1.一種基于大數(shù)據(jù)的智能交通平臺數(shù)據(jù)集成方法,其特征在于:該方法將數(shù)據(jù)集成層部署在網(wǎng)絡層和應用層之間;實現(xiàn)集成平臺與子系統(tǒng)之間數(shù)據(jù)轉(zhuǎn)發(fā)、數(shù)據(jù)暫存、數(shù)據(jù)轉(zhuǎn)儲功能;能夠支持大數(shù)據(jù)應用;通過連接池形式提供生產(chǎn)者和消費者連接;引擎采用服務器集群提供數(shù)據(jù)服務,集群中有新服務器加入能夠自動注冊并上線運行,有服務器故障會通知客戶端并清理連接池;引擎能夠提供數(shù)據(jù)轉(zhuǎn)發(fā),數(shù)據(jù)持久化,向HdfS文件存儲系統(tǒng)轉(zhuǎn)儲;數(shù)據(jù)被持久化為標準化流,保存到FIFO文件隊列,同時在內(nèi)存中維持一張文件頭索引表;生產(chǎn)者向引擎推送數(shù)據(jù),并發(fā)布數(shù)據(jù)專題;消費者是主動拉取引擎上數(shù)據(jù)專題內(nèi)容,并自己記錄已經(jīng)拉取的數(shù)據(jù)位置;引擎向消費者發(fā)送其請求的數(shù)據(jù)時,采用零拷貝方法;據(jù)專題作為消費者識別數(shù)據(jù)類型的依據(jù);數(shù)據(jù)專題可以和多個段文件進行關聯(lián),實現(xiàn)專題數(shù)據(jù)內(nèi)容的橫向擴展;每個段文件在多臺服務器上有復本,從而保證數(shù)據(jù)文件安全。
2.根據(jù)權利要求1所述的方法,其特征在于:段文件多個文件復本所在服務器被劃分為Master和Slave兩類角色,Master負責數(shù)據(jù)寫操作、轉(zhuǎn)發(fā)讀操作、通知Slave進行數(shù)據(jù)同步;Slave負責轉(zhuǎn)發(fā)寫操作、與Master同步、提供讀取服務;Master是從Slave中選舉出來,在集群發(fā)現(xiàn)Master不能提供正常服務后會發(fā)起選舉,Slave的數(shù)量必須滿足2*n+l才能保證選舉成功,選舉采用fast paxos算法。
3.根據(jù)權利要求1所述的方法,其特征在于:該方法基于大數(shù)據(jù)的存儲系統(tǒng)來設計數(shù)據(jù)接入層;從集成平臺接入層就對數(shù)據(jù)進行了分類,實時數(shù)據(jù)直接分發(fā)到集成平臺客戶端顯示;歷史消費的數(shù)據(jù)由支持大數(shù)據(jù)處理的文件存儲系統(tǒng)來存取,需要進一步處理的數(shù)據(jù)采用大數(shù)據(jù)處理方法,將數(shù)據(jù)按需轉(zhuǎn)換到不同的數(shù)據(jù)倉庫中供集成平臺調(diào)取;無需處理的數(shù)據(jù)直接按照原始的數(shù)據(jù)格式進行留存。
4.根據(jù)權利要求1所述的方法,其特征在于:數(shù)據(jù)存儲轉(zhuǎn)發(fā)引擎生產(chǎn)數(shù)據(jù)處理流程如下: 引擎獲取生產(chǎn)者連接,接收生產(chǎn)者發(fā)送的數(shù)據(jù)到臨時隊列,引擎會根據(jù)配置文件中設置的數(shù)據(jù)緩存長度或者緩存時長,檢查接收到的數(shù)據(jù)量,達到配置文件要求時,會執(zhí)行數(shù)據(jù)持久化操作; 由于數(shù)據(jù)持久化是通過Master來完成,所以數(shù)據(jù)在持久化到段文件之前,引擎會判斷該段文件所在的Master是否正常,如果正常則進行下一步寫入段文件操作;則轉(zhuǎn)入Master選舉流程; Master選舉流程選用fast paxos算法,該算法對參與選舉的服務器數(shù)要求必須是2*n+l個;選舉是由當前寫入服務器發(fā)起,并由其統(tǒng)計每個Slave得票數(shù),其他的Slave服務器負責投票,直到Master產(chǎn)生; Master產(chǎn)生后將負責把文件寫入到段文件中,根據(jù)生產(chǎn)者要求將段文件關聯(lián)到指定專題,同時在內(nèi)存索引表中添加該段文件地址索引項; 結束數(shù)據(jù)上傳流程,并發(fā)布到專題,供消費者拉取消費。
5.根據(jù)權利要求1所述的方法,其特征在于:數(shù)據(jù)存儲轉(zhuǎn)發(fā)引擎消費數(shù)據(jù)處理流程如下: 引擎獲取消費者連接,接收消費者拉取數(shù)據(jù)的請求;該請求中包括消費者要消費的專題項信息、段文件起始地址、內(nèi)部數(shù)據(jù)偏移量等; 引擎從頁面緩存中直接將數(shù)據(jù)轉(zhuǎn)遞到socket緩存,發(fā)送給消費者; 段文件中的每條數(shù)據(jù)都會有一個遞增的唯一 ID標識;Slave服務器會定期向Master發(fā)送最大標識ID,詢問Master是否需要同步數(shù)據(jù),Master收到標識后會給出應答,同步采用增量同步方式,每次同步的增量Master在應答中會告知Slave, Slave收到后就啟動同步線程,執(zhí)行同步; 每次消費者拉取的數(shù)據(jù)多少,引擎端不做任何的記錄;需要消費者在本地記錄已經(jīng)讀取的數(shù)據(jù)地址和偏移,當然消費者也可以通過修改地址和偏移的方式,重復讀取引擎端的數(shù)據(jù)。
【文檔編號】H04L29/08GK104320486SQ201410626644
【公開日】2015年1月28日 申請日期:2014年11月10日 優(yōu)先權日:2014年11月10日
【發(fā)明者】張鋒鑫, 項俊平, 王帥, 母萬國, 劉建華 申請人:連云港杰瑞電子有限公司