[發(fā)明專利]基于MQ和異步IO的數(shù)據(jù)多級緩存與高速傳輸記錄方法在審
| 申請?zhí)枺?/td> | 202010868475.8 | 申請日: | 2020-08-26 |
| 公開(公告)號: | CN111949422A | 公開(公告)日: | 2020-11-17 |
| 發(fā)明(設計)人: | 李敏 | 申請(專利權(quán))人: | 南京云燦信息科技有限公司 |
| 主分類號: | G06F9/54 | 分類號: | G06F9/54 |
| 代理公司: | 暫無信息 | 代理人: | 暫無信息 |
| 地址: | 210000 江蘇省南京市*** | 國省代碼: | 江蘇;32 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 基于 mq 異步 io 數(shù)據(jù) 多級 緩存 高速 傳輸 記錄 方法 | ||
本發(fā)明提供基于MQ和異步IO的數(shù)據(jù)多級緩存與高速傳輸記錄方法,本發(fā)明利用多級緩存技術(shù)和ZeroMQ技術(shù),可以實現(xiàn)高速穩(wěn)定的網(wǎng)絡傳輸,在傳輸層面最大限度地利用網(wǎng)絡帶寬資源。在數(shù)據(jù)記錄層面,一方面通過異步IO進行異步寫文件,減少CPU的用戶態(tài)(UserMode)和內(nèi)核態(tài)(KernelMode)的頻繁切換,提高數(shù)據(jù)寫入速度;另一方面,通過共用數(shù)據(jù)接收和異步IO的數(shù)據(jù)緩存,減少處理過程中的內(nèi)存拷貝,減少緩存的消耗和提高數(shù)據(jù)的寫入速度。通過傳輸層面和數(shù)據(jù)記錄層面兩方面的優(yōu)化改善,提高系統(tǒng)整體的傳輸記錄的速度和穩(wěn)定度。
技術(shù)領(lǐng)域
本發(fā)明涉及物聯(lián)網(wǎng)高速記錄領(lǐng)域,具體為基于MQ和異步IO的數(shù)據(jù)多級緩存與高速傳輸記錄方法。
背景技術(shù)
在物聯(lián)網(wǎng)高速記錄領(lǐng)域,需要對各種海量的物聯(lián)網(wǎng)數(shù)據(jù)進行高速傳輸和高速記錄。在傳輸層面通常利用TCP或者UDP進行傳輸,但是TCP傳輸速度不夠高,UDP傳輸速度快,但是丟包的問題很難避免,需要一種既能充分利用網(wǎng)絡帶寬,又能不丟包穩(wěn)定傳輸?shù)姆椒āT跀?shù)據(jù)接收和記錄存儲層面,可以用硬件板卡進行高速寫入,但靈活性稍顯不足,成本也比較高;利用軟件進行接收并高速寫入,靈活性得到了提升,但CPU和磁盤IO的調(diào)度又具有相當?shù)碾y度,一旦發(fā)生數(shù)據(jù)擁堵將加劇數(shù)據(jù)的丟包;
因此發(fā)明基于MQ和異步IO的數(shù)據(jù)多級緩存與高速傳輸記錄方法。
發(fā)明內(nèi)容
為實現(xiàn)以上目的,本發(fā)明通過以下技術(shù)方案予以實現(xiàn):基于MQ和異步IO的數(shù)據(jù)多級緩存與高速傳輸記錄方法,該方法適用于整體系統(tǒng)架構(gòu)中,該整體系統(tǒng)架構(gòu)由數(shù)據(jù)發(fā)送端和數(shù)據(jù)接收端和多級緩存組成;
所述數(shù)據(jù)發(fā)送端由數(shù)據(jù)發(fā)送接口單元、高速數(shù)據(jù)發(fā)送單元組成;
所述數(shù)據(jù)接收端由高速數(shù)據(jù)接收單元、異步IO記錄單元組成;
所述多級緩存包括發(fā)送數(shù)據(jù)緩存的多級緩存和接收數(shù)據(jù)緩存的多級緩存。
進一步地,所述數(shù)據(jù)發(fā)送端包括三級緩存,且所述三級緩存由發(fā)送端一級緩存、發(fā)送端二級緩存與發(fā)送端三級緩存組成,在數(shù)據(jù)準備線程和數(shù)據(jù)發(fā)送線程之間通過ZeroMQ的線程間通信模式inproc協(xié)議進行通信,且于ZeroMQ的PUSH端和PULL端都設置數(shù)據(jù)緩存,且該數(shù)據(jù)緩存發(fā)送端一級緩存和發(fā)送端二級緩存;在高速數(shù)據(jù)發(fā)送單元將數(shù)據(jù)向接收方發(fā)送時,采用ZeroMQ的TCP協(xié)議的DEALER模式進行發(fā)送,為了增強數(shù)據(jù)的傳輸穩(wěn)定性,設置發(fā)送端緩存,且該發(fā)送端緩存為發(fā)送端三級緩存。
進一步地,所述數(shù)據(jù)接收端包括兩級緩存,且該所述兩級緩存由接收端一級緩存與接收端二級緩存組成,數(shù)據(jù)通過高速數(shù)據(jù)接收單元進行接收,采用ZeroMQ的TCP協(xié)議的DEALER模式接收數(shù)據(jù),通過設置TCP接收緩存,提高數(shù)據(jù)的穩(wěn)定性,該所述TCP接收緩存為接收端一級緩存,在高速數(shù)據(jù)接收單元和異步IO記錄單元兩個單元間,為了提高性能和降低模塊之間的耦合度,設置了記錄數(shù)據(jù)緩存,該記錄數(shù)據(jù)緩存為接收端二級緩存。
數(shù)據(jù)發(fā)送端處理方法,該處理方法包括以下步驟:
數(shù)據(jù)發(fā)送處理流程:數(shù)據(jù)發(fā)送處理分為兩個線程,數(shù)據(jù)準備線程和數(shù)據(jù)發(fā)送線程,兩個線程通過發(fā)送數(shù)據(jù)隊列進行數(shù)據(jù)緩存,交換數(shù)據(jù)。數(shù)據(jù)準備線程不斷將準備的數(shù)據(jù)通過ZeroMQ的inproc協(xié)議寫入到數(shù)據(jù)隊列中,數(shù)據(jù)發(fā)送線程不斷通過ZeroMQ的inproc協(xié)議從數(shù)據(jù)隊列中獲取數(shù)據(jù),通過ZeroMQ的TCP協(xié)議發(fā)送出去。
發(fā)送數(shù)據(jù)的接入方式:為數(shù)據(jù)發(fā)送模塊提供靈活的數(shù)據(jù)發(fā)送場景,支持兩種數(shù)據(jù)接入方式:
接入方式1:提供API接口的數(shù)據(jù)接入方式,外部應用直接調(diào)用該API接口即可完成數(shù)據(jù)的發(fā)送;
接入方式2:提供發(fā)送數(shù)據(jù)隊列的相關(guān)參數(shù),外部應用使用ZeroMQ相應的設置,即可往發(fā)送數(shù)據(jù)隊列中寫入數(shù)據(jù),進行發(fā)送;
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于南京云燦信息科技有限公司,未經(jīng)南京云燦信息科技有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202010868475.8/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。





