国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種高可靠性的數(shù)據(jù)通信方法和裝置的制作方法

      文檔序號(hào):7867457閱讀:209來源:國知局
      專利名稱:一種高可靠性的數(shù)據(jù)通信方法和裝置的制作方法
      一種高可靠性的數(shù)據(jù)通信方法和裝置方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及網(wǎng)絡(luò)通信技術(shù)領(lǐng)域,特別涉及一種高可靠性的數(shù)據(jù)通信方法和裝置。背景技術(shù)
      分布式通信系統(tǒng)因其方便管理和控制、開放性更強(qiáng)、可擴(kuò)展性更高等優(yōu)點(diǎn)得到廣泛的應(yīng)用。例如分布式數(shù)據(jù)中心中的監(jiān)控管理平臺(tái)作為中心設(shè)備能夠?qū)Χ鄶?shù)據(jù)中心進(jìn)行統(tǒng)一集中管理,圖1為分布式數(shù)據(jù)中心的系統(tǒng)結(jié)構(gòu)圖。維護(hù)人員身處一地就能夠統(tǒng)籌所有數(shù)據(jù)中心,檢查和處理各個(gè)數(shù)據(jù)中心的設(shè)備狀態(tài)和故障,通過集中的指令發(fā)布,就能夠統(tǒng)一控制所有數(shù)據(jù)中心的調(diào)度作業(yè)及批量任務(wù)執(zhí)行。從而大大提高了多數(shù)據(jù)中心之間的統(tǒng)一管理、協(xié)助運(yùn)行效率,同時(shí)還節(jié)約大量一線及后臺(tái)維護(hù)人員并提高故障響應(yīng)速度。
      然而,諸如分布式數(shù)據(jù)中心系統(tǒng)等分布式通信系統(tǒng),對(duì)網(wǎng)絡(luò)傳輸鏈路穩(wěn)定性要求較高,在傳輸帶寬不穩(wěn)定或鏈路不穩(wěn)定的情況下,無法保證數(shù)據(jù)的完整性和可用性。
      發(fā)明內(nèi)容
      有鑒于此,本發(fā)明提供了一種高可靠性的數(shù)據(jù)通信方法和裝置,保證通信數(shù)據(jù)的完整性和可用性。
      具體技術(shù)方案如下
      一種高可靠性的數(shù)據(jù)通信方法,該方法包括
      采用雙緩存技術(shù)使得讀寫操作在雙緩存中交錯(cuò)進(jìn)行,其中寫操作為將接收到的數(shù)據(jù)寫入緩存,讀操作為將緩存中的數(shù)據(jù)發(fā)送至目標(biāo)設(shè)備;
      當(dāng)發(fā)送數(shù)據(jù)至目標(biāo)設(shè)備發(fā)生異常時(shí),將發(fā)送失敗的數(shù)據(jù)寫入本地文件池,或者當(dāng)緩存出現(xiàn)寫溢出時(shí),將寫入緩存失敗的數(shù)據(jù)寫入本地文件池;
      周期性地將本地文件池中的數(shù)據(jù)發(fā)送至所述目標(biāo)設(shè)備。
      根據(jù)本發(fā)明一優(yōu)選實(shí)施例,所述采用雙緩存技術(shù)使得讀寫操作在雙緩存中交錯(cuò)進(jìn)行具體包括
      當(dāng)標(biāo)識(shí)位為O時(shí),將接收到的數(shù)據(jù)寫入第一緩存,將第二緩存中的數(shù)據(jù)發(fā)送至目標(biāo)設(shè)備,當(dāng)?shù)诙彺嬷械臄?shù)據(jù)發(fā)送完成后,設(shè)置所述標(biāo)志位為I;
      當(dāng)標(biāo)志位為I時(shí),將接收到的數(shù)據(jù)寫入第二緩存,將第一緩存中的數(shù)據(jù)發(fā)送至目標(biāo)設(shè)備,當(dāng)?shù)谝痪彺嬷械臄?shù)據(jù)發(fā)送完成后,設(shè)置所述標(biāo)識(shí)位為O。
      根據(jù)本發(fā)明一優(yōu)選實(shí)施例,在將數(shù)據(jù)寫入本地文件池時(shí),具體執(zhí)行
      首先判斷所述本地文件池是否為空,如果是,則創(chuàng)建文件并將數(shù)據(jù)寫入創(chuàng)建的文件,直至文件被寫滿后,再創(chuàng)建新的文件進(jìn)行數(shù)據(jù)寫入,直至文件 池已滿;否則,將數(shù)據(jù)寫入未滿的文件,直至文件被寫滿后,再創(chuàng)建新的文件進(jìn)行數(shù)據(jù)寫入,直至文件池已滿。
      根據(jù)本發(fā)明一優(yōu)選實(shí)施例,周期性地將本地文件池中的數(shù)據(jù)發(fā)送至所述目標(biāo)設(shè)備具體包括
      S1、在文件發(fā)送周期中,判斷所述本地文件池是否為空,如果為空,則重新轉(zhuǎn)至執(zhí)行步驟SI,直至當(dāng)前文件發(fā)送周期結(jié)束;如果不為空,則執(zhí)行步驟S2 ;S2、獲取文件列表;S3、從列表中取出一個(gè)文件發(fā)送至所述目標(biāo)設(shè)備,并從本地文件池中刪除發(fā)送成功的文件;重新轉(zhuǎn)至執(zhí)行步驟S3,直至文件列表為空或當(dāng)前文件發(fā)送周期結(jié)束。根據(jù)本發(fā)明一優(yōu)選實(shí)施例,該方法適用于分布式通信系統(tǒng);當(dāng)該方法由中心設(shè)備執(zhí)行時(shí),所述目標(biāo)設(shè)備為分支設(shè)備;當(dāng)該方法由分支設(shè)備執(zhí)行時(shí),所述目標(biāo)設(shè)備為中心設(shè)備。一種高可靠性的數(shù)據(jù)通信裝置,該系統(tǒng)包括雙緩存讀寫模塊,用于采用雙緩存技術(shù)使得讀寫操作在雙緩存中交錯(cuò)進(jìn)行,其中寫操作為將接收到的數(shù)據(jù)寫入緩存,讀操作為將緩存中的數(shù)據(jù)發(fā)送至目標(biāo)設(shè)備;持久化處理模塊,用于當(dāng)發(fā)送數(shù)據(jù)至目標(biāo)設(shè)備發(fā)生異常時(shí),將發(fā)送失敗的數(shù)據(jù)寫入本地文件池,或者當(dāng)緩存出現(xiàn)寫溢出時(shí),將寫入緩存失敗的數(shù)據(jù)寫入本地文件池;數(shù)據(jù)補(bǔ)償模塊,用于周期性地將本地文件池中的數(shù)據(jù)發(fā)送至所述目標(biāo)設(shè)備。根據(jù)本發(fā)明一優(yōu)選實(shí)施例,所述雙緩存讀寫模塊具體包括寫數(shù)據(jù)模塊,用于當(dāng)標(biāo)識(shí)位為O時(shí),將接收到的數(shù)據(jù)寫入第一緩存,當(dāng)標(biāo)識(shí)位為I時(shí),將接收到的數(shù)據(jù)寫入第二緩存;讀數(shù)據(jù)模塊,用于當(dāng)標(biāo)識(shí)位為O時(shí),將第二緩存中的數(shù)據(jù)發(fā)送至目標(biāo)設(shè)備,當(dāng)標(biāo)志位為I時(shí),將第一緩存中的數(shù) 據(jù)發(fā)送至目標(biāo)設(shè)備;標(biāo)識(shí)位控制模塊,用于當(dāng)?shù)诙彺嬷械臄?shù)據(jù)發(fā)送完成后,設(shè)置所述標(biāo)志位為1,當(dāng)?shù)谝痪彺嬷械臄?shù)據(jù)發(fā)送完成后,設(shè)置所述標(biāo)識(shí)位為O。根據(jù)本發(fā)明一優(yōu)選實(shí)施例,所述持久化處理模塊在將數(shù)據(jù)寫入本地文件池時(shí),具體執(zhí)行首先判斷所述本地文件池是否為空,如果是,則創(chuàng)建文件并將數(shù)據(jù)寫入創(chuàng)建的文件,直至文件被寫滿后,再創(chuàng)建新的文件進(jìn)行數(shù)據(jù)寫入,直至文件池已滿;否則,將數(shù)據(jù)寫入未滿的文件,直至文件被寫滿后,再創(chuàng)建新的文件進(jìn)行數(shù)據(jù)寫入,直至文件池已滿。根據(jù)本發(fā)明一優(yōu)選實(shí)施例,所述數(shù)據(jù)補(bǔ)償模塊具體執(zhí)行S1、在文件發(fā)送周期中,判斷所述本地文件池是否為空,如果為空,則重新轉(zhuǎn)至執(zhí)行操作SI,直至當(dāng)前文件發(fā)送周期結(jié)束;如果不為空,則執(zhí)行操作S2 ;S2、獲取文件列表;S3、從列表中取出一個(gè)文件發(fā)送至所述目標(biāo)設(shè)備,并從本地文件池中刪除發(fā)送成功的文件;重新轉(zhuǎn)至執(zhí)行操作S3,直至文件列表為空或當(dāng)前文件發(fā)送周期結(jié)束。根據(jù)本發(fā)明一優(yōu)選實(shí)施例,該裝置適用于分布式通信系統(tǒng);當(dāng)該裝置設(shè)置在中心設(shè)備中時(shí),所述目標(biāo)設(shè)備為分支設(shè)備;當(dāng)該裝置設(shè)置在分支設(shè)備中時(shí),所述目標(biāo)設(shè)備為中心設(shè)備。由以上技術(shù)方案可以看出,本發(fā)明通過在雙緩存技術(shù)中可能會(huì)產(chǎn)生的寫緩存溢出或發(fā)送數(shù)據(jù)至目標(biāo)設(shè)備發(fā)生異常時(shí),將緩存失敗或發(fā)送失敗的數(shù)據(jù)寫入本地文件池,并周期性地將本地文件池中的數(shù)據(jù)發(fā)送至目標(biāo)設(shè)備,即采用數(shù)據(jù)持久化和數(shù)據(jù)補(bǔ)償兩種方式保證了目標(biāo)設(shè)備所接收數(shù)據(jù)的完整性和可用性,避免了因傳輸帶寬不夠或鏈路不穩(wěn)定所引起的數(shù)據(jù)丟失。
      圖1為分布式數(shù)據(jù)中心的系統(tǒng)結(jié)構(gòu)圖;圖2為本發(fā)明實(shí)施例一提供的數(shù)據(jù)通信方法的示意圖;圖3為本發(fā)明實(shí)施例一提供的讀操作流程圖;圖4為本發(fā)明實(shí)施例一提供的寫操作流程圖;圖5為本發(fā)明實(shí)施例一提供的持久化流程圖;圖6為本發(fā)明實(shí)施例一提供的數(shù)據(jù)補(bǔ)償流程圖;圖7為本發(fā)明實(shí)施例二提供的數(shù)據(jù)通信裝置的結(jié)構(gòu)圖。
      具體實(shí)施方式為了使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面結(jié)合附圖和具體實(shí)施例對(duì) 本發(fā)明進(jìn)行詳細(xì)描述。在本發(fā)明實(shí)施例中以分布式數(shù)據(jù)中心系統(tǒng)為例進(jìn)行描述,監(jiān)控管理平臺(tái)和各數(shù)據(jù) 中心之間的數(shù)據(jù)傳輸完整性和可用性需要保證,由背景技術(shù)中的描述可知,在該系統(tǒng)中作 為中心設(shè)備的監(jiān)控管理平臺(tái)其所接收數(shù)據(jù)的完整性和可用性尤為重要。下面就通過實(shí)施例 一以保證監(jiān)控管理平臺(tái)所接收數(shù)據(jù)的完整性和可靠性為例,對(duì)本發(fā)明提供的方法進(jìn)行詳細(xì) 描述。首先對(duì)這種場景下的具體環(huán)境進(jìn)行簡單介紹,監(jiān)控管理平臺(tái)的整個(gè)設(shè)計(jì)基于C/S(客 戶機(jī)/服務(wù)器)或B/S (瀏覽器/服務(wù)器)架構(gòu),在此將其中的C (客戶機(jī))和B (服務(wù)器)統(tǒng) 稱為Agent (代理),即Agent和Server (服務(wù)器)架構(gòu)。其中Agent負(fù)責(zé)采集數(shù)據(jù)并發(fā)送 至 Server, Agent直接與Server進(jìn)行數(shù)據(jù)通信。Agent與Server之間的通信通道有監(jiān)控 通道和管理通道兩種,監(jiān)控通道主要作用是傳送Agent收集的事件和性能數(shù)據(jù),管理通道 作用是傳送Sever到Agent的管理命令,實(shí)施例一的方法主要用于通信通道的通信數(shù)據(jù)。實(shí)施例一、圖2為本發(fā)明實(shí)施例一提供的數(shù)據(jù)通信方法的示意圖,該方法主要通過設(shè)置在 Agent中的數(shù)據(jù)通信裝置來實(shí)現(xiàn)。在Agent中采用雙緩存技術(shù)使得讀寫操作在雙緩存中交 錯(cuò)進(jìn)行,如圖2所示,包含Buffer A和Buffer B兩個(gè)緩存,這兩個(gè)緩存以固定的時(shí)間(最小 5秒)隔交錯(cuò)進(jìn)行讀寫操作,其中寫操作指的是將Agent接收到的數(shù)據(jù)寫入緩存,讀操作指 的是將緩存中的數(shù)據(jù)發(fā)送至目標(biāo)設(shè)備,本實(shí)施例中的目標(biāo)設(shè)備為Server。為了防止由于傳輸帶寬不穩(wěn)定或者鏈路不穩(wěn)定所引起的數(shù)據(jù)發(fā)送異常,在發(fā)送數(shù) 據(jù)至目標(biāo)設(shè)備發(fā)生異常時(shí),將發(fā)送失敗的數(shù)據(jù)寫入本地文件池。還有一種情況,由于緩存的 容量有限,可能會(huì)存在寫操作過程中的緩存溢出,這也可能會(huì)造成數(shù)據(jù)不完整的情況,因此 在緩存出現(xiàn)寫溢出時(shí),也將緩存失敗的數(shù)據(jù)寫入本地文件池。上述這一過程稱為持久化過 程,即將可能引起丟失的數(shù)據(jù)持久化到本地文件池。所謂本地文件池實(shí)際上是用于存儲(chǔ)本 地文件的存儲(chǔ)空間,在該存儲(chǔ)空間中數(shù)據(jù)可以以文件形式存儲(chǔ)。對(duì)于本地文件池中的數(shù)據(jù),采用周期性發(fā)送的方式發(fā)送至Server (即目標(biāo)設(shè)備), 對(duì)于發(fā)送完成的數(shù)據(jù)從本地文件池中刪除,其中發(fā)送周期可以根據(jù)實(shí)際狀況進(jìn)行自定義, 例如定義為30分鐘。這一過程稱為數(shù)據(jù)補(bǔ)償過程。下面對(duì)上面所述的幾個(gè)過程進(jìn)行詳細(xì)描述,首先采用雙緩存技術(shù)實(shí)現(xiàn)的讀寫操作在雙緩存中交錯(cuò)進(jìn)行,可以通過設(shè)置一個(gè)標(biāo)志位Flag來進(jìn)行控制。當(dāng)Flag為O時(shí),將接收到的數(shù)據(jù)寫入Buffer A,將Buffer B中的數(shù)據(jù)發(fā)送至Server,當(dāng)Buffer B中的數(shù)據(jù)發(fā)送完成后,設(shè)置Flag為I。當(dāng)Flag為I時(shí),將接收到的數(shù)據(jù)寫入Buffer B,將Buffer A中的數(shù)據(jù)發(fā)送至Server,當(dāng)Buffer A中的數(shù)據(jù)發(fā)送完成后,設(shè)置Flag為O。另外,也可以采用默認(rèn)預(yù)設(shè)時(shí)長作為交換時(shí)間,例如30秒,在第一個(gè)30秒內(nèi)將接收到的數(shù)據(jù)寫入Buffer A,將Buffer B中的數(shù)據(jù)發(fā)送至Server ;在第二個(gè)30秒內(nèi)將接收到的數(shù)據(jù)寫入Buffer B,將BufferA中的數(shù)據(jù)發(fā)送至Server。如果在上述過程中發(fā)生寫緩存溢出,則執(zhí)行持久化過程,即將緩存失敗的數(shù)據(jù)寫入本地文件池。在讀操作過程中,將緩存中的數(shù)據(jù)發(fā)送至Server,如果發(fā)生異常,則需要執(zhí)行持久化過程,即將發(fā)送失敗的數(shù)據(jù)寫入本地文件池。該讀操作的執(zhí)行流程如圖3所示,包括以下步驟步驟301 :依據(jù)Flag到對(duì)應(yīng)的緩存中讀取數(shù)據(jù),將讀取的數(shù)據(jù)發(fā)送至Server。步驟302 :判斷數(shù)據(jù)發(fā)送是否發(fā)生異常,如果是,則執(zhí)行步驟303 ;否則,執(zhí)行步驟304。

      在此判斷數(shù)據(jù)發(fā)送是否異常的方式與采用的具體TCP協(xié)議相關(guān),例如可以在發(fā)送數(shù)據(jù)的設(shè)定時(shí)長內(nèi)沒有收到來自目標(biāo)設(shè)備的指示接收數(shù)據(jù)成功的響應(yīng)或接收到來自目標(biāo)設(shè)備的指示接收數(shù)據(jù)失敗的響應(yīng)時(shí),確認(rèn)數(shù)據(jù)發(fā)送發(fā)生異常。如果存在數(shù)據(jù)重發(fā)機(jī)制,則若重發(fā)N次數(shù)據(jù)都失敗,則確認(rèn)數(shù)據(jù)發(fā)送發(fā)生異常,N為協(xié)議設(shè)定的正整數(shù)。步驟303 :將發(fā)送失敗的數(shù)據(jù)寫入本地文件池,轉(zhuǎn)至步驟301。步驟304 :將發(fā)送成功的數(shù)據(jù)從緩存中刪除,轉(zhuǎn)至步驟301。寫操作的執(zhí)行流程如圖4所示,包括以下步驟步驟401 :依據(jù)Flag選擇要寫入的緩存。步驟402 :判斷要寫入的緩存是否已滿,如果是,則執(zhí)行步驟403 ;否則,執(zhí)行步驟404。步驟403 :針對(duì)要寫入的緩存執(zhí)行持久化流程,即寫入本地文件池,轉(zhuǎn)至步驟401。步驟404 :將接收到的數(shù)據(jù)寫入該緩存,轉(zhuǎn)至步驟401。持久化的流程就是當(dāng)發(fā)送數(shù)據(jù)至目標(biāo)設(shè)備發(fā)生異常時(shí),將發(fā)送失敗的數(shù)據(jù)寫入本地文件池,或者當(dāng)緩存出現(xiàn)寫溢出時(shí),將寫入緩存失敗的數(shù)據(jù)寫入本地文件池。在將數(shù)據(jù)寫入本地文件池時(shí),如圖5所示,具體包括以下步驟步驟501 :判斷本地文件池是否為空,如果是,執(zhí)行步驟502 ;否則,執(zhí)行步驟503。步驟502 :創(chuàng)建文件并將數(shù)據(jù)寫入創(chuàng)建的文件,執(zhí)行步驟504。步驟503 :將數(shù)據(jù)寫入未滿的文件,執(zhí)行步驟504。本步驟是找出上一次寫入的文件,如果上一次寫入的文件未滿,繼續(xù)將該數(shù)據(jù)寫入該未滿的文件,如果上一次寫入的文件已滿,則直接執(zhí)行步驟504。步驟504 :文件被寫滿后再創(chuàng)建新的文件進(jìn)行數(shù)據(jù)寫入,直至文件池已滿。數(shù)據(jù)補(bǔ)償過程是將本地文件池中的數(shù)據(jù)周期性地發(fā)送至Server,然后刪除發(fā)送成功的文件。如圖6所示,具體包括以下步驟
      步驟601 :在文件發(fā)送周期中,判斷本地文件池是否為空,如果為空,則重新轉(zhuǎn)至執(zhí)行步驟601,等待文件池中有文件發(fā)送,直至當(dāng)前文件發(fā)送周期結(jié)束;如果不為空,則執(zhí)行步驟602。步驟602 :獲取本地文件池的文件列表。步驟603 :從文件列表中取出一個(gè)文件發(fā)送至Server,并從本地文件池中刪除發(fā)送成功的文件,重新轉(zhuǎn)至執(zhí)行步驟603,直至文件列表為空或當(dāng)前文件發(fā)送周期結(jié)束。以上是對(duì)本發(fā)明提供的方法進(jìn)行的詳細(xì)描述,下面結(jié)合實(shí)施例二對(duì)本發(fā)明提供的數(shù)據(jù)通信裝置進(jìn)行詳細(xì)描述。實(shí)施例二、圖7為本發(fā)明實(shí)施例二提供的數(shù)據(jù)通信裝置的結(jié)構(gòu)圖,如圖7所示,該裝置包括雙緩存讀寫模塊700、持久化處理模塊710和數(shù)據(jù)補(bǔ)償模塊720,其中,雙緩存讀寫模塊700具體包括寫數(shù)據(jù)模塊701、讀數(shù)據(jù)模塊702和標(biāo)識(shí)位控制模塊703。雙緩存讀寫模塊700采用雙緩存技術(shù)使得讀寫操作在雙緩存中交錯(cuò)進(jìn)行,其中寫操作為將接收到的數(shù)據(jù)寫入緩存,讀操作為將緩存中的數(shù)據(jù)發(fā)送至目標(biāo)設(shè)備。具體地,可以通過以下方式實(shí)現(xiàn)上述的雙緩存技術(shù)可以通過設(shè)置一個(gè)Flag來進(jìn)行控制。 當(dāng)Flag為O時(shí),寫數(shù)據(jù)模塊701將接收到的數(shù)據(jù)寫入Buffer A,當(dāng)Flag為I時(shí),寫數(shù)據(jù)模塊701將接收到的數(shù)據(jù)寫入Buffer B。當(dāng)Flag為O時(shí),讀數(shù)據(jù)模塊702將Buffer B中的數(shù)據(jù)發(fā)送至目標(biāo)設(shè)備,當(dāng)Flag為I時(shí),讀數(shù)據(jù)模塊702將Buffer A中的數(shù)據(jù)發(fā)送至目標(biāo)設(shè)備。當(dāng)Buffer B中的數(shù)據(jù)發(fā)送完成后,標(biāo)識(shí)位控制模塊703設(shè)置Flag為1,當(dāng)BufferA中的數(shù)據(jù)發(fā)送完成后,標(biāo)識(shí)位控制模塊703設(shè)置Flag為O。除了上述方式之外,也可以采用默認(rèn)預(yù)設(shè)時(shí)長作為交換時(shí)間,例如30秒,在第一個(gè)30秒內(nèi)將接收到的數(shù)據(jù)寫入Buffer A,將Buffer B中的數(shù)據(jù)發(fā)送至Server ;在第二個(gè)30秒內(nèi)將接收到的數(shù)據(jù)寫入Buffer B,將Buffer A中的數(shù)據(jù)發(fā)送至Server。持久化處理模塊710執(zhí)行持久化流程,當(dāng)發(fā)送數(shù)據(jù)至目標(biāo)設(shè)備發(fā)生異常時(shí),持久化處理模塊710將發(fā)送失敗的數(shù)據(jù)寫入本地文件池,或者當(dāng)緩存出現(xiàn)寫溢出時(shí),持久化處理模塊710將寫入緩存失敗的數(shù)據(jù)寫入本地文件池。持久化處理模塊710在將數(shù)據(jù)寫入本地文件池時(shí),具體執(zhí)行首先判斷本地文件池是否為空,如果是,則創(chuàng)建文件并將數(shù)據(jù)寫入創(chuàng)建的文件,直至文件被寫滿后,再創(chuàng)建新的文件進(jìn)行數(shù)據(jù)寫入,直至文件池已滿;否則,將數(shù)據(jù)寫入未滿的文件,直至文件被寫滿后,再創(chuàng)建新的文件進(jìn)行數(shù)據(jù)寫入,直至文件池已滿。即執(zhí)行如圖5所示流程。數(shù)據(jù)補(bǔ)償模塊720周期性地將本地文件池中的數(shù)據(jù)發(fā)送至目標(biāo)設(shè)備。具體執(zhí)行如圖6所示流程,在此不再贅述。本發(fā)明上述實(shí)施例以分布式數(shù)據(jù)中心中保證監(jiān)控管理中心數(shù)據(jù)完整性和可用性為例,需要說明的是,本發(fā)明提供的方法和裝置適用于任何通信設(shè)備和通信架構(gòu),來保證通信鏈路網(wǎng)絡(luò)帶寬不能滿足通信需求情況下保證數(shù)據(jù)的完整性和可用性,尤其分布式通信系統(tǒng),當(dāng)該裝置設(shè)置在中心設(shè)備中時(shí),對(duì)應(yīng)的目標(biāo)設(shè)備為分支設(shè)備;當(dāng)該裝置設(shè)置在分支設(shè)備中時(shí),對(duì)應(yīng)的目標(biāo)設(shè)備為中心設(shè)備。例如可以適用于地理信息系統(tǒng)(GIS)、智能交通、智能電力、智能安全、物聯(lián)網(wǎng)等領(lǐng)域。
      以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等 ,均應(yīng)包含在本發(fā)明保護(hù)的范圍之內(nèi)。
      權(quán)利要求
      1.一種高可靠性的數(shù)據(jù)通信方法,其特征在于,該方法包括 采用雙緩存技術(shù)使得讀寫操作在雙緩存中交錯(cuò)進(jìn)行,其中寫操作為將接收到的數(shù)據(jù)寫入緩存,讀操作為將緩存中的數(shù)據(jù)發(fā)送至目標(biāo)設(shè)備; 當(dāng)發(fā)送數(shù)據(jù)至目標(biāo)設(shè)備發(fā)生異常時(shí),將發(fā)送失敗的數(shù)據(jù)寫入本地文件池,或者當(dāng)緩存出現(xiàn)寫溢出時(shí),將寫入緩存失敗的數(shù)據(jù)寫入本地文件池; 周期性地將本地文件池中的數(shù)據(jù)發(fā)送至所述目標(biāo)設(shè)備。
      2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述采用雙緩存技術(shù)使得讀寫操作在雙緩存中交錯(cuò)進(jìn)行具體包括 當(dāng)標(biāo)識(shí)位為O時(shí),將接收到的數(shù)據(jù)寫入第一緩存,將第二緩存中的數(shù)據(jù)發(fā)送至目標(biāo)設(shè)備,當(dāng)?shù)诙彺嬷械臄?shù)據(jù)發(fā)送完成后,設(shè)置所述標(biāo)志位為I ; 當(dāng)標(biāo)志位為I時(shí),將接收到的數(shù)據(jù)寫入第二緩存,將第一緩存中的數(shù)據(jù)發(fā)送至目標(biāo)設(shè)備,當(dāng)?shù)谝痪彺嬷械臄?shù)據(jù)發(fā)送完成后,設(shè)置所述標(biāo)識(shí)位為O。
      3.根據(jù)權(quán)利要求1所述的方法,其特征在于,在將數(shù)據(jù)寫入本地文件池時(shí),具體執(zhí)行 首先判斷所述本地文件池是否為空,如果是,則創(chuàng)建文件并將數(shù)據(jù)寫入創(chuàng)建的文件,直至文件被寫滿后,再創(chuàng)建新的文件進(jìn)行數(shù)據(jù)寫入,直至文件池已滿;否則,將數(shù)據(jù)寫入未滿的文件,直至文件被寫滿后,再創(chuàng)建新的文件進(jìn)行數(shù)據(jù)寫入,直至文件池已滿。
      4.根據(jù)權(quán)利要求1所述的方法,其特征在于,周期性地將本地文件池中的數(shù)據(jù)發(fā)送至所述目標(biāo)設(shè)備具體包括 51、在文件發(fā)送周期中,判斷所述本地文件池是否為空,如果為空,則重新轉(zhuǎn)至執(zhí)行步驟SI,直至當(dāng)前文件發(fā)送周期結(jié)束;如果不為空,則執(zhí)行步驟S2 ; 52、獲取文件列表; 53、從列表中取出一個(gè)文件發(fā)送至所述目標(biāo)設(shè)備,并從本地文件池中刪除發(fā)送成功的文件;重新轉(zhuǎn)至執(zhí)行步驟S3,直至文件列表為空或當(dāng)前文件發(fā)送周期結(jié)束。
      5.根據(jù)權(quán)利要求1至4任一權(quán)項(xiàng)所述的方法,其特征在于,該方法適用于分布式通信系統(tǒng); 當(dāng)該方法由中心設(shè)備執(zhí)行時(shí),所述目標(biāo)設(shè)備為分支設(shè)備; 當(dāng)該方法由分支設(shè)備執(zhí)行時(shí),所述目標(biāo)設(shè)備為中心設(shè)備。
      6.一種高可靠性的數(shù)據(jù)通信裝置,其特征在于,該系統(tǒng)包括 雙緩存讀寫模塊,用于采用雙緩存技術(shù)使得讀寫操作在雙緩存中交錯(cuò)進(jìn)行,其中寫操作為將接收到的數(shù)據(jù)寫入緩存,讀操作為將緩存中的數(shù)據(jù)發(fā)送至目標(biāo)設(shè)備; 持久化處理模塊,用于當(dāng)發(fā)送數(shù)據(jù)至目標(biāo)設(shè)備發(fā)生異常時(shí),將發(fā)送失敗的數(shù)據(jù)寫入本地文件池,或者當(dāng)緩存出現(xiàn)寫溢出時(shí),將寫入緩存失敗的數(shù)據(jù)寫入本地文件池; 數(shù)據(jù)補(bǔ)償模塊,用于周期性地將本地文件池中的數(shù)據(jù)發(fā)送至所述目標(biāo)設(shè)備。
      7.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述雙緩存讀寫模塊具體包括 寫數(shù)據(jù)模塊,用于當(dāng)標(biāo)識(shí)位為O時(shí),將接收到的數(shù)據(jù)寫入第一緩存,當(dāng)標(biāo)識(shí)位為I時(shí),將接收到的數(shù)據(jù)寫入第二緩存; 讀數(shù)據(jù)模塊,用于當(dāng)標(biāo)識(shí)位為O時(shí),將第二緩存中的數(shù)據(jù)發(fā)送至目標(biāo)設(shè)備,當(dāng)標(biāo)志位為I時(shí),將第一緩存中的數(shù)據(jù)發(fā)送至目標(biāo)設(shè)備; 標(biāo)識(shí)位控制模塊,用于當(dāng)?shù)诙彺嬷械臄?shù)據(jù)發(fā)送完成后,設(shè)置所述標(biāo)志位為1,當(dāng)?shù)谝痪彺嬷械臄?shù)據(jù)發(fā)送完成后,設(shè)置所述標(biāo)識(shí)位為O。
      8.根據(jù)權(quán)利要求6所述的裝置,其特征在干,所述持久化處理模塊在將數(shù)據(jù)寫入本地文件池時(shí),具體執(zhí)行 首先判斷所述本地文件池是否為空,如果是,則創(chuàng)建文件并將數(shù)據(jù)寫入創(chuàng)建的文件,直至文件被寫滿后,再創(chuàng)建新的文件進(jìn)行數(shù)據(jù)寫入,直至文件池已滿;否則,將數(shù)據(jù)寫入未滿的文件,直至文件被寫滿后,再創(chuàng)建新的文件進(jìn)行數(shù)據(jù)寫入,直至文件池已滿。
      9.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述數(shù)據(jù)補(bǔ)償模塊具體執(zhí)行 51、在文件發(fā)送周期中,判斷所述本地文件池是否為空,如果為空,則重新轉(zhuǎn)至執(zhí)行操作SI,直至當(dāng)前文件發(fā)送周期結(jié)束;如果不為空,則執(zhí)行操作S2 ; 52、獲取文件列表; 53、從列表中取出一個(gè)文件發(fā)送至所述目標(biāo)設(shè)備,并從本地文件池中刪除發(fā)送成功的文件;重新轉(zhuǎn)至執(zhí)行操作S3,直至文件列表為空或當(dāng)前文件發(fā)送周期結(jié)束。
      10.根據(jù)權(quán)利要求6至9任ー權(quán)項(xiàng)所述的裝置,其特征在于,該裝置適用于分布式通信系統(tǒng); 當(dāng)該裝置設(shè)置在中心設(shè)備中時(shí),所述目標(biāo)設(shè)備為分支設(shè)備; 當(dāng)該裝置設(shè)置在分支設(shè)備中時(shí),所述目標(biāo)設(shè)備為中心設(shè)備。
      全文摘要
      本發(fā)明提供了一種高可靠性的數(shù)據(jù)通信方法和裝置,其中方法包括采用雙緩存技術(shù)使得讀寫操作在雙緩存中交錯(cuò)進(jìn)行,其中寫操作為將接收到的數(shù)據(jù)寫入緩存,讀操作為將緩存中的數(shù)據(jù)發(fā)送至目標(biāo)設(shè)備;當(dāng)發(fā)送數(shù)據(jù)至目標(biāo)設(shè)備發(fā)生異常時(shí),將發(fā)送失敗的數(shù)據(jù)寫入本地文件池,或者當(dāng)緩存出現(xiàn)寫溢出時(shí),將寫入緩存失敗的數(shù)據(jù)寫入本地文件池;周期性地將本地文件池中的數(shù)據(jù)發(fā)送至所述目標(biāo)設(shè)備。本發(fā)明采用數(shù)據(jù)持久化和數(shù)據(jù)補(bǔ)償兩種方式保證了目標(biāo)設(shè)備所接收數(shù)據(jù)的完整性和可用性,避免了因傳輸帶寬不夠或鏈路不穩(wěn)定所引起的數(shù)據(jù)丟失。
      文檔編號(hào)H04L29/08GK103051678SQ201210513190
      公開日2013年4月17日 申請日期2012年12月4日 優(yōu)先權(quán)日2012年12月4日
      發(fā)明者王衛(wèi)東, 謝朝陽 申請人:中國電信股份有限公司云計(jì)算分公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1