本發明涉及網(wang)絡技術領(ling)域,尤其涉及一種數據的同步方法和(he)裝置。
背景技術:
在現有技術中(zhong),為了實現服務器集群中(zhong)數據的一致性(xing),提出(chu)了以下兩種解決方案:
如圖1所(suo)示的(de)方(fang)案一:在服(fu)(fu)務器集群中增(zeng)加一個(ge)配置中心(xin),當其中一個(ge)服(fu)(fu)務器(發(fa)布者)獲取(qu)到數(shu)據(ju)(ju)(ju)并要將(jiang)所(suo)述(shu)數(shu)據(ju)(ju)(ju)同步(bu)到其他服(fu)(fu)務器(訂(ding)閱者)中時,所(suo)述(shu)服(fu)(fu)務器將(jiang)所(suo)述(shu)數(shu)據(ju)(ju)(ju)發(fa)送(song)到所(suo)述(shu)配置中心(xin),有所(suo)述(shu)配置中心(xin)向其他服(fu)(fu)務器發(fa)送(song)所(suo)述(shu)數(shu)據(ju)(ju)(ju),進而使其他服(fu)(fu)務器根據(ju)(ju)(ju)所(suo)述(shu)數(shu)據(ju)(ju)(ju)進行同步(bu)。
如(ru)圖2所(suo)(suo)(suo)(suo)示的方案二:所(suo)(suo)(suo)(suo)述(shu)(shu)(shu)(shu)服(fu)務(wu)(wu)器集群(qun)通過選舉算法選舉出(chu)一(yi)個(ge)發布者(zhe)(zhe)(zhe)master,其他服(fu)務(wu)(wu)器為訂(ding)閱(yue)者(zhe)(zhe)(zhe),選擇成功后,當(dang)需要(yao)讓(rang)所(suo)(suo)(suo)(suo)述(shu)(shu)(shu)(shu)服(fu)務(wu)(wu)器集群(qun)同(tong)(tong)步(bu)一(yi)個(ge)數據(ju)時,由所(suo)(suo)(suo)(suo)述(shu)(shu)(shu)(shu)master獲取所(suo)(suo)(suo)(suo)述(shu)(shu)(shu)(shu)數據(ju),再由所(suo)(suo)(suo)(suo)述(shu)(shu)(shu)(shu)master向訂(ding)閱(yue)者(zhe)(zhe)(zhe)發送需要(yao)同(tong)(tong)步(bu)的數據(ju),以(yi)使所(suo)(suo)(suo)(suo)述(shu)(shu)(shu)(shu)訂(ding)閱(yue)者(zhe)(zhe)(zhe)進(jin)行數據(ju)同(tong)(tong)步(bu),在訂(ding)閱(yue)者(zhe)(zhe)(zhe)同(tong)(tong)步(bu)成功后向master返(fan)回同(tong)(tong)步(bu)成功的消息,當(dang)所(suo)(suo)(suo)(suo)述(shu)(shu)(shu)(shu)master宕機后,所(suo)(suo)(suo)(suo)述(shu)(shu)(shu)(shu)服(fu)務(wu)(wu)器集群(qun)需要(yao)重進(jin)選舉master。
在實現(xian)(xian)本(ben)發明的過程中(zhong),發明人發現(xian)(xian)現(xian)(xian)有技術至(zhi)少存在如下問題:
方(fang)案一在同步(bu)(bu)(bu)數(shu)據(ju)時(shi)(shi)依賴第(di)三方(fang)設備,部署麻(ma)煩,可(ke)靠性(xing)不高,而(er)方(fang)案二中如果集(ji)群(qun)中的服務器數(shu)量較大(da)(da)(da)時(shi)(shi),訂閱者返回(hui)的同步(bu)(bu)(bu)成功的消(xiao)息數(shu)量也就(jiu)會(hui)(hui)越多,進而(er)使得(de)數(shu)據(ju)同步(bu)(bu)(bu)時(shi)(shi)的成本大(da)(da)(da)大(da)(da)(da)增加(jia),并(bing)且(qie)在master宕(dang)機后,重新選舉時(shi)(shi)也會(hui)(hui)增加(jia)數(shu)據(ju)同步(bu)(bu)(bu)時(shi)(shi)的成本。
技術實現要素:
本發明提供一種數據的(de)同步(bu)方(fang)法和(he)裝置,用于解決(jue)現有技術(shu)中依(yi)賴第(di)三方(fang)設備,部署麻(ma)煩(fan),可靠性不(bu)高的(de)問題;
本(ben)發明(ming)提供一種數(shu)據的同(tong)(tong)步方法和裝置,還用于解(jie)決現有技術中數(shu)據同(tong)(tong)步成本(ben)較高的問題(ti)。
本(ben)發明(ming)提供一種數據的同(tong)步(bu)方(fang)(fang)法,所(suo)述(shu)(shu)(shu)方(fang)(fang)法應用于(yu)包括第一終(zhong)端(duan)設備和第二終(zhong)端(duan)設備的系統(tong)中,其中,所(suo)述(shu)(shu)(shu)第一終(zhong)端(duan)設備和所(suo)述(shu)(shu)(shu)第二終(zhong)端(duan)設備的時間是同(tong)步(bu)的,所(suo)述(shu)(shu)(shu)第二終(zhong)端(duan)設備為多個,所(suo)述(shu)(shu)(shu)方(fang)(fang)法包括:
當第一終端設(she)備(bei)接(jie)(jie)收到數(shu)據時,所(suo)述第一終端設(she)備(bei)將(jiang)接(jie)(jie)收到所(suo)述數(shu)據的時間(jian)戳添加到所(suo)述數(shu)據中;
所(suo)述(shu)第一終(zhong)端(duan)設備將添加有所(suo)述(shu)時間戳的所(suo)述(shu)數(shu)據發送給所(suo)述(shu)第二(er)終(zhong)端(duan)設備,并保存添加有所(suo)述(shu)時間戳的所(suo)述(shu)數(shu)據;
所(suo)(suo)述(shu)(shu)第一(yi)終端(duan)設備(bei)(bei)接收所(suo)(suo)述(shu)(shu)第二終端(duan)設備(bei)(bei)根(gen)據(ju)(ju)(ju)添(tian)加有所(suo)(suo)述(shu)(shu)時間(jian)戳(chuo)的(de)所(suo)(suo)述(shu)(shu)數(shu)據(ju)(ju)(ju)反(fan)饋的(de)數(shu)據(ju)(ju)(ju),以使所(suo)(suo)述(shu)(shu)第一(yi)終端(duan)設備(bei)(bei)根(gen)據(ju)(ju)(ju)自(zi)身保(bao)存的(de)添(tian)加有所(suo)(suo)述(shu)(shu)時間(jian)戳(chuo)的(de)所(suo)(suo)述(shu)(shu)數(shu)據(ju)(ju)(ju)和所(suo)(suo)述(shu)(shu)反(fan)饋的(de)數(shu)據(ju)(ju)(ju)進(jin)行數(shu)據(ju)(ju)(ju)同步(bu)。
所(suo)述第一(yi)終端設備和所(suo)述第二(er)終端中相(xiang)同(tong)的數(shu)據(ju)具有相(xiang)同(tong)的數(shu)據(ju)標識(shi);
所(suo)述反饋的數據(ju)是(shi)所(suo)述第二終(zhong)端(duan)設(she)備(bei)根(gen)據(ju)具有相同所(suo)述數據(ju)標(biao)識(shi)的數據(ju)確定的時(shi)間戳最大(da)的數據(ju)。
所(suo)(suo)述(shu)(shu)第一終端設(she)備根據自身保(bao)存的添加有所(suo)(suo)述(shu)(shu)時間(jian)戳的所(suo)(suo)述(shu)(shu)數據和所(suo)(suo)述(shu)(shu)反饋的數據進行(xing)數據同(tong)步,具體(ti)為:
所述第(di)一終端設(she)備判斷具有相同(tong)所述數(shu)據標識的數(shu)據的數(shu)目之(zhi)和是否(fou)大于閾值;
當(dang)大(da)于所(suo)述(shu)(shu)閾值(zhi)時,所(suo)述(shu)(shu)第(di)一終(zhong)端設備確定出(chu)具有相同所(suo)述(shu)(shu)數(shu)據標(biao)識的數(shu)據中最(zui)大(da)時間戳對(dui)應(ying)的數(shu)據;
所述第一終端設備(bei)根(gen)據最大時間戳對應(ying)的數據進(jin)行(xing)數據同步。
所(suo)(suo)述(shu)(shu)第(di)一終端(duan)設(she)(she)備(bei)(bei)為保存(cun)添加有(you)(you)所(suo)(suo)述(shu)(shu)時間(jian)戳的(de)(de)所(suo)(suo)述(shu)(shu)數(shu)據(ju)設(she)(she)定生命(ming)周期,當所(suo)(suo)述(shu)(shu)第(di)一終端(duan)設(she)(she)備(bei)(bei)在所(suo)(suo)述(shu)(shu)生命(ming)周期內判(pan)斷出具有(you)(you)相(xiang)(xiang)同(tong)所(suo)(suo)述(shu)(shu)數(shu)據(ju)標識(shi)的(de)(de)數(shu)據(ju)的(de)(de)數(shu)目之和不大于所(suo)(suo)述(shu)(shu)閾值(zhi)時,所(suo)(suo)述(shu)(shu)第(di)一終端(duan)設(she)(she)備(bei)(bei)刪(shan)除具有(you)(you)相(xiang)(xiang)同(tong)所(suo)(suo)述(shu)(shu)數(shu)據(ju)標識(shi)的(de)(de)數(shu)據(ju)。
具有相同所述數(shu)據標識的數(shu)據中還攜帶(dai)有同步類型;
所述第一(yi)終端設備(bei)根據最大時間戳對應的數據進行數據同步,具體為(wei):
當(dang)最大(da)時(shi)間戳對應的數據(ju)(ju)中(zhong)的所(suo)述同(tong)步(bu)(bu)類型(xing)是同(tong)步(bu)(bu)數據(ju)(ju)時(shi),所(suo)述第一終(zhong)端(duan)設備(bei)根據(ju)(ju)最大(da)時(shi)間戳對應的數據(ju)(ju)進(jin)行(xing)數據(ju)(ju)同(tong)步(bu)(bu);
當最大時(shi)間(jian)戳對應(ying)的(de)數(shu)(shu)(shu)據(ju)(ju)中的(de)所述同(tong)步類(lei)型是同(tong)步刪除數(shu)(shu)(shu)據(ju)(ju)時(shi),所述第(di)一終端刪除最大時(shi)間(jian)戳對應(ying)的(de)數(shu)(shu)(shu)據(ju)(ju)中的(de)數(shu)(shu)(shu)據(ju)(ju)值,并根(gen)據(ju)(ju)刪除所述數(shu)(shu)(shu)據(ju)(ju)值的(de)最 大時(shi)間(jian)戳對應(ying)的(de)數(shu)(shu)(shu)據(ju)(ju)進行數(shu)(shu)(shu)據(ju)(ju)同(tong)步。
一種數(shu)據同(tong)(tong)步(bu)裝置(zhi),所(suo)(suo)述(shu)數(shu)據同(tong)(tong)步(bu)裝置(zhi)位于第(di)一終(zhong)端(duan)(duan)設(she)備(bei)(bei)(bei)(bei),應用于包括(kuo)所(suo)(suo)述(shu)第(di)一終(zhong)端(duan)(duan)設(she)備(bei)(bei)(bei)(bei)和(he)多個第(di)二終(zhong)端(duan)(duan)設(she)備(bei)(bei)(bei)(bei)的(de)系(xi)統中,其(qi)中,所(suo)(suo)述(shu)第(di)一終(zhong)端(duan)(duan)設(she)備(bei)(bei)(bei)(bei)和(he)所(suo)(suo)述(shu)第(di)二終(zhong)端(duan)(duan)設(she)備(bei)(bei)(bei)(bei)的(de)時間是(shi)同(tong)(tong)步(bu)的(de),所(suo)(suo)述(shu)數(shu)據同(tong)(tong)步(bu)裝置(zhi)包括(kuo):
添加模塊,當所述第一終端(duan)設備接收到(dao)數據時,用于將接收到(dao)所述數據的時間戳添加到(dao)所述數據中(zhong);
發(fa)送模塊,用于將添(tian)加有所述(shu)時間戳(chuo)的所述(shu)數據(ju)發(fa)送給(gei)所述(shu)第二(er)終端設備,并保存添(tian)加有所述(shu)時間戳(chuo)的所述(shu)數據(ju);
接收模塊,用于接收所(suo)述(shu)第二終端設(she)備根(gen)據(ju)添(tian)(tian)加有(you)所(suo)述(shu)時(shi)間戳(chuo)(chuo)的(de)(de)所(suo)述(shu)數(shu)據(ju)反饋(kui)的(de)(de)數(shu)據(ju),以使所(suo)述(shu)第一(yi)終端設(she)備中的(de)(de)同步模塊根(gen)據(ju)自身保存的(de)(de)添(tian)(tian)加有(you)所(suo)述(shu)時(shi)間戳(chuo)(chuo)的(de)(de)所(suo)述(shu)數(shu)據(ju)和(he)所(suo)述(shu)反饋(kui)的(de)(de)數(shu)據(ju)進行數(shu)據(ju)同步。
所(suo)述(shu)第一終端設備和(he)所(suo)述(shu)第二(er)終端中相(xiang)同(tong)的數據(ju)具有相(xiang)同(tong)的數據(ju)標(biao)識(shi);
所述(shu)(shu)反(fan)饋的(de)數(shu)(shu)據(ju)(ju)(ju)是(shi)所述(shu)(shu)第(di)二終端設備根據(ju)(ju)(ju)具有相同所述(shu)(shu)數(shu)(shu)據(ju)(ju)(ju)標識的(de)數(shu)(shu)據(ju)(ju)(ju)確定的(de)時(shi)間戳最(zui)大的(de)數(shu)(shu)據(ju)(ju)(ju)。
所述同步(bu)模塊(kuai)具體用于:
判斷具有相同所述數據標識的(de)數據的(de)數目之和是否大于閾值;
當大于所述(shu)閾(yu)值時,確定出具有相同所述(shu)數據標識的(de)數據中最大時間戳對應的(de)數據;
根據最(zui)大時間戳(chuo)對應的(de)數(shu)據進行數(shu)據同步。
所述添(tian)加模(mo)塊還(huan)用(yong)于(yu)為保存添(tian)加有所述時間(jian)戳的所述數據設(she)定生命周(zhou)期;
所述裝置還包括:
刪除模塊,當所述同(tong)(tong)步模塊在(zai)所述生命周(zhou)期內判斷出具(ju)有相同(tong)(tong)所述數(shu)據(ju)(ju)標識的(de)數(shu)據(ju)(ju)的(de)數(shu)目之和不大(da)于所述閾值時(shi),用于刪除具(ju)有相同(tong)(tong)所述數(shu)據(ju)(ju)標識的(de)數(shu)據(ju)(ju)。
具有相同所(suo)述數據標(biao)識的數據中還攜帶有同步(bu)類型;
所述(shu)同步模塊還具體用于:
當最大時間戳對(dui)應的(de)數據(ju)(ju)(ju)中的(de)所述同(tong)(tong)步類(lei)型是同(tong)(tong)步數據(ju)(ju)(ju)時,根據(ju)(ju)(ju)最大時間戳對(dui)應的(de)數據(ju)(ju)(ju)進行數據(ju)(ju)(ju)同(tong)(tong)步;
當最(zui)大(da)時間戳(chuo)對應的(de)數(shu)(shu)(shu)據(ju)(ju)(ju)中的(de)所述(shu)同步(bu)類(lei)型(xing)是同步(bu)刪(shan)(shan)除(chu)(chu)數(shu)(shu)(shu)據(ju)(ju)(ju)時,刪(shan)(shan)除(chu)(chu)最(zui)大(da)時間戳(chuo)對應的(de)數(shu)(shu)(shu)據(ju)(ju)(ju)中的(de)數(shu)(shu)(shu)據(ju)(ju)(ju)值(zhi),并根據(ju)(ju)(ju)刪(shan)(shan)除(chu)(chu)所述(shu)數(shu)(shu)(shu)據(ju)(ju)(ju)值(zhi)的(de)最(zui)大(da)時間戳(chuo)對應 的(de)數(shu)(shu)(shu)據(ju)(ju)(ju)進行數(shu)(shu)(shu)據(ju)(ju)(ju)同步(bu)。
一(yi)種數據同(tong)步方法,所(suo)述方法應用于包括(kuo)第一(yi)終(zhong)(zhong)端(duan)設(she)(she)備(bei)(bei)和第二終(zhong)(zhong)端(duan)設(she)(she)備(bei)(bei)的系統中,其中,所(suo)述第一(yi)終(zhong)(zhong)端(duan)設(she)(she)備(bei)(bei)和所(suo)述第二終(zhong)(zhong)端(duan)設(she)(she)備(bei)(bei)的時間是同(tong)步的,所(suo)述第二終(zhong)(zhong)端(duan)設(she)(she)備(bei)(bei)為(wei)多個,所(suo)述方法包括(kuo):
所(suo)述(shu)第(di)二(er)終(zhong)(zhong)端設(she)備(bei)接收所(suo)述(shu)第(di)一(yi)終(zhong)(zhong)端設(she)備(bei)發(fa)送的添加(jia)有時(shi)間戳的數據(ju)(ju)和(he)其(qi)他第(di)二(er)終(zhong)(zhong)端設(she)備(bei)發(fa)送的根據(ju)(ju)所(suo)述(shu)添加(jia)有時(shi)間戳的數據(ju)(ju)反饋的數據(ju)(ju);
所(suo)述第二終端設備根據(ju)(ju)添加有時(shi)間戳的(de)數(shu)據(ju)(ju)和所(suo)述反饋的(de)數(shu)據(ju)(ju)進行數(shu)據(ju)(ju)同步;
其(qi)中,所(suo)述(shu)(shu)時間戳是所(suo)述(shu)(shu)第(di)一(yi)終(zhong)端設備根據接(jie)收到所(suo)述(shu)(shu)數據的時間確(que)定的。
所述(shu)(shu)第一(yi)終端設備(bei)和所述(shu)(shu)第二終端中相(xiang)同的數據(ju)(ju)具有相(xiang)同的數據(ju)(ju)標識;
所述(shu)反饋的數據(ju)(ju)是(shi)其他所述(shu)第二終(zhong)端設備根據(ju)(ju)具有相同所述(shu)數據(ju)(ju)標識的數據(ju)(ju)確定的時間戳最大(da)的數據(ju)(ju)。
所(suo)述第(di)二(er)終端設備根據(ju)添加有時間(jian)戳的數(shu)據(ju)和(he)所(suo)述反饋的數(shu)據(ju)進行數(shu)據(ju)同步,具體為:
所述第二終端設(she)備判斷具有相同所述數據標識的數據的數目之和是否大于閾值;
當大(da)于所(suo)述閾值時(shi),所(suo)述第二終端設備確定出具有相同所(suo)述數據標識的數據中最大(da)時(shi)間戳對(dui)應的數據;
所(suo)述第(di)二終端設備根據最大時(shi)間戳對應的數據進(jin)行(xing)數據同步。
所(suo)(suo)(suo)述(shu)添加(jia)有(you)時間戳的(de)數(shu)據中攜帶(dai)有(you)所(suo)(suo)(suo)述(shu)第(di)一終端(duan)(duan)設(she)備(bei)(bei)為所(suo)(suo)(suo)述(shu)數(shu)據設(she)定生(sheng)命周(zhou)期,當(dang)所(suo)(suo)(suo)述(shu)第(di)二終端(duan)(duan)設(she)備(bei)(bei)在所(suo)(suo)(suo)述(shu)生(sheng)命周(zhou)期內判斷出具(ju)有(you)相同所(suo)(suo)(suo)述(shu)數(shu)據標(biao)識的(de)數(shu)據的(de)數(shu)目(mu)之(zhi)和不大于所(suo)(suo)(suo)述(shu)閾值時,所(suo)(suo)(suo)述(shu)第(di)二終端(duan)(duan)設(she)備(bei)(bei)刪除具(ju)有(you)相同所(suo)(suo)(suo)述(shu)數(shu)據標(biao)識的(de)數(shu)據。
具(ju)有(you)相同(tong)所述數據標識的數據中還攜(xie)帶有(you)同(tong)步類型;
所述第二終端設備根據(ju)(ju)最大時間(jian)戳對應的數據(ju)(ju)進行(xing)數據(ju)(ju)同步(bu),具體為(wei):
當最(zui)大(da)時(shi)間戳(chuo)對應(ying)的數(shu)據(ju)(ju)中(zhong)的所述(shu)同步類型是同步數(shu)據(ju)(ju)時(shi),所述(shu)第(di)二終(zhong)端設備根據(ju)(ju)最(zui)大(da)時(shi)間戳(chuo)對應(ying)的數(shu)據(ju)(ju)進(jin)行數(shu)據(ju)(ju)同步;
當最(zui)大時間(jian)(jian)戳(chuo)(chuo)對(dui)應(ying)的數(shu)據中的所(suo)述(shu)同(tong)步類型是同(tong)步刪(shan)除(chu)數(shu)據時,所(suo)述(shu)第(di)二終端刪(shan)除(chu)最(zui)大時間(jian)(jian)戳(chuo)(chuo)對(dui)應(ying)的數(shu)據中的數(shu)據值(zhi),并根(gen)據刪(shan)除(chu)所(suo)述(shu)數(shu)據值(zhi)的最(zui) 大時間(jian)(jian)戳(chuo)(chuo)對(dui)應(ying)的數(shu)據進行數(shu)據同(tong)步。
在所(suo)(suo)(suo)(suo)述第二終端設(she)備接收到(dao)所(suo)(suo)(suo)(suo)述第一(yi)終端設(she)備發(fa)送(song)的添加有(you)(you)時(shi)(shi)間戳的數(shu)據(ju)后,所(suo)(suo)(suo)(suo)述第二終端設(she)備將與(yu)所(suo)(suo)(suo)(suo)述添加有(you)(you)時(shi)(shi)間戳的數(shu)據(ju)的所(suo)(suo)(suo)(suo)述數(shu)據(ju)標識相同(tong)的數(shu)據(ju)中時(shi)(shi)間戳最大的數(shu)據(ju)發(fa)送(song)給所(suo)(suo)(suo)(suo)述第一(yi)終端設(she)備,以使所(suo)(suo)(suo)(suo)述第一(yi)終端設(she)備根據(ju)所(suo)(suo)(suo)(suo)述時(shi)(shi)間戳最大的數(shu)據(ju)進行數(shu)據(ju)同(tong)步。
一種(zhong)數據(ju)同步裝置(zhi),所(suo)述(shu)數據(ju)同步裝置(zhi)位于第二(er)(er)終(zhong)(zhong)端(duan)設備,應(ying)用于包括(kuo)(kuo)第一終(zhong)(zhong)端(duan)設備和多個(ge)所(suo)述(shu)第二(er)(er)終(zhong)(zhong)端(duan)設備的(de)(de)系統中(zhong),其中(zhong),所(suo)述(shu)第一終(zhong)(zhong)端(duan)設備和所(suo)述(shu)第二(er)(er)終(zhong)(zhong)端(duan)設備的(de)(de)時間(jian)是同步的(de)(de),所(suo)述(shu)數據(ju)同步裝置(zhi)包括(kuo)(kuo):
接收模塊,用于接收所述(shu)第(di)一(yi)終端(duan)設備發(fa)送的(de)(de)(de)(de)添(tian)加(jia)有時間(jian)戳的(de)(de)(de)(de)數(shu)據和(he)其他(ta)第(di)二終端(duan)設備發(fa)送的(de)(de)(de)(de)根據所述(shu)添(tian)加(jia)有時間(jian)戳的(de)(de)(de)(de)數(shu)據反饋(kui)的(de)(de)(de)(de)數(shu)據;
同(tong)步(bu)模塊,用(yong)于根據(ju)添(tian)加(jia)有時間(jian)戳的數(shu)(shu)據(ju)和所(suo)述反饋的數(shu)(shu)據(ju)進行(xing)數(shu)(shu)據(ju)同(tong)步(bu);
其(qi)中(zhong),所述(shu)時(shi)間戳是所述(shu)第(di)一終端設備根據接(jie)收到所述(shu)數(shu)據的時(shi)間確定的。
所述(shu)第一終(zhong)端(duan)設備和所述(shu)第二終(zhong)端(duan)中相(xiang)同的(de)數(shu)據具(ju)有相(xiang)同的(de)數(shu)據標識;
所(suo)(suo)述(shu)反饋的(de)數(shu)(shu)據是其(qi)他所(suo)(suo)述(shu)第二(er)終端(duan)設備根(gen)據具(ju)有相同(tong)所(suo)(suo)述(shu)數(shu)(shu)據標(biao)識(shi)的(de)數(shu)(shu)據確(que)定的(de)時間(jian)戳(chuo)最大的(de)數(shu)(shu)據。
所(suo)述同步模塊具(ju)體用于(yu):
判斷具(ju)有相同(tong)所述數(shu)據標識的數(shu)據的數(shu)目之和是否大(da)于閾值(zhi);
當大(da)于(yu)所述閾值(zhi)時,確定出具有(you)相同所述數(shu)據標識的數(shu)據中最大(da)時間戳對應的數(shu)據;
根據(ju)最大時間戳對應的(de)數據(ju)進行數據(ju)同步。
所(suo)(suo)述(shu)添(tian)加有時間戳的數據(ju)中攜帶有所(suo)(suo)述(shu)第一(yi)終端(duan)設(she)備(bei)為所(suo)(suo)述(shu)數據(ju)設(she)定生(sheng)命周(zhou)期(qi);
所述裝置還包括:
刪除模塊,當所述(shu)(shu)同步模塊在所述(shu)(shu)生(sheng)命(ming)周期內(nei)判斷出具(ju)有(you)相同所述(shu)(shu)數據標識的(de)數據的(de)數目之和不大于(yu)所述(shu)(shu)閾值時,用于(yu)刪除具(ju)有(you)相同所述(shu)(shu)數據標識的(de)數據。
具有相(xiang)同所述數據標識的(de)數據中還攜帶有同步類型;
所述同步模塊還具體用于:
當最大時(shi)(shi)間戳(chuo)對應的(de)數據(ju)中的(de)所述同步類(lei)型是(shi)同步數據(ju)時(shi)(shi),根據(ju)最大時(shi)(shi)間戳(chuo)對應的(de)數據(ju)進(jin)行數據(ju)同步;
當最大時(shi)間戳對(dui)應的(de)數(shu)(shu)據(ju)中的(de)所述同(tong)步類型是同(tong)步刪除(chu)數(shu)(shu)據(ju)時(shi),刪除(chu)最大時(shi)間戳對(dui)應的(de)數(shu)(shu)據(ju)中的(de)數(shu)(shu)據(ju)值,并根據(ju)刪除(chu)所述數(shu)(shu)據(ju)值的(de)最大時(shi)間戳對(dui)應的(de)數(shu)(shu)據(ju)進行(xing)數(shu)(shu)據(ju)同(tong)步。
所述裝置還包括:
發(fa)送(song)模塊,在所(suo)述(shu)接(jie)收模塊接(jie)收到所(suo)述(shu)第一終(zhong)(zhong)端設備發(fa)送(song)的(de)添加有時(shi)(shi)間戳(chuo)(chuo)的(de)數(shu)(shu)據(ju)(ju)后,用于將(jiang)與所(suo)述(shu)添加有時(shi)(shi)間戳(chuo)(chuo)的(de)數(shu)(shu)據(ju)(ju)的(de)所(suo)述(shu)數(shu)(shu)據(ju)(ju)標(biao)識(shi)相同的(de)數(shu)(shu)據(ju)(ju)中時(shi)(shi)間戳(chuo)(chuo)最大(da)的(de)數(shu)(shu)據(ju)(ju)發(fa)送(song)給所(suo)述(shu)第一終(zhong)(zhong)端設備,以使所(suo)述(shu)第一終(zhong)(zhong)端設備根據(ju)(ju)所(suo)述(shu)時(shi)(shi)間戳(chuo)(chuo)最大(da)的(de)數(shu)(shu)據(ju)(ju)進行數(shu)(shu)據(ju)(ju)同步。
本發(fa)(fa)(fa)明(ming)中當第一終(zhong)端(duan)(duan)(duan)設(she)(she)(she)備(bei)接(jie)收到(dao)數(shu)(shu)(shu)(shu)據(ju)(ju)時(shi)(shi)(shi)(shi)(shi),在所(suo)述(shu)(shu)數(shu)(shu)(shu)(shu)據(ju)(ju)中添加時(shi)(shi)(shi)(shi)(shi)間戳并(bing)保存,然后將添加有(you)時(shi)(shi)(shi)(shi)(shi)間戳的(de)(de)(de)(de)數(shu)(shu)(shu)(shu)據(ju)(ju)發(fa)(fa)(fa)送給(gei)第二終(zhong)端(duan)(duan)(duan)設(she)(she)(she)備(bei),所(suo)述(shu)(shu)第一終(zhong)端(duan)(duan)(duan)設(she)(she)(she)備(bei)接(jie)收所(suo)述(shu)(shu)第二終(zhong)端(duan)(duan)(duan)設(she)(she)(she)備(bei)根(gen)據(ju)(ju)添加有(you)所(suo)述(shu)(shu)時(shi)(shi)(shi)(shi)(shi)間戳的(de)(de)(de)(de)所(suo)述(shu)(shu)數(shu)(shu)(shu)(shu)據(ju)(ju)反饋的(de)(de)(de)(de)數(shu)(shu)(shu)(shu)據(ju)(ju),并(bing)根(gen)據(ju)(ju)自(zi)(zi)身保存的(de)(de)(de)(de)添加有(you)所(suo)述(shu)(shu)時(shi)(shi)(shi)(shi)(shi)間戳的(de)(de)(de)(de)所(suo)述(shu)(shu)數(shu)(shu)(shu)(shu)據(ju)(ju)和(he)所(suo)述(shu)(shu)反饋的(de)(de)(de)(de)數(shu)(shu)(shu)(shu)據(ju)(ju)進(jin)行數(shu)(shu)(shu)(shu)據(ju)(ju)同步(bu)(bu),本發(fa)(fa)(fa)明(ming)在不借(jie)助第三方(fang)設(she)(she)(she)備(bei)和(he)選舉發(fa)(fa)(fa)送數(shu)(shu)(shu)(shu)據(ju)(ju)設(she)(she)(she)備(bei)的(de)(de)(de)(de)情況(kuang)下實現了終(zhong)端(duan)(duan)(duan)設(she)(she)(she)備(bei)集群的(de)(de)(de)(de)數(shu)(shu)(shu)(shu)據(ju)(ju)同步(bu)(bu),降低了數(shu)(shu)(shu)(shu)據(ju)(ju)同步(bu)(bu)時(shi)(shi)(shi)(shi)(shi)的(de)(de)(de)(de)成本,并(bing)且集群中的(de)(de)(de)(de)終(zhong)端(duan)(duan)(duan)設(she)(she)(she)備(bei)是根(gen)據(ju)(ju)自(zi)(zi)身得到(dao)的(de)(de)(de)(de)數(shu)(shu)(shu)(shu)據(ju)(ju)來進(jin)行同步(bu)(bu),保證了數(shu)(shu)(shu)(shu)據(ju)(ju)同步(bu)(bu)時(shi)(shi)(shi)(shi)(shi)的(de)(de)(de)(de)可靠(kao)性(xing)。
附圖說明
為了更(geng)清楚地說明本發明實施(shi)(shi)例或現有(you)技(ji)(ji)術(shu)(shu)中(zhong)的技(ji)(ji)術(shu)(shu)方案,下面(mian)將對實施(shi)(shi)例或現有(you)技(ji)(ji)術(shu)(shu)描(miao)述中(zhong)所需要使用的附(fu)圖(tu)(tu)作一(yi)(yi)簡單地介紹,顯而(er)易見地,下面(mian)描(miao)述中(zhong)的附(fu)圖(tu)(tu)是本發明的一(yi)(yi)些(xie)(xie)實施(shi)(shi)例,對于(yu)本領域普通技(ji)(ji)術(shu)(shu)人員(yuan)來講(jiang),在不(bu)付出創造性(xing)勞(lao)動性(xing)的前(qian)提下,還可(ke)以(yi)根據這些(xie)(xie)附(fu)圖(tu)(tu)獲(huo)得其(qi)他的附(fu)圖(tu)(tu)。
圖1為現有(you)技術中的一種(zhong)依靠第三方設備進行(xing)數據(ju)同步的流程示(shi)意(yi)圖;
圖2為現(xian)有技術中(zhong)的一種通過選舉發布者進行(xing)數(shu)據(ju)同步(bu)的流程示意(yi)圖;
圖3為本(ben)發明實施例中的一種數據的同步方法流程圖之(zhi)一;
圖(tu)4為本發明實(shi)施例中的(de)一(yi)種數據的(de)同步方法流程(cheng)圖(tu)之二;
圖(tu)5為本發(fa)明實施例中的一種數據(ju)發(fa)布時(shi)的同步方法流(liu)程示意圖(tu);
圖6為本發明實施(shi)例中的一種數據同步裝置結構示意圖之一;
圖7為本發明(ming)實(shi)施例中的一種數據同步裝(zhuang)置結構示意圖之二。
具體實施方式
為使本發(fa)明(ming)實(shi)(shi)施(shi)(shi)(shi)(shi)(shi)例的(de)(de)(de)目的(de)(de)(de)、技術方(fang)案和優點更加清(qing)楚(chu),下面將結合本發(fa)明(ming)實(shi)(shi)施(shi)(shi)(shi)(shi)(shi)例中的(de)(de)(de)附圖,對本發(fa)明(ming)實(shi)(shi)施(shi)(shi)(shi)(shi)(shi)例中的(de)(de)(de)技術方(fang)案進行清(qing)楚(chu)、完整地描述,顯然,所描述的(de)(de)(de)實(shi)(shi)施(shi)(shi)(shi)(shi)(shi)例是本發(fa)明(ming)一部分實(shi)(shi)施(shi)(shi)(shi)(shi)(shi)例,而不(bu)是全部的(de)(de)(de)實(shi)(shi)施(shi)(shi)(shi)(shi)(shi)例。基于(yu)本發(fa)明(ming)中的(de)(de)(de)實(shi)(shi)施(shi)(shi)(shi)(shi)(shi)例,本領(ling)域普通(tong)技術人員在沒(mei)有作出創造性勞動前提(ti)下所獲得的(de)(de)(de)所有其他實(shi)(shi)施(shi)(shi)(shi)(shi)(shi)例,都屬于(yu)本發(fa)明(ming)保護(hu)的(de)(de)(de)范圍。
在現(xian)有技(ji)術中(zhong),由于(yu)依(yi)靠第(di)三方(fang)設(she)備(bei)(bei)來實現(xian)同(tong)步數據(ju)的(de)(de)方(fang)案存在部署麻煩(fan),可靠性不高的(de)(de)缺(que)陷,依(yi)靠選舉數據(ju)發布(bu)者的(de)(de)方(fang)案存在增加(jia)數據(ju)同(tong)步成本(ben)的(de)(de)缺(que)陷,因此本(ben)申(shen)請提出了一種數據(ju)的(de)(de)同(tong)步方(fang)法(fa),具體如(ru)圖3所(suo)示,所(suo)述方(fang)法(fa)應(ying)用于(yu)包括第(di)一終(zhong)(zhong)(zhong)端(duan)設(she)備(bei)(bei)和(he)第(di)二終(zhong)(zhong)(zhong)端(duan)設(she)備(bei)(bei)的(de)(de)系統中(zhong),其中(zhong),所(suo)述第(di)一終(zhong)(zhong)(zhong)端(duan)設(she)備(bei)(bei)和(he)所(suo)述第(di)二終(zhong)(zhong)(zhong)端(duan)設(she)備(bei)(bei)的(de)(de)時(shi)間是同(tong)步的(de)(de),所(suo)述第(di)二終(zhong)(zhong)(zhong)端(duan)設(she)備(bei)(bei)為多(duo)個,所(suo)述方(fang)法(fa)包括以下步驟:
步驟301,當第(di)一(yi)終(zhong)端(duan)設備接收到數據(ju)時(shi),所(suo)述第(di)一(yi)終(zhong)端(duan)設備將接收到所(suo)述數據(ju)的時(shi)間戳添加到所(suo)述數據(ju)中。
具(ju)體的(de)(de),所(suo)述第(di)(di)一(yi)(yi)(yi)終(zhong)(zhong)(zhong)(zhong)(zhong)(zhong)端(duan)(duan)(duan)(duan)(duan)(duan)設(she)(she)(she)(she)(she)(she)(she)(she)(she)備(bei)(bei)(bei)(bei)(bei)(bei)(bei)和所(suo)述第(di)(di)二(er)終(zhong)(zhong)(zhong)(zhong)(zhong)(zhong)端(duan)(duan)(duan)(duan)(duan)(duan)的(de)(de)時(shi)(shi)間(jian)(jian)(jian)是(shi)(shi)(shi)同步的(de)(de)是(shi)(shi)(shi)為了實(shi)現集(ji)群中的(de)(de)終(zhong)(zhong)(zhong)(zhong)(zhong)(zhong)端(duan)(duan)(duan)(duan)(duan)(duan)設(she)(she)(she)(she)(she)(she)(she)(she)(she)備(bei)(bei)(bei)(bei)(bei)(bei)(bei)時(shi)(shi)間(jian)(jian)(jian)上的(de)(de)統(tong)一(yi)(yi)(yi)性,保證(zheng)在第(di)(di)一(yi)(yi)(yi)終(zhong)(zhong)(zhong)(zhong)(zhong)(zhong)端(duan)(duan)(duan)(duan)(duan)(duan)設(she)(she)(she)(she)(she)(she)(she)(she)(she)備(bei)(bei)(bei)(bei)(bei)(bei)(bei)為數(shu)(shu)據(ju)添加時(shi)(shi)間(jian)(jian)(jian)戳時(shi)(shi)具(ju)有(you)相同的(de)(de)時(shi)(shi)間(jian)(jian)(jian)基礎,進而保證(zheng)了在集(ji)群中的(de)(de)終(zhong)(zhong)(zhong)(zhong)(zhong)(zhong)端(duan)(duan)(duan)(duan)(duan)(duan)設(she)(she)(she)(she)(she)(she)(she)(she)(she)備(bei)(bei)(bei)(bei)(bei)(bei)(bei)能夠正(zheng)確(que)的(de)(de)確(que)定(ding)出相同的(de)(de)且時(shi)(shi)間(jian)(jian)(jian)戳最大的(de)(de)數(shu)(shu)據(ju)。其中,所(suo)述第(di)(di)一(yi)(yi)(yi)終(zhong)(zhong)(zhong)(zhong)(zhong)(zhong)端(duan)(duan)(duan)(duan)(duan)(duan)設(she)(she)(she)(she)(she)(she)(she)(she)(she)備(bei)(bei)(bei)(bei)(bei)(bei)(bei)為接(jie)收數(shu)(shu)據(ju)的(de)(de)設(she)(she)(she)(she)(she)(she)(she)(she)(she)備(bei)(bei)(bei)(bei)(bei)(bei)(bei),所(suo)述第(di)(di)一(yi)(yi)(yi)終(zhong)(zhong)(zhong)(zhong)(zhong)(zhong)端(duan)(duan)(duan)(duan)(duan)(duan)設(she)(she)(she)(she)(she)(she)(she)(she)(she)備(bei)(bei)(bei)(bei)(bei)(bei)(bei)應不(bu)是(shi)(shi)(shi)集(ji)群中的(de)(de)一(yi)(yi)(yi)個(ge)固定(ding)設(she)(she)(she)(she)(she)(she)(she)(she)(she)備(bei)(bei)(bei)(bei)(bei)(bei)(bei),是(shi)(shi)(shi)根據(ju)集(ji)群中接(jie)收數(shu)(shu)據(ju)的(de)(de)設(she)(she)(she)(she)(she)(she)(she)(she)(she)備(bei)(bei)(bei)(bei)(bei)(bei)(bei)確(que)定(ding)的(de)(de),所(suo)述數(shu)(shu)據(ju)是(shi)(shi)(shi)集(ji)群之(zhi)外(wai)的(de)(de)設(she)(she)(she)(she)(she)(she)(she)(she)(she)備(bei)(bei)(bei)(bei)(bei)(bei)(bei)發(fa)送(song)的(de)(de)。例如(ru):集(ji)群中有(you)3個(ge)終(zhong)(zhong)(zhong)(zhong)(zhong)(zhong)端(duan)(duan)(duan)(duan)(duan)(duan)設(she)(she)(she)(she)(she)(she)(she)(she)(she)備(bei)(bei)(bei)(bei)(bei)(bei)(bei),分別(bie)(bie)為設(she)(she)(she)(she)(she)(she)(she)(she)(she)備(bei)(bei)(bei)(bei)(bei)(bei)(bei)1、設(she)(she)(she)(she)(she)(she)(she)(she)(she)備(bei)(bei)(bei)(bei)(bei)(bei)(bei)2和設(she)(she)(she)(she)(she)(she)(she)(she)(she)備(bei)(bei)(bei)(bei)(bei)(bei)(bei)3,當(dang)設(she)(she)(she)(she)(she)(she)(she)(she)(she)備(bei)(bei)(bei)(bei)(bei)(bei)(bei)1接(jie)收到(dao)客(ke)戶(hu)端(duan)(duan)(duan)(duan)(duan)(duan)發(fa)送(song)的(de)(de)數(shu)(shu)據(ju)時(shi)(shi),此時(shi)(shi)設(she)(she)(she)(she)(she)(she)(she)(she)(she)備(bei)(bei)(bei)(bei)(bei)(bei)(bei)1為第(di)(di)一(yi)(yi)(yi)終(zhong)(zhong)(zhong)(zhong)(zhong)(zhong)端(duan)(duan)(duan)(duan)(duan)(duan)設(she)(she)(she)(she)(she)(she)(she)(she)(she)備(bei)(bei)(bei)(bei)(bei)(bei)(bei),如(ru)果(guo)是(shi)(shi)(shi)設(she)(she)(she)(she)(she)(she)(she)(she)(she)備(bei)(bei)(bei)(bei)(bei)(bei)(bei)2接(jie)收到(dao)客(ke)戶(hu)端(duan)(duan)(duan)(duan)(duan)(duan)發(fa)送(song)的(de)(de)數(shu)(shu)據(ju)時(shi)(shi),此時(shi)(shi)設(she)(she)(she)(she)(she)(she)(she)(she)(she)備(bei)(bei)(bei)(bei)(bei)(bei)(bei)2為第(di)(di)一(yi)(yi)(yi)終(zhong)(zhong)(zhong)(zhong)(zhong)(zhong)端(duan)(duan)(duan)(duan)(duan)(duan)設(she)(she)(she)(she)(she)(she)(she)(she)(she)備(bei)(bei)(bei)(bei)(bei)(bei)(bei)。同理,第(di)(di)二(er)終(zhong)(zhong)(zhong)(zhong)(zhong)(zhong)端(duan)(duan)(duan)(duan)(duan)(duan)設(she)(she)(she)(she)(she)(she)(she)(she)(she)備(bei)(bei)(bei)(bei)(bei)(bei)(bei)是(shi)(shi)(shi)集(ji)群中除第(di)(di)一(yi)(yi)(yi)終(zhong)(zhong)(zhong)(zhong)(zhong)(zhong)端(duan)(duan)(duan)(duan)(duan)(duan)設(she)(she)(she)(she)(she)(she)(she)(she)(she)備(bei)(bei)(bei)(bei)(bei)(bei)(bei)之(zhi)外(wai)的(de)(de)其他終(zhong)(zhong)(zhong)(zhong)(zhong)(zhong)端(duan)(duan)(duan)(duan)(duan)(duan)設(she)(she)(she)(she)(she)(she)(she)(she)(she)備(bei)(bei)(bei)(bei)(bei)(bei)(bei),所(suo)述第(di)(di)二(er)終(zhong)(zhong)(zhong)(zhong)(zhong)(zhong)端(duan)(duan)(duan)(duan)(duan)(duan)設(she)(she)(she)(she)(she)(she)(she)(she)(she)備(bei)(bei)(bei)(bei)(bei)(bei)(bei)是(shi)(shi)(shi)集(ji)群中接(jie)收所(suo)述第(di)(di)一(yi)(yi)(yi)終(zhong)(zhong)(zhong)(zhong)(zhong)(zhong)端(duan)(duan)(duan)(duan)(duan)(duan)設(she)(she)(she)(she)(she)(she)(she)(she)(she)備(bei)(bei)(bei)(bei)(bei)(bei)(bei)發(fa)送(song)的(de)(de)數(shu)(shu)據(ju)的(de)(de)設(she)(she)(she)(she)(she)(she)(she)(she)(she)備(bei)(bei)(bei)(bei)(bei)(bei)(bei),例如(ru):集(ji)群中有(you)3個(ge)終(zhong)(zhong)(zhong)(zhong)(zhong)(zhong)端(duan)(duan)(duan)(duan)(duan)(duan)設(she)(she)(she)(she)(she)(she)(she)(she)(she)備(bei)(bei)(bei)(bei)(bei)(bei)(bei),分別(bie)(bie)為設(she)(she)(she)(she)(she)(she)(she)(she)(she)備(bei)(bei)(bei)(bei)(bei)(bei)(bei)1、設(she)(she)(she)(she)(she)(she)(she)(she)(she)備(bei)(bei)(bei)(bei)(bei)(bei)(bei)2和設(she)(she)(she)(she)(she)(she)(she)(she)(she)備(bei)(bei)(bei)(bei)(bei)(bei)(bei)3,當(dang)設(she)(she)(she)(she)(she)(she)(she)(she)(she)備(bei)(bei)(bei)(bei)(bei)(bei)(bei)1為第(di)(di)一(yi)(yi)(yi)終(zhong)(zhong)(zhong)(zhong)(zhong)(zhong)端(duan)(duan)(duan)(duan)(duan)(duan)設(she)(she)(she)(she)(she)(she)(she)(she)(she)備(bei)(bei)(bei)(bei)(bei)(bei)(bei)時(shi)(shi),設(she)(she)(she)(she)(she)(she)(she)(she)(she)備(bei)(bei)(bei)(bei)(bei)(bei)(bei)2和設(she)(she)(she)(she)(she)(she)(she)(she)(she)備(bei)(bei)(bei)(bei)(bei)(bei)(bei)3為第(di)(di)二(er)終(zhong)(zhong)(zhong)(zhong)(zhong)(zhong)端(duan)(duan)(duan)(duan)(duan)(duan)設(she)(she)(she)(she)(she)(she)(she)(she)(she)備(bei)(bei)(bei)(bei)(bei)(bei)(bei),當(dang)設(she)(she)(she)(she)(she)(she)(she)(she)(she)備(bei)(bei)(bei)(bei)(bei)(bei)(bei)2為第(di)(di)一(yi)(yi)(yi)終(zhong)(zhong)(zhong)(zhong)(zhong)(zhong)端(duan)(duan)(duan)(duan)(duan)(duan)設(she)(she)(she)(she)(she)(she)(she)(she)(she)備(bei)(bei)(bei)(bei)(bei)(bei)(bei)時(shi)(shi),設(she)(she)(she)(she)(she)(she)(she)(she)(she)備(bei)(bei)(bei)(bei)(bei)(bei)(bei)1和設(she)(she)(she)(she)(she)(she)(she)(she)(she)備(bei)(bei)(bei)(bei)(bei)(bei)(bei)3為第(di)(di)二(er)終(zhong)(zhong)(zhong)(zhong)(zhong)(zhong)端(duan)(duan)(duan)(duan)(duan)(duan)設(she)(she)(she)(she)(she)(she)(she)(she)(she)備(bei)(bei)(bei)(bei)(bei)(bei)(bei)。
步驟302,所(suo)(suo)(suo)(suo)述(shu)(shu)第一(yi)終(zhong)端設備將添(tian)(tian)加(jia)有所(suo)(suo)(suo)(suo)述(shu)(shu)時(shi)間(jian)戳的所(suo)(suo)(suo)(suo)述(shu)(shu)數(shu)據發送(song)給所(suo)(suo)(suo)(suo)述(shu)(shu)第二(er)終(zhong)端設備,并保(bao)存添(tian)(tian)加(jia)有所(suo)(suo)(suo)(suo)述(shu)(shu)時(shi)間(jian)戳的所(suo)(suo)(suo)(suo)述(shu)(shu)數(shu)據。
具體的(de),所述(shu)第一終端設(she)備保(bao)存添(tian)加有所述(shu)時間戳(chuo)的(de)所述(shu)數(shu)據(ju)是(shi)為了在后(hou)續(xu)進行(xing)數(shu)據(ju)同步(bu)。
步驟303,所(suo)述第(di)一終端(duan)設備接收(shou)所(suo)述第(di)二終端(duan)設備根(gen)據(ju)添(tian)加有(you)所(suo)述時間(jian)戳的所(suo)述數據(ju)反饋(kui)的數據(ju),以使(shi)所(suo)述第(di)一終端(duan)設備根(gen)據(ju)自身保存的添(tian)加有(you)所(suo)述時間(jian)戳的所(suo)述數據(ju)和所(suo)述反饋(kui)的數據(ju)進行數據(ju)同步。
其(qi)中(zhong),所(suo)述(shu)(shu)第一終(zhong)端設備和所(suo)述(shu)(shu)第二終(zhong)端中(zhong)相同(tong)的數(shu)據具(ju)有相同(tong)的數(shu)據標識;
所述反(fan)饋的數據是所述第二(er)終端設備根據具有相同所述數據標識的數據確定的時間戳最(zui)大的數據。
具體的(de)(de)(de)(de)(de),在集(ji)群(qun)(qun)(qun)中(zhong)的(de)(de)(de)(de)(de)終端設備(bei)接(jie)收到的(de)(de)(de)(de)(de)集(ji)群(qun)(qun)(qun)之外的(de)(de)(de)(de)(de)設備(bei)發(fa)送的(de)(de)(de)(de)(de)數(shu)(shu)據(ju)(ju)中(zhong)攜(xie)帶(dai)有數(shu)(shu)據(ju)(ju)標(biao)(biao)識(shi),并且(qie)集(ji)群(qun)(qun)(qun)之外的(de)(de)(de)(de)(de)設備(bei)發(fa)送的(de)(de)(de)(de)(de)同(tong)(tong)一數(shu)(shu)據(ju)(ju)的(de)(de)(de)(de)(de)數(shu)(shu)據(ju)(ju)標(biao)(biao)識(shi)是相(xiang)同(tong)(tong)的(de)(de)(de)(de)(de),其中(zhong),同(tong)(tong)一數(shu)(shu)據(ju)(ju)可能在不同(tong)(tong)時間(jian)發(fa)送,集(ji)群(qun)(qun)(qun)是根(gen)據(ju)(ju)接(jie)收到的(de)(de)(de)(de)(de)數(shu)(shu)據(ju)(ju)進行同(tong)(tong)步的(de)(de)(de)(de)(de),因此集(ji)群(qun)(qun)(qun)中(zhong)的(de)(de)(de)(de)(de)設備(bei)中(zhong)可能存(cun)在與當前接(jie)收到的(de)(de)(de)(de)(de)數(shu)(shu)據(ju)(ju)的(de)(de)(de)(de)(de)數(shu)(shu)據(ju)(ju)標(biao)(biao)識(shi)相(xiang)同(tong)(tong)的(de)(de)(de)(de)(de)數(shu)(shu)據(ju)(ju),所述存(cun)在數(shu)(shu)據(ju)(ju)標(biao)(biao)識(shi)相(xiang)同(tong)(tong)的(de)(de)(de)(de)(de)數(shu)(shu)據(ju)(ju)中(zhong)同(tong)(tong)樣存(cun)在集(ji)群(qun)(qun)(qun)中(zhong)的(de)(de)(de)(de)(de)設備(bei)接(jie)收到所述數(shu)(shu)據(ju)(ju)的(de)(de)(de)(de)(de)時間(jian)戳。
所(suo)(suo)述(shu)第(di)(di)(di)(di)二(er)(er)終(zhong)端(duan)(duan)(duan)設(she)備(bei)(bei)中(zhong)可能存在與(yu)所(suo)(suo)述(shu)數(shu)(shu)(shu)(shu)(shu)(shu)據(ju)(ju)相(xiang)同的(de)(de)(de)(de)(de)(de)數(shu)(shu)(shu)(shu)(shu)(shu)據(ju)(ju)標(biao)識(shi)(shi),因此(ci)(ci)在所(suo)(suo)述(shu)第(di)(di)(di)(di)二(er)(er)終(zhong)端(duan)(duan)(duan)設(she)備(bei)(bei)接收(shou)到添加(jia)有所(suo)(suo)述(shu)時(shi)(shi)(shi)間(jian)戳(chuo)(chuo)(chuo)的(de)(de)(de)(de)(de)(de)所(suo)(suo)述(shu)數(shu)(shu)(shu)(shu)(shu)(shu)據(ju)(ju)時(shi)(shi)(shi),所(suo)(suo)述(shu)第(di)(di)(di)(di)二(er)(er)終(zhong)端(duan)(duan)(duan)設(she)備(bei)(bei)需要根(gen)據(ju)(ju)添加(jia)所(suo)(suo)述(shu)時(shi)(shi)(shi)間(jian)戳(chuo)(chuo)(chuo)的(de)(de)(de)(de)(de)(de)所(suo)(suo)述(shu)數(shu)(shu)(shu)(shu)(shu)(shu)據(ju)(ju)的(de)(de)(de)(de)(de)(de)數(shu)(shu)(shu)(shu)(shu)(shu)據(ju)(ju)標(biao)識(shi)(shi)確定(ding)出(chu)(chu)所(suo)(suo)述(shu)第(di)(di)(di)(di)二(er)(er)終(zhong)端(duan)(duan)(duan)中(zhong)存在相(xiang)同數(shu)(shu)(shu)(shu)(shu)(shu)據(ju)(ju)標(biao)識(shi)(shi)的(de)(de)(de)(de)(de)(de)數(shu)(shu)(shu)(shu)(shu)(shu)據(ju)(ju),然后(hou),所(suo)(suo)述(shu)第(di)(di)(di)(di)二(er)(er)終(zhong)端(duan)(duan)(duan)設(she)備(bei)(bei)根(gen)據(ju)(ju)具有相(xiang)同數(shu)(shu)(shu)(shu)(shu)(shu)據(ju)(ju)標(biao)識(shi)(shi)的(de)(de)(de)(de)(de)(de)數(shu)(shu)(shu)(shu)(shu)(shu)據(ju)(ju)確定(ding)出(chu)(chu)時(shi)(shi)(shi)間(jian)戳(chuo)(chuo)(chuo)最(zui)(zui)大(da)(da)的(de)(de)(de)(de)(de)(de)數(shu)(shu)(shu)(shu)(shu)(shu)據(ju)(ju),此(ci)(ci)時(shi)(shi)(shi)確定(ding)出(chu)(chu)的(de)(de)(de)(de)(de)(de)數(shu)(shu)(shu)(shu)(shu)(shu)據(ju)(ju)為集群(qun)最(zui)(zui)新(xin)接收(shou)到的(de)(de)(de)(de)(de)(de)數(shu)(shu)(shu)(shu)(shu)(shu)據(ju)(ju),需要以(yi)此(ci)(ci)為數(shu)(shu)(shu)(shu)(shu)(shu)據(ju)(ju)同步(bu)的(de)(de)(de)(de)(de)(de)依據(ju)(ju),并將確定(ding)出(chu)(chu)的(de)(de)(de)(de)(de)(de)時(shi)(shi)(shi)間(jian)戳(chuo)(chuo)(chuo)最(zui)(zui)大(da)(da)的(de)(de)(de)(de)(de)(de)數(shu)(shu)(shu)(shu)(shu)(shu)據(ju)(ju)作(zuo)為反饋(kui)數(shu)(shu)(shu)(shu)(shu)(shu)據(ju)(ju)反饋(kui)給所(suo)(suo)述(shu)第(di)(di)(di)(di)一(yi)終(zhong)端(duan)(duan)(duan)設(she)備(bei)(bei),在所(suo)(suo)述(shu)第(di)(di)(di)(di)一(yi)終(zhong)端(duan)(duan)(duan)設(she)備(bei)(bei)接收(shou)到集群(qun)中(zhong)的(de)(de)(de)(de)(de)(de)第(di)(di)(di)(di)二(er)(er)終(zhong)端(duan)(duan)(duan)設(she)備(bei)(bei)反饋(kui)的(de)(de)(de)(de)(de)(de)時(shi)(shi)(shi)間(jian)戳(chuo)(chuo)(chuo)最(zui)(zui)大(da)(da)的(de)(de)(de)(de)(de)(de)數(shu)(shu)(shu)(shu)(shu)(shu)據(ju)(ju)后(hou),所(suo)(suo)述(shu)第(di)(di)(di)(di)一(yi)終(zhong)端(duan)(duan)(duan)設(she)備(bei)(bei)就可以(yi)根(gen)據(ju)(ju)反饋(kui)的(de)(de)(de)(de)(de)(de)數(shu)(shu)(shu)(shu)(shu)(shu)據(ju)(ju)和自身保存的(de)(de)(de)(de)(de)(de)添加(jia)有所(suo)(suo)述(shu)時(shi)(shi)(shi)間(jian)戳(chuo)(chuo)(chuo)的(de)(de)(de)(de)(de)(de)所(suo)(suo)述(shu)數(shu)(shu)(shu)(shu)(shu)(shu)據(ju)(ju)確定(ding)出(chu)(chu)最(zui)(zui)新(xin)的(de)(de)(de)(de)(de)(de)數(shu)(shu)(shu)(shu)(shu)(shu)據(ju)(ju),以(yi)使所(suo)(suo)述(shu)第(di)(di)(di)(di)一(yi)終(zhong)端(duan)(duan)(duan)設(she)備(bei)(bei)根(gen)據(ju)(ju)所(suo)(suo)述(shu)最(zui)(zui)新(xin)的(de)(de)(de)(de)(de)(de)數(shu)(shu)(shu)(shu)(shu)(shu)據(ju)(ju)進行(xing)數(shu)(shu)(shu)(shu)(shu)(shu)據(ju)(ju)同步(bu)。
所述(shu)(shu)第(di)一終端設備(bei)根據(ju)自身保存的(de)添加有所述(shu)(shu)時間戳的(de)所述(shu)(shu)數據(ju)和所述(shu)(shu)反饋(kui)的(de)數據(ju)進(jin)行數據(ju)同步(bu),具體(ti)為:
所述(shu)第一終端設(she)備判斷(duan)具有相同(tong)所述(shu)數據標識的數據的數目之和是否(fou)大(da)于閾值;
當大于所(suo)述(shu)閾(yu)值時(shi),所(suo)述(shu)第一終端設備確定出具有(you)相(xiang)同所(suo)述(shu)數(shu)據(ju)標識的 數(shu)據(ju)中最大時(shi)間(jian)戳對(dui)應(ying)的數(shu)據(ju);
所述第一終端設備(bei)根據(ju)最大時(shi)間(jian)戳對(dui)應的數據(ju)進(jin)行數據(ju)同步。
具體(ti)的(de),所(suo)(suo)述閾值根據(ju)實際情況確定,例(li)如:所(suo)(suo)述閾值為集群中(zhong)的(de)終端(duan)設備(bei)數(shu)(shu)(shu)目的(de)一(yi)半,當所(suo)(suo)述第一(yi)終端(duan)設備(bei)確定出的(de)具有相同(tong)所(suo)(suo)述數(shu)(shu)(shu)據(ju)標識(shi)的(de)數(shu)(shu)(shu)據(ju)的(de)數(shu)(shu)(shu)目表(biao)示(shi)(shi)集群中(zhong)就(jiu)(jiu)有多少(shao)個終端(duan)設備(bei)接收到(dao)(dao)了所(suo)(suo)述數(shu)(shu)(shu)據(ju),當所(suo)(suo)述數(shu)(shu)(shu)目超過閾值時(shi)表(biao)示(shi)(shi)集群達到(dao)(dao)了數(shu)(shu)(shu)據(ju)同(tong)步的(de)要求,此時(shi)所(suo)(suo)述第一(yi)終端(duan)設備(bei)就(jiu)(jiu)可以根據(ju)自身中(zhong)的(de)最新的(de)所(suo)(suo)述數(shu)(shu)(shu)據(ju)進(jin)行數(shu)(shu)(shu)據(ju)同(tong)步。
所(suo)(suo)(suo)(suo)(suo)(suo)述(shu)第(di)(di)一終(zhong)端設(she)(she)備(bei)為保存添加有所(suo)(suo)(suo)(suo)(suo)(suo)述(shu)時間(jian)戳(chuo)的(de)(de)所(suo)(suo)(suo)(suo)(suo)(suo)述(shu)數(shu)(shu)據(ju)設(she)(she)定生命周期,當所(suo)(suo)(suo)(suo)(suo)(suo)述(shu)第(di)(di)一終(zhong)端設(she)(she)備(bei)在所(suo)(suo)(suo)(suo)(suo)(suo)述(shu)生命周期內判斷出具(ju)有相同所(suo)(suo)(suo)(suo)(suo)(suo)述(shu)數(shu)(shu)據(ju)標識(shi)的(de)(de)數(shu)(shu)據(ju)的(de)(de)數(shu)(shu)目之(zhi)和(he)不大于所(suo)(suo)(suo)(suo)(suo)(suo)述(shu)閾值時,所(suo)(suo)(suo)(suo)(suo)(suo)述(shu)第(di)(di)一終(zhong)端設(she)(she)備(bei)刪(shan)除具(ju)有相同所(suo)(suo)(suo)(suo)(suo)(suo)述(shu)數(shu)(shu)據(ju)標識(shi)的(de)(de)數(shu)(shu)據(ju)。
具(ju)(ju)體(ti)的,數(shu)據同(tong)(tong)步(bu)時必須在(zai)一定(ding)時間(jian)(jian)內完成(cheng)數(shu)據同(tong)(tong)步(bu),否則(ze)就(jiu)失(shi)去(qu)了數(shu)據同(tong)(tong)步(bu)的意義,因(yin)此,在(zai)所(suo)述(shu)第一終(zhong)(zhong)端(duan)設備(bei)在(zai)為所(suo)述(shu)數(shu)據添加(jia)時間(jian)(jian)戳時還要為所(suo)述(shu)數(shu)據設定(ding)生命(ming)周期(qi),所(suo)述(shu)生命(ming)周期(qi)的長短根據實際情況確定(ding),當所(suo)述(shu)第一終(zhong)(zhong)端(duan)設備(bei)在(zai)所(suo)述(shu)生命(ming)周期(qi)內沒有(you)收到(dao)超過所(suo)述(shu)閾值的具(ju)(ju)有(you)相(xiang)同(tong)(tong)數(shu)據標識的數(shu)據時表(biao)示此次數(shu)據同(tong)(tong)步(bu)失(shi)敗,為了保證(zheng)所(suo)述(shu)第一終(zhong)(zhong)端(duan)設備(bei)的資源不被浪費,因(yin)此所(suo)述(shu)第一終(zhong)(zhong)端(duan)設備(bei)刪除(chu)具(ju)(ju)有(you)相(xiang)同(tong)(tong)所(suo)述(shu)數(shu)據標識的數(shu)據。
具有相同所(suo)述數據標識(shi)的(de)數據中還攜帶(dai)有同步(bu)類(lei)型(xing);
所述第一(yi)終端設備(bei)根據最大時間(jian)戳對(dui)應(ying)的(de)數(shu)據進行數(shu)據同步,具體(ti)為:
當最(zui)大(da)時(shi)(shi)間戳(chuo)(chuo)對(dui)應的數(shu)(shu)據(ju)(ju)中的所(suo)述(shu)同(tong)步類型是(shi)同(tong)步數(shu)(shu)據(ju)(ju)時(shi)(shi),所(suo)述(shu)第一(yi)終端設備根(gen)據(ju)(ju)最(zui)大(da)時(shi)(shi)間戳(chuo)(chuo)對(dui)應的數(shu)(shu)據(ju)(ju)進行數(shu)(shu)據(ju)(ju)同(tong)步;
當最大時(shi)間戳對應(ying)的(de)數據(ju)(ju)(ju)中的(de)所述(shu)同步(bu)類型是同步(bu)刪(shan)除數據(ju)(ju)(ju)時(shi),所述(shu)第(di)一(yi)終(zhong)端刪(shan)除最大時(shi)間戳對應(ying)的(de)數據(ju)(ju)(ju)中的(de)數據(ju)(ju)(ju)值,并根據(ju)(ju)(ju)刪(shan)除所述(shu)數據(ju)(ju)(ju)值的(de)最大時(shi)間戳對應(ying)的(de)數據(ju)(ju)(ju)進行數據(ju)(ju)(ju)同步(bu)。
具體的(de)(de)(de)(de),在(zai)數(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)同(tong)步(bu)時(shi)(shi)(shi)(shi)(shi)(shi)是(shi)為(wei)(wei)了(le)(le)讓集群中的(de)(de)(de)(de)終(zhong)(zhong)端(duan)(duan)設(she)(she)(she)備(bei)(bei)的(de)(de)(de)(de)數(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)統一(yi)(yi)(yi),而(er)所(suo)(suo)述(shu)(shu)第(di)一(yi)(yi)(yi)終(zhong)(zhong)端(duan)(duan)設(she)(she)(she)備(bei)(bei)接收到的(de)(de)(de)(de)數(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)進(jin)行同(tong)步(bu)時(shi)(shi)(shi)(shi)(shi)(shi),有時(shi)(shi)(shi)(shi)(shi)(shi)是(shi)為(wei)(wei)了(le)(le)增(zeng)加數(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju),而(er)有時(shi)(shi)(shi)(shi)(shi)(shi)是(shi)為(wei)(wei)了(le)(le)刪(shan)(shan)除(chu)數(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju),如果(guo)(guo)所(suo)(suo)述(shu)(shu)第(di)一(yi)(yi)(yi)終(zhong)(zhong)端(duan)(duan)設(she)(she)(she)備(bei)(bei)確定出的(de)(de)(de)(de)最(zui)(zui)(zui)(zui)大(da)時(shi)(shi)(shi)(shi)(shi)(shi)間(jian)(jian)戳(chuo)(chuo)(chuo)對(dui)應(ying)的(de)(de)(de)(de)數(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)的(de)(de)(de)(de)同(tong)步(bu)類(lei)型(xing)是(shi)同(tong)步(bu)數(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)時(shi)(shi)(shi)(shi)(shi)(shi),表示(shi)是(shi)為(wei)(wei)了(le)(le)增(zeng)加數(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju),所(suo)(suo)述(shu)(shu)第(di)一(yi)(yi)(yi)終(zhong)(zhong)端(duan)(duan)設(she)(she)(she)備(bei)(bei)根據(ju)(ju)(ju)(ju)最(zui)(zui)(zui)(zui)大(da)時(shi)(shi)(shi)(shi)(shi)(shi)間(jian)(jian)戳(chuo)(chuo)(chuo)對(dui)應(ying)的(de)(de)(de)(de)數(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)進(jin)行數(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)同(tong)步(bu);如果(guo)(guo)所(suo)(suo)述(shu)(shu)第(di)一(yi)(yi)(yi)終(zhong)(zhong)端(duan)(duan)設(she)(she)(she)備(bei)(bei)確定出的(de)(de)(de)(de)最(zui)(zui)(zui)(zui)大(da)時(shi)(shi)(shi)(shi)(shi)(shi)間(jian)(jian)戳(chuo)(chuo)(chuo)對(dui)應(ying)的(de)(de)(de)(de)數(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)的(de)(de)(de)(de)同(tong)步(bu)類(lei)型(xing)是(shi)刪(shan)(shan)除(chu)數(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)時(shi)(shi)(shi)(shi)(shi)(shi),表示(shi)是(shi)為(wei)(wei)了(le)(le)撤銷所(suo)(suo)述(shu)(shu)數(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju),所(suo)(suo)述(shu)(shu)第(di)一(yi)(yi)(yi)終(zhong)(zhong) 端(duan)(duan)設(she)(she)(she)備(bei)(bei)根據(ju)(ju)(ju)(ju)最(zui)(zui)(zui)(zui)大(da)時(shi)(shi)(shi)(shi)(shi)(shi)間(jian)(jian)戳(chuo)(chuo)(chuo)對(dui)應(ying)的(de)(de)(de)(de)數(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)進(jin)行同(tong)步(bu)時(shi)(shi)(shi)(shi)(shi)(shi)刪(shan)(shan)除(chu)最(zui)(zui)(zui)(zui)大(da)時(shi)(shi)(shi)(shi)(shi)(shi)間(jian)(jian)戳(chuo)(chuo)(chuo)對(dui)應(ying)的(de)(de)(de)(de)數(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)中的(de)(de)(de)(de)數(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)值,并根據(ju)(ju)(ju)(ju)刪(shan)(shan)除(chu)所(suo)(suo)述(shu)(shu)數(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)值的(de)(de)(de)(de)最(zui)(zui)(zui)(zui)大(da)時(shi)(shi)(shi)(shi)(shi)(shi)間(jian)(jian)戳(chuo)(chuo)(chuo)對(dui)應(ying)的(de)(de)(de)(de)數(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)進(jin)行數(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)同(tong)步(bu),其(qi)中在(zai)刪(shan)(shan)除(chu)所(suo)(suo)述(shu)(shu)數(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)時(shi)(shi)(shi)(shi)(shi)(shi),所(suo)(suo)述(shu)(shu)第(di)一(yi)(yi)(yi)終(zhong)(zhong)端(duan)(duan)設(she)(she)(she)備(bei)(bei)可以只(zhi)刪(shan)(shan)除(chu)所(suo)(suo)述(shu)(shu)數(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)本身,保(bao)留所(suo)(suo)述(shu)(shu)數(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)對(dui)應(ying)的(de)(de)(de)(de)時(shi)(shi)(shi)(shi)(shi)(shi)間(jian)(jian)戳(chuo)(chuo)(chuo)、同(tong)步(bu)類(lei)型(xing)和(he)數(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)標識(shi)等信息,以供后續查詢。
當所述(shu)第(di)一終端設(she)備(bei)中接收(shou)集群(qun)之外(wai)的設(she)備(bei)發送的至少一個具有相同(tong)(tong)的數據標識(shi)的數據時。所述(shu)第(di)一終端設(she)備(bei)根據接收(shou)數據的先后順序進行數據同(tong)(tong)步。
本發明中當第(di)一終端設(she)(she)(she)備(bei)(bei)接(jie)收到數(shu)據時(shi),在(zai)所(suo)述(shu)數(shu)據中添加時(shi)間戳(chuo)并(bing)保(bao)存,然后將(jiang)添加有(you)時(shi)間戳(chuo)的(de)數(shu)據發送給第(di)二終端設(she)(she)(she)備(bei)(bei),所(suo)述(shu)第(di)一終端設(she)(she)(she)備(bei)(bei)接(jie)收所(suo)述(shu)第(di)二終端設(she)(she)(she)備(bei)(bei)根(gen)據添加有(you)所(suo)述(shu)時(shi)間戳(chuo)的(de)所(suo)述(shu)數(shu)據反饋的(de)數(shu)據,并(bing)根(gen)據自身保(bao)存的(de)添加有(you)所(suo)述(shu)時(shi)間戳(chuo)的(de)所(suo)述(shu)數(shu)據和(he)(he)所(suo)述(shu)反饋的(de)數(shu)據進行(xing)數(shu)據同(tong)步(bu)(bu),本發明在(zai)不借助第(di)三(san)方設(she)(she)(she)備(bei)(bei)和(he)(he)選舉發送數(shu)據設(she)(she)(she)備(bei)(bei)的(de)情況下實現了(le)終端設(she)(she)(she)備(bei)(bei)集(ji)群(qun)的(de)數(shu)據同(tong)步(bu)(bu),降低了(le)數(shu)據同(tong)步(bu)(bu)時(shi)的(de)成本,并(bing)且集(ji)群(qun)中的(de)終端設(she)(she)(she)備(bei)(bei)是根(gen)據自身得到的(de)數(shu)據來進行(xing)同(tong)步(bu)(bu),保(bao)證了(le)數(shu)據同(tong)步(bu)(bu)時(shi)的(de)可(ke)靠性。
本發(fa)明還提(ti)供了一(yi)種數據的同(tong)步方(fang)法,具(ju)體(ti)如圖4所(suo)示,所(suo)述(shu)(shu)(shu)方(fang)法應(ying)用于包括第(di)一(yi)終(zhong)端(duan)(duan)設(she)(she)備(bei)(bei)和(he)第(di)二終(zhong)端(duan)(duan)設(she)(she)備(bei)(bei)的系統中,其中,所(suo)述(shu)(shu)(shu)第(di)一(yi)終(zhong)端(duan)(duan)設(she)(she)備(bei)(bei)和(he)所(suo)述(shu)(shu)(shu)第(di)二終(zhong)端(duan)(duan)設(she)(she)備(bei)(bei)的時間是(shi)同(tong)步的,所(suo)述(shu)(shu)(shu)第(di)二終(zhong)端(duan)(duan)設(she)(she)備(bei)(bei)為(wei)多個(ge),所(suo)述(shu)(shu)(shu)方(fang)法包括以下(xia)步驟(zou):
步驟401,所述(shu)第二終(zhong)端(duan)(duan)設(she)備接收所述(shu)第一終(zhong)端(duan)(duan)設(she)備發送的添加(jia)有時(shi)間戳的數據(ju)和其他第二終(zhong)端(duan)(duan)設(she)備發送的根據(ju)所述(shu)添加(jia)有時(shi)間戳的數據(ju)反饋的數據(ju)。
其(qi)中,所述(shu)時間(jian)戳是(shi)所述(shu)第一終(zhong)端設備根據(ju)接收到所述(shu)數據(ju)的時間(jian)確定的。
所述第一終端設備和(he)所述第二終端中(zhong)相同的數據具有相同的數據標(biao)識;
所(suo)(suo)述(shu)反饋的數(shu)據(ju)(ju)是(shi)其(qi)他所(suo)(suo)述(shu)第二終端(duan)設(she)備(bei)根據(ju)(ju)具有相同所(suo)(suo)述(shu)數(shu)據(ju)(ju)標識的數(shu)據(ju)(ju)確定的時間戳最大(da)的數(shu)據(ju)(ju)。
例如(ru):終端設(she)(she)(she)(she)備(bei)(bei)(bei)(bei)(bei)集群(qun)中(zhong)(zhong)包括(kuo):設(she)(she)(she)(she)備(bei)(bei)(bei)(bei)(bei)1、設(she)(she)(she)(she)備(bei)(bei)(bei)(bei)(bei)2和設(she)(she)(she)(she)備(bei)(bei)(bei)(bei)(bei)3,其中(zhong)(zhong)所(suo)(suo)(suo)(suo)述(shu)(shu)(shu)設(she)(she)(she)(she)備(bei)(bei)(bei)(bei)(bei)1為(wei)第一終端設(she)(she)(she)(she)備(bei)(bei)(bei)(bei)(bei),設(she)(she)(she)(she)備(bei)(bei)(bei)(bei)(bei)2和設(she)(she)(she)(she)備(bei)(bei)(bei)(bei)(bei)3為(wei)第二(er)終端設(she)(she)(she)(she)備(bei)(bei)(bei)(bei)(bei),在所(suo)(suo)(suo)(suo)述(shu)(shu)(shu)設(she)(she)(she)(she)備(bei)(bei)(bei)(bei)(bei)1接收(shou)到數(shu)(shu)(shu)據(ju)(ju)(ju)時(shi),所(suo)(suo)(suo)(suo)述(shu)(shu)(shu)設(she)(she)(she)(she)備(bei)(bei)(bei)(bei)(bei)1在將(jiang)添加有(you)(you)(you)時(shi)間(jian)戳(chuo)的(de)(de)(de)(de)數(shu)(shu)(shu)據(ju)(ju)(ju)發送(song)(song)給(gei)(gei)所(suo)(suo)(suo)(suo)述(shu)(shu)(shu)設(she)(she)(she)(she)備(bei)(bei)(bei)(bei)(bei)2時(shi)還發送(song)(song)給(gei)(gei)了設(she)(she)(she)(she)備(bei)(bei)(bei)(bei)(bei)3,此(ci)時(shi),所(suo)(suo)(suo)(suo)述(shu)(shu)(shu)設(she)(she)(she)(she)備(bei)(bei)(bei)(bei)(bei)2為(wei)所(suo)(suo)(suo)(suo)述(shu)(shu)(shu)第二(er)終端設(she)(she)(she)(she)備(bei)(bei)(bei)(bei)(bei),所(suo)(suo)(suo)(suo)述(shu)(shu)(shu)設(she)(she)(she)(she)備(bei)(bei)(bei)(bei)(bei)3為(wei)其他(ta)所(suo)(suo)(suo)(suo)述(shu)(shu)(shu)第 二(er)終端設(she)(she)(she)(she)備(bei)(bei)(bei)(bei)(bei),由于設(she)(she)(she)(she)備(bei)(bei)(bei)(bei)(bei)3中(zhong)(zhong)可能存(cun)在具(ju)有(you)(you)(you)相(xiang)同數(shu)(shu)(shu)據(ju)(ju)(ju)標識的(de)(de)(de)(de)所(suo)(suo)(suo)(suo)述(shu)(shu)(shu)數(shu)(shu)(shu)據(ju)(ju)(ju),為(wei)了保證設(she)(she)(she)(she)備(bei)(bei)(bei)(bei)(bei)2在進(jin)行(xing)(xing)數(shu)(shu)(shu)據(ju)(ju)(ju)同步時(shi)以(yi)使最(zui)新(xin)的(de)(de)(de)(de)數(shu)(shu)(shu)據(ju)(ju)(ju)進(jin)行(xing)(xing)更新(xin)的(de)(de)(de)(de),所(suo)(suo)(suo)(suo)述(shu)(shu)(shu)設(she)(she)(she)(she)備(bei)(bei)(bei)(bei)(bei)3還要將(jiang)確(que)定出(chu)其自身中(zhong)(zhong)具(ju)有(you)(you)(you)相(xiang)同所(suo)(suo)(suo)(suo)述(shu)(shu)(shu)數(shu)(shu)(shu)據(ju)(ju)(ju)標識的(de)(de)(de)(de)數(shu)(shu)(shu)據(ju)(ju)(ju)的(de)(de)(de)(de)時(shi)間(jian)戳(chuo)最(zui)大的(de)(de)(de)(de)數(shu)(shu)(shu)據(ju)(ju)(ju)發送(song)(song)給(gei)(gei)所(suo)(suo)(suo)(suo)述(shu)(shu)(shu)設(she)(she)(she)(she)備(bei)(bei)(bei)(bei)(bei)2,以(yi)使所(suo)(suo)(suo)(suo)述(shu)(shu)(shu)設(she)(she)(she)(she)備(bei)(bei)(bei)(bei)(bei)2可以(yi)根(gen)據(ju)(ju)(ju)最(zui)新(xin)的(de)(de)(de)(de)數(shu)(shu)(shu)據(ju)(ju)(ju)進(jin)行(xing)(xing)數(shu)(shu)(shu)據(ju)(ju)(ju)同步。同理(li),在所(suo)(suo)(suo)(suo)述(shu)(shu)(shu)設(she)(she)(she)(she)備(bei)(bei)(bei)(bei)(bei)2接收(shou)到設(she)(she)(she)(she)備(bei)(bei)(bei)(bei)(bei)發送(song)(song)的(de)(de)(de)(de)數(shu)(shu)(shu)據(ju)(ju)(ju)時(shi),所(suo)(suo)(suo)(suo)述(shu)(shu)(shu)設(she)(she)(she)(she)備(bei)(bei)(bei)(bei)(bei)2也要確(que)定出(chu)自身中(zhong)(zhong)具(ju)有(you)(you)(you)相(xiang)同數(shu)(shu)(shu)據(ju)(ju)(ju)標識的(de)(de)(de)(de)數(shu)(shu)(shu)據(ju)(ju)(ju)的(de)(de)(de)(de)時(shi)間(jian)戳(chuo)最(zui)大的(de)(de)(de)(de)數(shu)(shu)(shu)據(ju)(ju)(ju)發送(song)(song)給(gei)(gei)所(suo)(suo)(suo)(suo)述(shu)(shu)(shu)設(she)(she)(she)(she)備(bei)(bei)(bei)(bei)(bei)3,以(yi)使所(suo)(suo)(suo)(suo)述(shu)(shu)(shu)設(she)(she)(she)(she)備(bei)(bei)(bei)(bei)(bei)3也可以(yi)根(gen)據(ju)(ju)(ju)最(zui)新(xin)的(de)(de)(de)(de)數(shu)(shu)(shu)據(ju)(ju)(ju)進(jin)行(xing)(xing)數(shu)(shu)(shu)據(ju)(ju)(ju)同步。
步驟402,所(suo)述第二(er)終端設(she)備(bei)根據(ju)(ju)(ju)添加(jia)有時間戳(chuo)的數據(ju)(ju)(ju)和所(suo)述反(fan)饋(kui)的數據(ju)(ju)(ju)進行數據(ju)(ju)(ju)同步。
具體的(de)(de),在(zai)所(suo)(suo)述(shu)(shu)(shu)第(di)(di)(di)(di)二終(zhong)(zhong)(zhong)(zhong)(zhong)端(duan)設備(bei)(bei)在(zai)接收到添加(jia)有(you)(you)時(shi)(shi)(shi)(shi)間戳的(de)(de)數(shu)(shu)(shu)據(ju)(ju)(ju)和其他第(di)(di)(di)(di)二終(zhong)(zhong)(zhong)(zhong)(zhong)端(duan)設備(bei)(bei)反(fan)饋的(de)(de)數(shu)(shu)(shu)據(ju)(ju)(ju)后,此(ci)時(shi)(shi)(shi)(shi)所(suo)(suo)述(shu)(shu)(shu)第(di)(di)(di)(di)二終(zhong)(zhong)(zhong)(zhong)(zhong)端(duan)設備(bei)(bei)中(zhong)包(bao)含了集(ji)群中(zhong)其他所(suo)(suo)有(you)(you)終(zhong)(zhong)(zhong)(zhong)(zhong)端(duan)設備(bei)(bei)反(fan)饋的(de)(de)具有(you)(you)所(suo)(suo)述(shu)(shu)(shu)相(xiang)(xiang)同數(shu)(shu)(shu)據(ju)(ju)(ju)標(biao)(biao)識(shi)的(de)(de)數(shu)(shu)(shu)據(ju)(ju)(ju),此(ci)時(shi)(shi)(shi)(shi)如果(guo)所(suo)(suo)述(shu)(shu)(shu)第(di)(di)(di)(di)二終(zhong)(zhong)(zhong)(zhong)(zhong)端(duan)設備(bei)(bei)中(zhong)還存(cun)在(zai)其他具有(you)(you)相(xiang)(xiang)同數(shu)(shu)(shu)據(ju)(ju)(ju)標(biao)(biao)識(shi)的(de)(de)數(shu)(shu)(shu)據(ju)(ju)(ju),所(suo)(suo)述(shu)(shu)(shu)第(di)(di)(di)(di)二終(zhong)(zhong)(zhong)(zhong)(zhong)端(duan)設備(bei)(bei)在(zai)添加(jia)有(you)(you)時(shi)(shi)(shi)(shi)間戳的(de)(de)數(shu)(shu)(shu)據(ju)(ju)(ju)、其他第(di)(di)(di)(di)二終(zhong)(zhong)(zhong)(zhong)(zhong)端(duan)設備(bei)(bei)反(fan)饋的(de)(de)數(shu)(shu)(shu)據(ju)(ju)(ju)和所(suo)(suo)述(shu)(shu)(shu)其他具有(you)(you)相(xiang)(xiang)同數(shu)(shu)(shu)據(ju)(ju)(ju)標(biao)(biao)識(shi)的(de)(de)數(shu)(shu)(shu)據(ju)(ju)(ju)中(zhong)確定出(chu)時(shi)(shi)(shi)(shi)間戳最大的(de)(de)數(shu)(shu)(shu)據(ju)(ju)(ju),以使所(suo)(suo)述(shu)(shu)(shu)第(di)(di)(di)(di)二終(zhong)(zhong)(zhong)(zhong)(zhong)端(duan)設備(bei)(bei)根據(ju)(ju)(ju)所(suo)(suo)述(shu)(shu)(shu)時(shi)(shi)(shi)(shi)間戳最大的(de)(de)數(shu)(shu)(shu)據(ju)(ju)(ju)進(jin)行(xing)數(shu)(shu)(shu)據(ju)(ju)(ju)同步(bu)。同理,其他所(suo)(suo)述(shu)(shu)(shu)第(di)(di)(di)(di)二終(zhong)(zhong)(zhong)(zhong)(zhong)端(duan)設備(bei)(bei)也根據(ju)(ju)(ju)上(shang)述(shu)(shu)(shu)過程進(jin)行(xing)數(shu)(shu)(shu)據(ju)(ju)(ju)同步(bu)。
所(suo)述第二終端設備(bei)根(gen)據(ju)添加有時間戳的數據(ju)和所(suo)述反(fan)饋的數據(ju)進行(xing)數據(ju)同步,具體為(wei):
所述第二終端設(she)備判斷具有相(xiang)同所述數(shu)(shu)據(ju)標識的數(shu)(shu)據(ju)的數(shu)(shu)目(mu)之和是否大于閾(yu)值;
當大于所(suo)述(shu)閾值時(shi),所(suo)述(shu)第二終端設備確(que)定(ding)出具有相(xiang)同所(suo)述(shu)數據標識的數據中最大時(shi)間戳對應(ying)的數據;
所述第二(er)終端設備(bei)根據(ju)最大時間戳對應的數(shu)據(ju)進行數(shu)據(ju)同步。
具(ju)體的,當所述第二(er)終端(duan)設備確定出的具(ju)有(you)相同(tong)(tong)所述數(shu)據(ju)標(biao)識的數(shu)據(ju)的數(shu)目表(biao)示集群(qun)中就(jiu)有(you)多少個終端(duan)設備接收到(dao)(dao)了所述數(shu)據(ju),當所述數(shu)目超過閾值(zhi)時表(biao)示集群(qun)達到(dao)(dao)了數(shu)據(ju)同(tong)(tong)步的要求,此(ci)時所述第二(er)終端(duan)設備就(jiu)可以(yi)根據(ju)自身中的最新的所述數(shu)據(ju)進行數(shu)據(ju)同(tong)(tong)步。
所(suo)(suo)(suo)述(shu)(shu)(shu)(shu)(shu)添加有時間戳的數(shu)據(ju)(ju)中攜(xie)帶有所(suo)(suo)(suo)述(shu)(shu)(shu)(shu)(shu)第(di)一(yi)終(zhong)端設備為(wei)所(suo)(suo)(suo)述(shu)(shu)(shu)(shu)(shu)數(shu)據(ju)(ju)設定(ding)生(sheng)命周(zhou)期(qi),當所(suo)(suo)(suo)述(shu)(shu)(shu)(shu)(shu)第(di)二(er)終(zhong)端設備在所(suo)(suo)(suo)述(shu)(shu)(shu)(shu)(shu)生(sheng)命周(zhou)期(qi)內判(pan)斷出具有相(xiang)同所(suo)(suo)(suo)述(shu)(shu)(shu)(shu)(shu)數(shu)據(ju)(ju)標 識的數(shu)據(ju)(ju)的數(shu)目(mu)之和(he)不大于所(suo)(suo)(suo)述(shu)(shu)(shu)(shu)(shu)閾值時,所(suo)(suo)(suo)述(shu)(shu)(shu)(shu)(shu)第(di)二(er)終(zhong)端設備刪除具有相(xiang)同所(suo)(suo)(suo)述(shu)(shu)(shu)(shu)(shu)數(shu)據(ju)(ju)標識的數(shu)據(ju)(ju)。
具(ju)體的(de),數(shu)據(ju)(ju)(ju)(ju)同(tong)(tong)步時(shi)必須在(zai)一定(ding)時(shi)間(jian)內完成數(shu)據(ju)(ju)(ju)(ju)同(tong)(tong)步,否(fou)則就失去了數(shu)據(ju)(ju)(ju)(ju)同(tong)(tong)步的(de)意義,因此(ci)(ci),在(zai)所(suo)(suo)述(shu)(shu)(shu)第一終端(duan)設備(bei)在(zai)為(wei)所(suo)(suo)述(shu)(shu)(shu)數(shu)據(ju)(ju)(ju)(ju)添加時(shi)間(jian)戳時(shi)還要為(wei)所(suo)(suo)述(shu)(shu)(shu)數(shu)據(ju)(ju)(ju)(ju)設定(ding)生(sheng)命(ming)周(zhou)期,所(suo)(suo)述(shu)(shu)(shu)生(sheng)命(ming)周(zhou)期的(de)長短(duan)根據(ju)(ju)(ju)(ju)實際情況(kuang)確定(ding),當所(suo)(suo)述(shu)(shu)(shu)第二終端(duan)設備(bei)在(zai)所(suo)(suo)述(shu)(shu)(shu)生(sheng)命(ming)周(zhou)期內沒有(you)(you)收(shou)到超過所(suo)(suo)述(shu)(shu)(shu)閾值的(de)具(ju)有(you)(you)相(xiang)同(tong)(tong)數(shu)據(ju)(ju)(ju)(ju)標識的(de)數(shu)據(ju)(ju)(ju)(ju)時(shi)表(biao)示此(ci)(ci)次數(shu)據(ju)(ju)(ju)(ju)同(tong)(tong)步失敗,為(wei)了保證所(suo)(suo)述(shu)(shu)(shu)第二終端(duan)設備(bei)的(de)資源不被浪費,因此(ci)(ci)所(suo)(suo)述(shu)(shu)(shu)第一終端(duan)設備(bei)刪除具(ju)有(you)(you)相(xiang)同(tong)(tong)所(suo)(suo)述(shu)(shu)(shu)數(shu)據(ju)(ju)(ju)(ju)標識的(de)數(shu)據(ju)(ju)(ju)(ju)。
具有相同(tong)所(suo)述數據標識的數據中還攜帶有同(tong)步類型(xing);
所述(shu)第二終端設備根據(ju)最(zui)大時間戳對應的數(shu)據(ju)進行(xing)數(shu)據(ju)同(tong)步,具體(ti)為:
當最大時間戳對應的(de)數(shu)(shu)據(ju)中的(de)所述(shu)同步(bu)類型(xing)是同步(bu)數(shu)(shu)據(ju)時,所述(shu)第二終端設備根(gen)據(ju)最大時間戳對應的(de)數(shu)(shu)據(ju)進行(xing)數(shu)(shu)據(ju)同步(bu);
當最大時(shi)間(jian)戳對(dui)應的數(shu)據(ju)中的所述(shu)(shu)同步(bu)類型是同步(bu)刪(shan)除(chu)數(shu)據(ju)時(shi),所述(shu)(shu)第二終端刪(shan)除(chu)最大時(shi)間(jian)戳對(dui)應的數(shu)據(ju)中的數(shu)據(ju)值,并根據(ju)刪(shan)除(chu)所述(shu)(shu)數(shu)據(ju)值的最大時(shi)間(jian)戳對(dui)應的數(shu)據(ju)進行數(shu)據(ju)同步(bu)。
具體的(de)(de)(de)(de)(de)(de)(de),在(zai)數(shu)(shu)(shu)(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)(ju)(ju)同(tong)步(bu)時(shi)(shi)是(shi)(shi)為(wei)了(le)(le)讓集群中的(de)(de)(de)(de)(de)(de)(de)終(zhong)端(duan)設(she)(she)(she)備(bei)(bei)(bei)的(de)(de)(de)(de)(de)(de)(de)數(shu)(shu)(shu)(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)(ju)(ju)統一,而所(suo)(suo)(suo)(suo)述(shu)(shu)(shu)(shu)第(di)二(er)終(zhong)端(duan)設(she)(she)(she)備(bei)(bei)(bei)在(zai)進(jin)行(xing)數(shu)(shu)(shu)(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)(ju)(ju)同(tong)步(bu)時(shi)(shi),有(you)時(shi)(shi)是(shi)(shi)為(wei)了(le)(le)增加(jia)數(shu)(shu)(shu)(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)(ju)(ju),而有(you)時(shi)(shi)是(shi)(shi)為(wei)了(le)(le)刪除數(shu)(shu)(shu)(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)(ju)(ju),如(ru)果(guo)所(suo)(suo)(suo)(suo)述(shu)(shu)(shu)(shu)第(di)二(er)終(zhong)端(duan)設(she)(she)(she)備(bei)(bei)(bei)確(que)定出的(de)(de)(de)(de)(de)(de)(de)最大(da)(da)時(shi)(shi)間(jian)戳(chuo)(chuo)(chuo)對(dui)(dui)應(ying)的(de)(de)(de)(de)(de)(de)(de)數(shu)(shu)(shu)(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)(ju)(ju)的(de)(de)(de)(de)(de)(de)(de)同(tong)步(bu)類型(xing)是(shi)(shi)同(tong)步(bu)數(shu)(shu)(shu)(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)(ju)(ju)時(shi)(shi),表(biao)示是(shi)(shi)為(wei)了(le)(le)增加(jia)數(shu)(shu)(shu)(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)(ju)(ju),所(suo)(suo)(suo)(suo)述(shu)(shu)(shu)(shu)第(di)二(er)終(zhong)端(duan)設(she)(she)(she)備(bei)(bei)(bei)根據(ju)(ju)(ju)(ju)(ju)(ju)最大(da)(da)時(shi)(shi)間(jian)戳(chuo)(chuo)(chuo)對(dui)(dui)應(ying)的(de)(de)(de)(de)(de)(de)(de)數(shu)(shu)(shu)(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)(ju)(ju)進(jin)行(xing)數(shu)(shu)(shu)(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)(ju)(ju)同(tong)步(bu);如(ru)果(guo)所(suo)(suo)(suo)(suo)述(shu)(shu)(shu)(shu)第(di)二(er)終(zhong)端(duan)設(she)(she)(she)備(bei)(bei)(bei)確(que)定出的(de)(de)(de)(de)(de)(de)(de)最大(da)(da)時(shi)(shi)間(jian)戳(chuo)(chuo)(chuo)對(dui)(dui)應(ying)的(de)(de)(de)(de)(de)(de)(de)數(shu)(shu)(shu)(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)(ju)(ju)的(de)(de)(de)(de)(de)(de)(de)同(tong)步(bu)類型(xing)是(shi)(shi)刪除數(shu)(shu)(shu)(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)(ju)(ju)時(shi)(shi),表(biao)示是(shi)(shi)為(wei)了(le)(le)撤銷所(suo)(suo)(suo)(suo)述(shu)(shu)(shu)(shu)數(shu)(shu)(shu)(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)(ju)(ju),所(suo)(suo)(suo)(suo)述(shu)(shu)(shu)(shu)第(di)二(er)終(zhong)端(duan)設(she)(she)(she)備(bei)(bei)(bei)根據(ju)(ju)(ju)(ju)(ju)(ju)最大(da)(da)時(shi)(shi)間(jian)戳(chuo)(chuo)(chuo)對(dui)(dui)應(ying)的(de)(de)(de)(de)(de)(de)(de)數(shu)(shu)(shu)(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)(ju)(ju)進(jin)行(xing)同(tong)步(bu)時(shi)(shi)刪除最大(da)(da)時(shi)(shi)間(jian)戳(chuo)(chuo)(chuo)對(dui)(dui)應(ying)的(de)(de)(de)(de)(de)(de)(de)數(shu)(shu)(shu)(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)(ju)(ju)中的(de)(de)(de)(de)(de)(de)(de)數(shu)(shu)(shu)(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)(ju)(ju)值(zhi),并根據(ju)(ju)(ju)(ju)(ju)(ju)刪除所(suo)(suo)(suo)(suo)述(shu)(shu)(shu)(shu)數(shu)(shu)(shu)(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)(ju)(ju)值(zhi)的(de)(de)(de)(de)(de)(de)(de)最大(da)(da)時(shi)(shi)間(jian)戳(chuo)(chuo)(chuo)對(dui)(dui)應(ying)的(de)(de)(de)(de)(de)(de)(de)數(shu)(shu)(shu)(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)(ju)(ju)進(jin)行(xing)數(shu)(shu)(shu)(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)(ju)(ju)同(tong)步(bu),,其中在(zai)刪除所(suo)(suo)(suo)(suo)述(shu)(shu)(shu)(shu)數(shu)(shu)(shu)(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)(ju)(ju)時(shi)(shi),所(suo)(suo)(suo)(suo)述(shu)(shu)(shu)(shu)第(di)二(er)終(zhong)端(duan)設(she)(she)(she)備(bei)(bei)(bei)可以只(zhi)刪除所(suo)(suo)(suo)(suo)述(shu)(shu)(shu)(shu)數(shu)(shu)(shu)(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)(ju)(ju)本身,保留(liu)所(suo)(suo)(suo)(suo)述(shu)(shu)(shu)(shu)數(shu)(shu)(shu)(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)(ju)(ju)對(dui)(dui)應(ying)的(de)(de)(de)(de)(de)(de)(de)時(shi)(shi)間(jian)戳(chuo)(chuo)(chuo)、同(tong)步(bu)類型(xing)和(he)數(shu)(shu)(shu)(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)(ju)(ju)標識等信息,以供(gong)后續查詢。
在所(suo)(suo)(suo)述(shu)第(di)(di)二(er)終(zhong)(zhong)端(duan)設備(bei)(bei)接收到所(suo)(suo)(suo)述(shu)第(di)(di)一終(zhong)(zhong)端(duan)設備(bei)(bei)發送的(de)添(tian)加有(you)時(shi)(shi)間戳的(de)數(shu)(shu)(shu)(shu)據(ju)后,所(suo)(suo)(suo)述(shu)第(di)(di)二(er)終(zhong)(zhong)端(duan)設備(bei)(bei)將(jiang)與所(suo)(suo)(suo)述(shu)添(tian)加有(you)時(shi)(shi)間戳的(de)數(shu)(shu)(shu)(shu)據(ju)的(de)所(suo)(suo)(suo)述(shu)數(shu)(shu)(shu)(shu)據(ju)標識相同的(de)數(shu)(shu)(shu)(shu)據(ju)中時(shi)(shi)間戳最大的(de)數(shu)(shu)(shu)(shu)據(ju)發送給所(suo)(suo)(suo)述(shu)第(di)(di)一終(zhong)(zhong)端(duan)設備(bei)(bei),以使所(suo)(suo)(suo)述(shu)第(di)(di)一終(zhong)(zhong)端(duan)設備(bei)(bei)根據(ju)所(suo)(suo)(suo)述(shu)時(shi)(shi)間戳最大的(de)數(shu)(shu)(shu)(shu)據(ju)進(jin)行數(shu)(shu)(shu)(shu)據(ju)同步。
本(ben)發(fa)明中當(dang)第(di)(di)(di)一終(zhong)(zhong)端設(she)(she)備(bei)接收(shou)(shou)到數(shu)(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)(ju)時,在(zai)所(suo)(suo)述數(shu)(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)(ju)中添(tian)加(jia)(jia)(jia)時間戳(chuo)并保(bao)(bao) 存,然后將添(tian)加(jia)(jia)(jia)有時間戳(chuo)的(de)數(shu)(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)(ju)發(fa)送(song)給第(di)(di)(di)二(er)終(zhong)(zhong)端設(she)(she)備(bei),所(suo)(suo)述第(di)(di)(di)一終(zhong)(zhong)端設(she)(she)備(bei)接收(shou)(shou)所(suo)(suo)述第(di)(di)(di)二(er)終(zhong)(zhong)端設(she)(she)備(bei)根(gen)(gen)據(ju)(ju)(ju)(ju)(ju)添(tian)加(jia)(jia)(jia)有所(suo)(suo)述時間戳(chuo)的(de)所(suo)(suo)述數(shu)(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)(ju)反(fan)饋的(de)數(shu)(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)(ju),并根(gen)(gen)據(ju)(ju)(ju)(ju)(ju)自身保(bao)(bao)存的(de)添(tian)加(jia)(jia)(jia)有所(suo)(suo)述時間戳(chuo)的(de)所(suo)(suo)述數(shu)(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)(ju)和所(suo)(suo)述反(fan)饋的(de)數(shu)(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)(ju)進行數(shu)(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)(ju)同步,本(ben)發(fa)明在(zai)不借助第(di)(di)(di)三(san)方設(she)(she)備(bei)和選(xuan)舉發(fa)送(song)數(shu)(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)(ju)設(she)(she)備(bei)的(de)情況下實現了(le)(le)(le)終(zhong)(zhong)端設(she)(she)備(bei)集群的(de)數(shu)(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)(ju)同步,降低了(le)(le)(le)數(shu)(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)(ju)同步時的(de)成(cheng)本(ben),并且集群中的(de)終(zhong)(zhong)端設(she)(she)備(bei)是根(gen)(gen)據(ju)(ju)(ju)(ju)(ju)自身得(de)到的(de)數(shu)(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)(ju)來進行同步,保(bao)(bao)證了(le)(le)(le)數(shu)(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)(ju)同步時的(de)可靠性。
為(wei)了進一步(bu)(bu)闡述(shu)本發明的(de)技術(shu)(shu)思想,現結合具(ju)體(ti)的(de)應用場(chang)景(jing),對本申(shen)請(qing)的(de)技術(shu)(shu)方(fang)案(an)進行(xing)說明,具(ju)體(ti)的(de),系統中(zhong)包括3臺(tai)服務(wu)(wu)(wu)(wu)器(qi)(qi)(qi):服務(wu)(wu)(wu)(wu)器(qi)(qi)(qi)a、服務(wu)(wu)(wu)(wu)器(qi)(qi)(qi)b、服務(wu)(wu)(wu)(wu)器(qi)(qi)(qi)c,且(qie)所述(shu)3臺(tai)服務(wu)(wu)(wu)(wu)器(qi)(qi)(qi)的(de)時間(jian)是同(tong)(tong)步(bu)(bu)的(de),其中(zhong)生(sheng)(sheng)成同(tong)(tong)步(bu)(bu)數(shu)(shu)(shu)據(ju)(ju)(ju)(ju)的(de)終端(duan)為(wei)客戶(hu)端(duan),并(bing)且(qie)定義所述(shu)同(tong)(tong)步(bu)(bu)數(shu)(shu)(shu)據(ju)(ju)(ju)(ju)的(de)結構:d={k,v,s,t},k表示(shi)(shi)數(shu)(shu)(shu)據(ju)(ju)(ju)(ju)標識,v表示(shi)(shi)數(shu)(shu)(shu)據(ju)(ju)(ju)(ju)值,s表示(shi)(shi)數(shu)(shu)(shu)據(ju)(ju)(ju)(ju)的(de)狀態(tai)(數(shu)(shu)(shu)據(ju)(ju)(ju)(ju)狀態(tai)有:sync表示(shi)(shi)正在同(tong)(tong)步(bu)(bu),updated表示(shi)(shi)同(tong)(tong)步(bu)(bu)完成,zombie表示(shi)(shi)刪除數(shu)(shu)(shu)據(ju)(ju)(ju)(ju)值三(san)種狀態(tai),t表示(shi)(shi)服務(wu)(wu)(wu)(wu)器(qi)(qi)(qi)接收所述(shu)數(shu)(shu)(shu)據(ju)(ju)(ju)(ju)的(de)時間(jian)戳(chuo),時間(jian)戳(chuo)以毫秒為(wei)單位,并(bing)且(qie),每臺(tai)服務(wu)(wu)(wu)(wu)器(qi)(qi)(qi)的(de)存(cun)儲分(fen)為(wei)三(san)部分(fen):暫存(cun)區:用于存(cun)放(fang)同(tong)(tong)步(bu)(bu)數(shu)(shu)(shu)據(ju)(ju)(ju)(ju),此時的(de)同(tong)(tong)步(bu)(bu)數(shu)(shu)(shu)據(ju)(ju)(ju)(ju)的(de)狀態(tai)為(wei)sync,生(sheng)(sheng)命(ming)周(zhou)期為(wei)i;數(shu)(shu)(shu)據(ju)(ju)(ju)(ju)區:里面存(cun)在已經生(sheng)(sheng)效的(de)數(shu)(shu)(shu)據(ju)(ju)(ju)(ju),此時的(de)數(shu)(shu)(shu)據(ju)(ju)(ju)(ju)狀態(tai)為(wei)updated,可以被客戶(hu)端(duan)讀取使用;待刪區:用于存(cun)放(fang)刪除通(tong)知,此時數(shu)(shu)(shu)據(ju)(ju)(ju)(ju)的(de)狀態(tai)為(wei)zombie,生(sheng)(sheng)命(ming)周(zhou)期為(wei)i,規定閾值為(wei)1.5。具(ju)體(ti)過程如圖5所示(shi)(shi)。
客戶端發(fa)(fa)(fa)布了一個(ge)(ge)表示為(wei)(wei)(wei)(wei)k的(de)(de)(de)數(shu)(shu)(shu)(shu)(shu)(shu)(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)(ju)(ju)(ju)(ju)(ju)(ju),并選擇發(fa)(fa)(fa)送服(fu)(fu)(fu)務(wu)(wu)(wu)器(qi)a中(zhong)(zhong)(zhong)(zhong)(zhong),如(ru)(ru)果(guo)此時(shi)(shi)(shi)所(suo)(suo)(suo)述(shu)(shu)(shu)(shu)(shu)數(shu)(shu)(shu)(shu)(shu)(shu)(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)(ju)(ju)(ju)(ju)(ju)(ju)中(zhong)(zhong)(zhong)(zhong)(zhong)數(shu)(shu)(shu)(shu)(shu)(shu)(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)(ju)(ju)(ju)(ju)(ju)(ju)狀態s和(he)時(shi)(shi)(shi)間(jian)戳(chuo)t為(wei)(wei)(wei)(wei)空(kong),所(suo)(suo)(suo)述(shu)(shu)(shu)(shu)(shu)服(fu)(fu)(fu)務(wu)(wu)(wu)器(qi)a在(zai)(zai)接收到(dao)所(suo)(suo)(suo)述(shu)(shu)(shu)(shu)(shu)數(shu)(shu)(shu)(shu)(shu)(shu)(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)(ju)(ju)(ju)(ju)(ju)(ju)后,根據(ju)(ju)(ju)(ju)(ju)(ju)(ju)(ju)(ju)(ju)接收所(suo)(suo)(suo)述(shu)(shu)(shu)(shu)(shu)數(shu)(shu)(shu)(shu)(shu)(shu)(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)(ju)(ju)(ju)(ju)(ju)(ju)的(de)(de)(de)時(shi)(shi)(shi)間(jian)在(zai)(zai)t中(zhong)(zhong)(zhong)(zhong)(zhong)添加(jia)時(shi)(shi)(shi)間(jian)戳(chuo),并將s設(she)置為(wei)(wei)(wei)(wei)sync,并向包(bao)括自己在(zai)(zai)內服(fu)(fu)(fu)務(wu)(wu)(wu)器(qi)集群發(fa)(fa)(fa)送所(suo)(suo)(suo)述(shu)(shu)(shu)(shu)(shu)數(shu)(shu)(shu)(shu)(shu)(shu)(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)(ju)(ju)(ju)(ju)(ju)(ju),當服(fu)(fu)(fu)務(wu)(wu)(wu)器(qi)b收到(dao)所(suo)(suo)(suo)述(shu)(shu)(shu)(shu)(shu)數(shu)(shu)(shu)(shu)(shu)(shu)(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)(ju)(ju)(ju)(ju)(ju)(ju)后,在(zai)(zai)暫(zan)存(cun)區(qu)(qu)中(zhong)(zhong)(zhong)(zhong)(zhong)查找以k為(wei)(wei)(wei)(wei)數(shu)(shu)(shu)(shu)(shu)(shu)(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)(ju)(ju)(ju)(ju)(ju)(ju)標(biao)識(shi)(shi)(shi)的(de)(de)(de)其他數(shu)(shu)(shu)(shu)(shu)(shu)(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)(ju)(ju)(ju)(ju)(ju)(ju),如(ru)(ru)果(guo)所(suo)(suo)(suo)述(shu)(shu)(shu)(shu)(shu)其他數(shu)(shu)(shu)(shu)(shu)(shu)(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)(ju)(ju)(ju)(ju)(ju)(ju)中(zhong)(zhong)(zhong)(zhong)(zhong)的(de)(de)(de)時(shi)(shi)(shi)間(jian)戳(chuo)小于所(suo)(suo)(suo)述(shu)(shu)(shu)(shu)(shu)數(shu)(shu)(shu)(shu)(shu)(shu)(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)(ju)(ju)(ju)(ju)(ju)(ju),那么所(suo)(suo)(suo)述(shu)(shu)(shu)(shu)(shu)服(fu)(fu)(fu)務(wu)(wu)(wu)器(qi)b忽略所(suo)(suo)(suo)述(shu)(shu)(shu)(shu)(shu)數(shu)(shu)(shu)(shu)(shu)(shu)(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)(ju)(ju)(ju)(ju)(ju)(ju),如(ru)(ru)果(guo)大(da)于,所(suo)(suo)(suo)述(shu)(shu)(shu)(shu)(shu)服(fu)(fu)(fu)務(wu)(wu)(wu)器(qi)b用所(suo)(suo)(suo)述(shu)(shu)(shu)(shu)(shu)數(shu)(shu)(shu)(shu)(shu)(shu)(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)(ju)(ju)(ju)(ju)(ju)(ju)替換掉所(suo)(suo)(suo)述(shu)(shu)(shu)(shu)(shu)其他數(shu)(shu)(shu)(shu)(shu)(shu)(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)(ju)(ju)(ju)(ju)(ju)(ju),并將所(suo)(suo)(suo)述(shu)(shu)(shu)(shu)(shu)數(shu)(shu)(shu)(shu)(shu)(shu)(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)(ju)(ju)(ju)(ju)(ju)(ju)發(fa)(fa)(fa)送給服(fu)(fu)(fu)務(wu)(wu)(wu)器(qi)a和(he)服(fu)(fu)(fu)務(wu)(wu)(wu)器(qi)c,同理(li)服(fu)(fu)(fu)務(wu)(wu)(wu)器(qi)c同樣(yang)需(xu)要完成(cheng)(cheng)上述(shu)(shu)(shu)(shu)(shu)過(guo)程。此時(shi)(shi)(shi)服(fu)(fu)(fu)務(wu)(wu)(wu)器(qi)b確(que)定暫(zan)存(cun)區(qu)(qu)中(zhong)(zhong)(zhong)(zhong)(zhong)數(shu)(shu)(shu)(shu)(shu)(shu)(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)(ju)(ju)(ju)(ju)(ju)(ju)標(biao)識(shi)(shi)(shi)為(wei)(wei)(wei)(wei)k的(de)(de)(de)數(shu)(shu)(shu)(shu)(shu)(shu)(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)(ju)(ju)(ju)(ju)(ju)(ju)的(de)(de)(de)個(ge)(ge)數(shu)(shu)(shu)(shu)(shu)(shu)(shu)(shu)(shu)(shu)為(wei)(wei)(wei)(wei)2,超過(guo)閾值,所(suo)(suo)(suo)述(shu)(shu)(shu)(shu)(shu)服(fu)(fu)(fu)務(wu)(wu)(wu)器(qi)b選取出(chu)暫(zan)存(cun)區(qu)(qu)中(zhong)(zhong)(zhong)(zhong)(zhong)以k為(wei)(wei)(wei)(wei)標(biao)識(shi)(shi)(shi)時(shi)(shi)(shi)間(jian)戳(chuo)最大(da)的(de)(de)(de)數(shu)(shu)(shu)(shu)(shu)(shu)(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)(ju)(ju)(ju)(ju)(ju)(ju),并將所(suo)(suo)(suo)述(shu)(shu)(shu)(shu)(shu)時(shi)(shi)(shi)間(jian)戳(chuo)最大(da)的(de)(de)(de)數(shu)(shu)(shu)(shu)(shu)(shu)(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)(ju)(ju)(ju)(ju)(ju)(ju)移(yi)動(dong)到(dao)數(shu)(shu)(shu)(shu)(shu)(shu)(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)(ju)(ju)(ju)(ju)(ju)(ju)區(qu)(qu)中(zhong)(zhong)(zhong)(zhong)(zhong),并將s設(she)置為(wei)(wei)(wei)(wei)updated,如(ru)(ru)果(guo)數(shu)(shu)(shu)(shu)(shu)(shu)(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)(ju)(ju)(ju)(ju)(ju)(ju)區(qu)(qu)中(zhong)(zhong)(zhong)(zhong)(zhong)存(cun)在(zai)(zai)以k為(wei)(wei)(wei)(wei)數(shu)(shu)(shu)(shu)(shu)(shu)(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)(ju)(ju)(ju)(ju)(ju)(ju)標(biao)識(shi)(shi)(shi)的(de)(de)(de)數(shu)(shu)(shu)(shu)(shu)(shu)(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)(ju)(ju)(ju)(ju)(ju)(ju),則(ze)用所(suo)(suo)(suo)述(shu)(shu)(shu)(shu)(shu)時(shi)(shi)(shi)間(jian)戳(chuo)最大(da)的(de)(de)(de)數(shu)(shu)(shu)(shu)(shu)(shu)(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)(ju)(ju)(ju)(ju)(ju)(ju)覆蓋所(suo)(suo)(suo)述(shu)(shu)(shu)(shu)(shu)數(shu)(shu)(shu)(shu)(shu)(shu)(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)(ju)(ju)(ju)(ju)(ju)(ju)區(qu)(qu)中(zhong)(zhong)(zhong)(zhong)(zhong)以k為(wei)(wei)(wei)(wei)數(shu)(shu)(shu)(shu)(shu)(shu)(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)(ju)(ju)(ju)(ju)(ju)(ju)標(biao)識(shi)(shi)(shi)的(de)(de)(de)數(shu)(shu)(shu)(shu)(shu)(shu)(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)(ju)(ju)(ju)(ju)(ju)(ju)。如(ru)(ru)果(guo)在(zai)(zai)所(suo)(suo)(suo)述(shu)(shu)(shu)(shu)(shu)數(shu)(shu)(shu)(shu)(shu)(shu)(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)(ju)(ju)(ju)(ju)(ju)(ju)的(de)(de)(de)生命周期內服(fu)(fu)(fu)務(wu)(wu)(wu)器(qi)b確(que)定數(shu)(shu)(shu)(shu)(shu)(shu)(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)(ju)(ju)(ju)(ju)(ju)(ju)標(biao)識(shi)(shi)(shi)為(wei)(wei)(wei)(wei)k的(de)(de)(de)數(shu)(shu)(shu)(shu)(shu)(shu)(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)(ju)(ju)(ju)(ju)(ju)(ju)小于所(suo)(suo)(suo)述(shu)(shu)(shu)(shu)(shu)閾值,則(ze)不執行移(yi)動(dong)操作,并 刪除服(fu)(fu)(fu)務(wu)(wu)(wu)器(qi)b中(zhong)(zhong)(zhong)(zhong)(zhong)以k為(wei)(wei)(wei)(wei)數(shu)(shu)(shu)(shu)(shu)(shu)(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)(ju)(ju)(ju)(ju)(ju)(ju)標(biao)識(shi)(shi)(shi)的(de)(de)(de)所(suo)(suo)(suo)有(you)數(shu)(shu)(shu)(shu)(shu)(shu)(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)(ju)(ju)(ju)(ju)(ju)(ju),同理(li)服(fu)(fu)(fu)務(wu)(wu)(wu)器(qi)c同樣(yang)需(xu)要完成(cheng)(cheng)上述(shu)(shu)(shu)(shu)(shu)過(guo)程。
在(zai)完成上(shang)述(shu)過程(cheng)后(hou),服務(wu)器(qi)a中存(cun)(cun)在(zai)至(zhi)少(shao)3條以k為(wei)(wei)(wei)數(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)(ju)標(biao)識的數(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)(ju),所(suo)述(shu)服務(wu)器(qi)a確(que)(que)定出時間戳最(zui)(zui)大(da)的數(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)(ju)后(hou),將(jiang)所(suo)述(shu)時間戳最(zui)(zui)大(da)的數(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)(ju)移(yi)動到數(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)(ju)區,并將(jiang)s設置為(wei)(wei)(wei)updated,如果數(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)(ju)區中存(cun)(cun)在(zai)以k為(wei)(wei)(wei)數(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)(ju)標(biao)識的數(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)(ju),則用所(suo)述(shu)時間戳最(zui)(zui)大(da)的數(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)(ju)覆蓋所(suo)述(shu)數(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)(ju)區中以k為(wei)(wei)(wei)數(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)(ju)標(biao)識的數(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)(ju)。如果在(zai)所(suo)述(shu)數(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)(ju)的生命周期內服務(wu)器(qi)a確(que)(que)定數(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)(ju)標(biao)識為(wei)(wei)(wei)k的數(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)(ju)小于所(suo)述(shu)閾(yu)值,則不執行(xing)移(yi)動操作,并刪除服務(wu)器(qi)a中以k為(wei)(wei)(wei)數(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)(ju)標(biao)識的所(suo)有數(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)(ju)。
由于(yu)(yu)服(fu)務(wu)(wu)(wu)器(qi)(qi)b和服(fu)務(wu)(wu)(wu)器(qi)(qi)c是根據(ju)(ju)(ju)服(fu)務(wu)(wu)(wu)器(qi)(qi)a發送的(de)(de)(de)(de)數(shu)(shu)(shu)據(ju)(ju)(ju)進行(xing)同步(bu)和反饋的(de)(de)(de)(de),因此(ci)當其中(zhong)一個(ge)服(fu)務(wu)(wu)(wu)器(qi)(qi)中(zhong)確定出(chu)數(shu)(shu)(shu)據(ju)(ju)(ju)標(biao)識(shi)為(wei)k的(de)(de)(de)(de)數(shu)(shu)(shu)據(ju)(ju)(ju)的(de)(de)(de)(de)個(ge)數(shu)(shu)(shu)小于(yu)(yu)所(suo)述閾值(zhi)(zhi)時(shi),其他服(fu)務(wu)(wu)(wu)器(qi)(qi)中(zhong)以k為(wei)數(shu)(shu)(shu)據(ju)(ju)(ju)標(biao)識(shi)的(de)(de)(de)(de)數(shu)(shu)(shu)據(ju)(ju)(ju)的(de)(de)(de)(de)個(ge)數(shu)(shu)(shu)也(ye)小于(yu)(yu)所(suo)述閾值(zhi)(zhi),因此(ci),當一個(ge)服(fu)務(wu)(wu)(wu)器(qi)(qi)刪(shan)(shan)除(chu)以k為(wei)數(shu)(shu)(shu)據(ju)(ju)(ju)標(biao)識(shi)的(de)(de)(de)(de)數(shu)(shu)(shu)據(ju)(ju)(ju)時(shi),其他服(fu)務(wu)(wu)(wu)器(qi)(qi)也(ye)在刪(shan)(shan)除(chu)以k為(wei)數(shu)(shu)(shu)據(ju)(ju)(ju)標(biao)識(shi)的(de)(de)(de)(de)數(shu)(shu)(shu)據(ju)(ju)(ju)。并且服(fu)務(wu)(wu)(wu)器(qi)(qi)a在刪(shan)(shan)除(chu)以k為(wei)數(shu)(shu)(shu)據(ju)(ju)(ju)標(biao)識(shi)的(de)(de)(de)(de)數(shu)(shu)(shu)據(ju)(ju)(ju)后,還要(yao)向(xiang)客戶(hu)端反饋同步(bu)失敗的(de)(de)(de)(de)消息。
客戶端(duan)發布了一個(ge)(ge)表(biao)示(shi)為k的(de)(de)(de)(de)數(shu)(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)(ju)(ju),并(bing)(bing)選擇發送服(fu)(fu)務(wu)器(qi)(qi)(qi)a中(zhong)(zhong),如果此時(shi)所(suo)(suo)(suo)(suo)(suo)述(shu)(shu)(shu)(shu)(shu)(shu)(shu)數(shu)(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)(ju)(ju)中(zhong)(zhong)數(shu)(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)(ju)(ju)狀態s為zombie,時(shi)間(jian)戳(chuo)(chuo)t為空時(shi),所(suo)(suo)(suo)(suo)(suo)述(shu)(shu)(shu)(shu)(shu)(shu)(shu)服(fu)(fu)務(wu)器(qi)(qi)(qi)a在(zai)(zai)接(jie)收到(dao)所(suo)(suo)(suo)(suo)(suo)述(shu)(shu)(shu)(shu)(shu)(shu)(shu)數(shu)(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)(ju)(ju)后,根據(ju)(ju)(ju)(ju)(ju)(ju)接(jie)收所(suo)(suo)(suo)(suo)(suo)述(shu)(shu)(shu)(shu)(shu)(shu)(shu)數(shu)(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)(ju)(ju)的(de)(de)(de)(de)時(shi)間(jian)在(zai)(zai)t中(zhong)(zhong)添加時(shi)間(jian)戳(chuo)(chuo),然后所(suo)(suo)(suo)(suo)(suo)述(shu)(shu)(shu)(shu)(shu)(shu)(shu)服(fu)(fu)務(wu)器(qi)(qi)(qi)a向包括自己(ji)在(zai)(zai)內服(fu)(fu)務(wu)器(qi)(qi)(qi)集群發送所(suo)(suo)(suo)(suo)(suo)述(shu)(shu)(shu)(shu)(shu)(shu)(shu)數(shu)(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)(ju)(ju),當服(fu)(fu)務(wu)器(qi)(qi)(qi)b收到(dao)所(suo)(suo)(suo)(suo)(suo)述(shu)(shu)(shu)(shu)(shu)(shu)(shu)數(shu)(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)(ju)(ju)后,在(zai)(zai)暫存(cun)區(qu)(qu)(qu)(qu)中(zhong)(zhong)查找以k為數(shu)(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)(ju)(ju)標識(shi)(shi)的(de)(de)(de)(de)其他(ta)數(shu)(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)(ju)(ju),如果所(suo)(suo)(suo)(suo)(suo)述(shu)(shu)(shu)(shu)(shu)(shu)(shu)其他(ta)數(shu)(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)(ju)(ju)中(zhong)(zhong)的(de)(de)(de)(de)時(shi)間(jian)戳(chuo)(chuo)小(xiao)于所(suo)(suo)(suo)(suo)(suo)述(shu)(shu)(shu)(shu)(shu)(shu)(shu)數(shu)(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)(ju)(ju),那(nei)么(me)所(suo)(suo)(suo)(suo)(suo)述(shu)(shu)(shu)(shu)(shu)(shu)(shu)服(fu)(fu)務(wu)器(qi)(qi)(qi)b忽略所(suo)(suo)(suo)(suo)(suo)述(shu)(shu)(shu)(shu)(shu)(shu)(shu)數(shu)(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)(ju)(ju),如果大于,所(suo)(suo)(suo)(suo)(suo)述(shu)(shu)(shu)(shu)(shu)(shu)(shu)服(fu)(fu)務(wu)器(qi)(qi)(qi)b用(yong)所(suo)(suo)(suo)(suo)(suo)述(shu)(shu)(shu)(shu)(shu)(shu)(shu)數(shu)(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)(ju)(ju)替(ti)換掉(diao)所(suo)(suo)(suo)(suo)(suo)述(shu)(shu)(shu)(shu)(shu)(shu)(shu)其他(ta)數(shu)(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)(ju)(ju),并(bing)(bing)將所(suo)(suo)(suo)(suo)(suo)述(shu)(shu)(shu)(shu)(shu)(shu)(shu)數(shu)(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)(ju)(ju)發送給服(fu)(fu)務(wu)器(qi)(qi)(qi)a和服(fu)(fu)務(wu)器(qi)(qi)(qi)c,同(tong)(tong)樣需要(yao)完成(cheng)上述(shu)(shu)(shu)(shu)(shu)(shu)(shu)過(guo)程(cheng)。此時(shi)服(fu)(fu)務(wu)器(qi)(qi)(qi)b確(que)定暫存(cun)區(qu)(qu)(qu)(qu)中(zhong)(zhong)數(shu)(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)(ju)(ju)標識(shi)(shi)為k的(de)(de)(de)(de)數(shu)(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)(ju)(ju)的(de)(de)(de)(de)個(ge)(ge)數(shu)(shu)(shu)(shu)(shu)為2,超過(guo)閾值,所(suo)(suo)(suo)(suo)(suo)述(shu)(shu)(shu)(shu)(shu)(shu)(shu)服(fu)(fu)務(wu)器(qi)(qi)(qi)b選取出(chu)暫存(cun)區(qu)(qu)(qu)(qu)中(zhong)(zhong)以k為標識(shi)(shi)時(shi)間(jian)戳(chuo)(chuo)最大的(de)(de)(de)(de)數(shu)(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)(ju)(ju),并(bing)(bing)將所(suo)(suo)(suo)(suo)(suo)述(shu)(shu)(shu)(shu)(shu)(shu)(shu)時(shi)間(jian)戳(chuo)(chuo)最大的(de)(de)(de)(de)數(shu)(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)(ju)(ju)移動到(dao)待(dai)(dai)刪(shan)區(qu)(qu)(qu)(qu)中(zhong)(zhong),并(bing)(bing)將所(suo)(suo)(suo)(suo)(suo)述(shu)(shu)(shu)(shu)(shu)(shu)(shu)數(shu)(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)(ju)(ju)中(zhong)(zhong)s對應的(de)(de)(de)(de)數(shu)(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)(ju)(ju)值刪(shan)除,如果待(dai)(dai)刪(shan)區(qu)(qu)(qu)(qu)中(zhong)(zhong)存(cun)在(zai)(zai)以k為數(shu)(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)(ju)(ju)標識(shi)(shi)的(de)(de)(de)(de)數(shu)(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)(ju)(ju),則(ze)用(yong)所(suo)(suo)(suo)(suo)(suo)述(shu)(shu)(shu)(shu)(shu)(shu)(shu)時(shi)間(jian)戳(chuo)(chuo)最大的(de)(de)(de)(de)數(shu)(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)(ju)(ju)覆蓋所(suo)(suo)(suo)(suo)(suo)述(shu)(shu)(shu)(shu)(shu)(shu)(shu)待(dai)(dai)刪(shan)區(qu)(qu)(qu)(qu)中(zhong)(zhong)以k為數(shu)(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)(ju)(ju)標識(shi)(shi)的(de)(de)(de)(de)數(shu)(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)(ju)(ju)。如果在(zai)(zai)所(suo)(suo)(suo)(suo)(suo)述(shu)(shu)(shu)(shu)(shu)(shu)(shu)數(shu)(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)(ju)(ju)的(de)(de)(de)(de)生命周期內服(fu)(fu)務(wu)器(qi)(qi)(qi)b確(que)定數(shu)(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)(ju)(ju)標識(shi)(shi)為k的(de)(de)(de)(de)數(shu)(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)(ju)(ju)小(xiao)于所(suo)(suo)(suo)(suo)(suo)述(shu)(shu)(shu)(shu)(shu)(shu)(shu)閾值,則(ze)不執行移動操作,并(bing)(bing)刪(shan)除服(fu)(fu)務(wu)器(qi)(qi)(qi)b中(zhong)(zhong)以k為數(shu)(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)(ju)(ju)標識(shi)(shi)的(de)(de)(de)(de)所(suo)(suo)(suo)(suo)(suo)有數(shu)(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)(ju)(ju),同(tong)(tong)理(li)服(fu)(fu)務(wu)器(qi)(qi)(qi)c同(tong)(tong)樣需要(yao)完成(cheng)上述(shu)(shu)(shu)(shu)(shu)(shu)(shu)過(guo)程(cheng)。
在(zai)完成上述(shu)過程后,服務器(qi)a中存在(zai)至少3條以(yi)k為數(shu)(shu)(shu)(shu)據(ju)(ju)標(biao)(biao)(biao)識的(de)(de)(de)數(shu)(shu)(shu)(shu)據(ju)(ju), 所述(shu)服務器(qi)a確(que)定出時(shi)間(jian)戳最(zui)(zui)大(da)的(de)(de)(de)數(shu)(shu)(shu)(shu)據(ju)(ju)后,將所述(shu)時(shi)間(jian)戳最(zui)(zui)大(da)的(de)(de)(de)數(shu)(shu)(shu)(shu)據(ju)(ju)移(yi)動到待(dai)(dai)刪(shan)區(qu),如(ru)果待(dai)(dai)刪(shan)區(qu)中存在(zai)以(yi)k為數(shu)(shu)(shu)(shu)據(ju)(ju)標(biao)(biao)(biao)識的(de)(de)(de)數(shu)(shu)(shu)(shu)據(ju)(ju),則用所述(shu)時(shi)間(jian)戳最(zui)(zui)大(da)的(de)(de)(de)數(shu)(shu)(shu)(shu)據(ju)(ju)覆蓋所述(shu)數(shu)(shu)(shu)(shu)據(ju)(ju)區(qu)中以(yi)k為數(shu)(shu)(shu)(shu)據(ju)(ju)標(biao)(biao)(biao)識的(de)(de)(de)數(shu)(shu)(shu)(shu)據(ju)(ju)。如(ru)果在(zai)所述(shu)數(shu)(shu)(shu)(shu)據(ju)(ju)的(de)(de)(de)生命周期內服務器(qi)a確(que)定數(shu)(shu)(shu)(shu)據(ju)(ju)標(biao)(biao)(biao)識為k的(de)(de)(de)數(shu)(shu)(shu)(shu)據(ju)(ju)小于所述(shu)閾值,則不執行移(yi)動操作,并刪(shan)除服務器(qi)a中以(yi)k為數(shu)(shu)(shu)(shu)據(ju)(ju)標(biao)(biao)(biao)識的(de)(de)(de)所有數(shu)(shu)(shu)(shu)據(ju)(ju)。
如果服(fu)務(wu)器a接(jie)收到客戶(hu)端發(fa)送的(de)多條以k為數(shu)據標識(shi)的(de)數(shu)據時,所述(shu)服(fu)務(wu)器按照接(jie)收數(shu)據的(de)順序(xu)同步(bu)數(shu)據。
基于(yu)與上述(shu)(shu)方(fang)法同(tong)樣的申請構思(si),本發(fa)明提出了一種(zhong)數據(ju)(ju)同(tong)步裝置(zhi),如圖6所(suo)示,所(suo)述(shu)(shu)數據(ju)(ju)同(tong)步裝置(zhi)位(wei)于(yu)第(di)(di)(di)一終(zhong)(zhong)端(duan)設(she)(she)(she)備(bei),應用于(yu)包括(kuo)所(suo)述(shu)(shu)第(di)(di)(di)一終(zhong)(zhong)端(duan)設(she)(she)(she)備(bei)和(he)多個第(di)(di)(di)二(er)終(zhong)(zhong)端(duan)設(she)(she)(she)備(bei)的系統中,其中,所(suo)述(shu)(shu)第(di)(di)(di)一終(zhong)(zhong)端(duan)設(she)(she)(she)備(bei)和(he)所(suo)述(shu)(shu)第(di)(di)(di)二(er)終(zhong)(zhong)端(duan)設(she)(she)(she)備(bei)的時間(jian)是同(tong)步的,所(suo)述(shu)(shu)數據(ju)(ju)同(tong)步裝置(zhi)包括(kuo):
添加(jia)模塊(kuai)61,當(dang)所述(shu)(shu)第一終(zhong)端設備接(jie)收到數(shu)據時,用于將接(jie)收到所述(shu)(shu)數(shu)據的時間戳添加(jia)到所述(shu)(shu)數(shu)據中;
發(fa)送(song)模塊(kuai)62,用于將添(tian)加有所(suo)(suo)述(shu)時間戳的所(suo)(suo)述(shu)數(shu)據發(fa)送(song)給所(suo)(suo)述(shu)第二終端設備(bei),并(bing)保存添(tian)加有所(suo)(suo)述(shu)時間戳的所(suo)(suo)述(shu)數(shu)據;
接(jie)收(shou)(shou)模塊63,用于接(jie)收(shou)(shou)所(suo)(suo)述(shu)(shu)(shu)第二終端(duan)設備根據(ju)(ju)添加有(you)所(suo)(suo)述(shu)(shu)(shu)時間(jian)戳的(de)(de)(de)所(suo)(suo)述(shu)(shu)(shu)數據(ju)(ju)反(fan)饋的(de)(de)(de)數據(ju)(ju),以(yi)使(shi)所(suo)(suo)述(shu)(shu)(shu)第一終端(duan)設備中的(de)(de)(de)同(tong)步模塊根據(ju)(ju)自身保存的(de)(de)(de)添加有(you)所(suo)(suo)述(shu)(shu)(shu)時間(jian)戳的(de)(de)(de)所(suo)(suo)述(shu)(shu)(shu)數據(ju)(ju)和(he)所(suo)(suo)述(shu)(shu)(shu)反(fan)饋的(de)(de)(de)數據(ju)(ju)進(jin)行數據(ju)(ju)同(tong)步。
所述第一終端(duan)設備和所述第二終端(duan)中(zhong)相同(tong)的(de)數據具有相同(tong)的(de)數據標識;
所述反饋的(de)數(shu)(shu)據是所述第二終端(duan)設備根據具有相同所述數(shu)(shu)據標(biao)識(shi)的(de)數(shu)(shu)據確定的(de)時間戳最大的(de)數(shu)(shu)據。
所述同步模塊具體用于:
判斷具有相同(tong)所述數(shu)(shu)據標識的(de)數(shu)(shu)據的(de)數(shu)(shu)目(mu)之和是否大(da)于閾值;
當大于所(suo)述(shu)閾值(zhi)時(shi),確定(ding)出具有相(xiang)同所(suo)述(shu)數(shu)據標識的數(shu)據中最大時(shi)間戳對應的數(shu)據;
根據最(zui)大時間(jian)戳對應(ying)的數(shu)據進行(xing)數(shu)據同(tong)步。
所(suo)述添(tian)加模塊還用于為(wei)保存添(tian)加有所(suo)述時間戳的所(suo)述數據設定(ding)生(sheng)命周期;
所述裝置還包括:
刪(shan)除模塊(kuai),當所述(shu)同(tong)步模塊(kuai)在所述(shu)生(sheng)命周期內判斷出具(ju)(ju)有相同(tong)所述(shu)數(shu)(shu)據(ju)標識(shi)(shi)的(de)數(shu)(shu)據(ju)的(de)數(shu)(shu)目之和不大于所述(shu)閾值(zhi)時,用于刪(shan)除具(ju)(ju)有相同(tong)所述(shu)數(shu)(shu)據(ju)標識(shi)(shi) 的(de)數(shu)(shu)據(ju)。
具有(you)相同所述數(shu)(shu)據(ju)標識的(de)數(shu)(shu)據(ju)中還(huan)攜(xie)帶有(you)同步(bu)類型;
所述(shu)同步模塊還具體用于:
當最(zui)(zui)大時(shi)間戳對應(ying)的數(shu)據中(zhong)的所(suo)述(shu)同(tong)(tong)步(bu)(bu)類(lei)型(xing)是(shi)同(tong)(tong)步(bu)(bu)數(shu)據時(shi),根據最(zui)(zui)大時(shi)間戳對應(ying)的數(shu)據進行數(shu)據同(tong)(tong)步(bu)(bu);
當最大(da)時間(jian)戳(chuo)對(dui)應的數(shu)據(ju)(ju)(ju)中的所述(shu)同(tong)步(bu)類型是同(tong)步(bu)刪(shan)除(chu)數(shu)據(ju)(ju)(ju)時,刪(shan)除(chu)最大(da)時間(jian)戳(chuo)對(dui)應的數(shu)據(ju)(ju)(ju)中的數(shu)據(ju)(ju)(ju)值,并(bing)根據(ju)(ju)(ju)刪(shan)除(chu)所述(shu)數(shu)據(ju)(ju)(ju)值的最大(da)時間(jian)戳(chuo)對(dui)應的數(shu)據(ju)(ju)(ju)進行數(shu)據(ju)(ju)(ju)同(tong)步(bu)。
本(ben)發(fa)(fa)明中當第一終端設(she)(she)備(bei)(bei)接收(shou)到數(shu)據(ju)時(shi)(shi),在(zai)所述(shu)數(shu)據(ju)中添加(jia)(jia)時(shi)(shi)間戳并(bing)保存,然(ran)后將添加(jia)(jia)有(you)時(shi)(shi)間戳的(de)(de)(de)數(shu)據(ju)發(fa)(fa)送(song)給第二終端設(she)(she)備(bei)(bei),所述(shu)第一終端設(she)(she)備(bei)(bei)接收(shou)所述(shu)第二終端設(she)(she)備(bei)(bei)根(gen)據(ju)添加(jia)(jia)有(you)所述(shu)時(shi)(shi)間戳的(de)(de)(de)所述(shu)數(shu)據(ju)反饋(kui)的(de)(de)(de)數(shu)據(ju),并(bing)根(gen)據(ju)自(zi)身保存的(de)(de)(de)添加(jia)(jia)有(you)所述(shu)時(shi)(shi)間戳的(de)(de)(de)所述(shu)數(shu)據(ju)和所述(shu)反饋(kui)的(de)(de)(de)數(shu)據(ju)進行數(shu)據(ju)同(tong)步(bu),本(ben)發(fa)(fa)明在(zai)不借(jie)助第三(san)方設(she)(she)備(bei)(bei)和選舉發(fa)(fa)送(song)數(shu)據(ju)設(she)(she)備(bei)(bei)的(de)(de)(de)情況下實現了終端設(she)(she)備(bei)(bei)集(ji)群(qun)的(de)(de)(de)數(shu)據(ju)同(tong)步(bu),降低了數(shu)據(ju)同(tong)步(bu)時(shi)(shi)的(de)(de)(de)成本(ben),并(bing)且集(ji)群(qun)中的(de)(de)(de)終端設(she)(she)備(bei)(bei)是根(gen)據(ju)自(zi)身得到的(de)(de)(de)數(shu)據(ju)來進行同(tong)步(bu),保證了數(shu)據(ju)同(tong)步(bu)時(shi)(shi)的(de)(de)(de)可(ke)靠性。
基于(yu)與(yu)上述(shu)方法同(tong)樣的(de)申請構思(si),本發明還提出了一(yi)種(zhong)數(shu)據(ju)同(tong)步裝(zhuang)置(zhi),具體如圖7所(suo)示,所(suo)述(shu)數(shu)據(ju)同(tong)步裝(zhuang)置(zhi)位(wei)于(yu)第二(er)終端(duan)設(she)備(bei)(bei)(bei),應用于(yu)包(bao)括(kuo)(kuo)第一(yi)終端(duan)設(she)備(bei)(bei)(bei)和(he)多個(ge)所(suo)述(shu)第二(er)終端(duan)設(she)備(bei)(bei)(bei)的(de)系統中,其中,所(suo)述(shu)第一(yi)終端(duan)設(she)備(bei)(bei)(bei)和(he)所(suo)述(shu)第二(er)終端(duan)設(she)備(bei)(bei)(bei)的(de)時間(jian)是(shi)同(tong)步的(de),所(suo)述(shu)數(shu)據(ju)同(tong)步裝(zhuang)置(zhi)包(bao)括(kuo)(kuo):
接收(shou)模塊(kuai)71,用于接收(shou)所(suo)述第一終端設(she)備(bei)發送的(de)添加(jia)有(you)時(shi)間戳(chuo)的(de)數(shu)據(ju)和(he)其他(ta)第二終端設(she)備(bei)發送的(de)根據(ju)所(suo)述添加(jia)有(you)時(shi)間戳(chuo)的(de)數(shu)據(ju)反(fan)饋的(de)數(shu)據(ju);
同步模塊72,用于根據添(tian)加有時(shi)間戳(chuo)的數(shu)(shu)(shu)據和所述反(fan)饋的數(shu)(shu)(shu)據進行(xing)數(shu)(shu)(shu)據同步;
其中,所(suo)述(shu)時間戳是所(suo)述(shu)第一終端設備(bei)根據(ju)接(jie)收到所(suo)述(shu)數(shu)據(ju)的時間確(que)定的。
所述(shu)第一終(zhong)端設備和(he)所述(shu)第二(er)終(zhong)端中相(xiang)同的(de)數(shu)據具有相(xiang)同的(de)數(shu)據標識(shi);
所(suo)述(shu)反饋的(de)數(shu)據是(shi)其他所(suo)述(shu)第二終端設(she)備(bei)根(gen)據具(ju)有相同所(suo)述(shu)數(shu)據標識(shi)的(de)數(shu)據確定的(de)時(shi)間戳最(zui)大的(de)數(shu)據。
所述同步模(mo)塊具體(ti)用于:
判斷(duan)具有(you)相同所述數據標(biao)識的(de)數據的(de)數目(mu)之和(he)是否大于閾值;
當大于所述閾值時,確定出具有相同(tong)所述數據標識的數據中最大時間戳對應的數據;
根據最大時(shi)間戳對應的數(shu)據進(jin)行數(shu)據同(tong)步。
所(suo)述添(tian)加有時間(jian)戳的數據(ju)中攜帶有所(suo)述第一(yi)終端(duan)設備為所(suo)述數據(ju)設定生(sheng)命周期;
所述裝置還包括:
刪除模塊,當所(suo)述(shu)同(tong)步模塊在所(suo)述(shu)生命周(zhou)期內判(pan)斷(duan)出具有(you)相(xiang)同(tong)所(suo)述(shu)數(shu)據(ju)(ju)標識(shi)的數(shu)據(ju)(ju)的數(shu)目之和(he)不大于(yu)所(suo)述(shu)閾(yu)值(zhi)時,用于(yu)刪除具有(you)相(xiang)同(tong)所(suo)述(shu)數(shu)據(ju)(ju)標識(shi)的數(shu)據(ju)(ju)。
具有(you)相同(tong)所述(shu)數據標(biao)識的(de)數據中還攜帶有(you)同(tong)步類(lei)型;
所述同步模塊還具(ju)體用于:
當最(zui)大時(shi)間戳對(dui)(dui)應的數據(ju)中(zhong)的所述同(tong)步(bu)類型是(shi)同(tong)步(bu)數據(ju)時(shi),根據(ju)最(zui)大時(shi)間戳對(dui)(dui)應的數據(ju)進行數據(ju)同(tong)步(bu);
當最大(da)時間(jian)戳(chuo)對(dui)(dui)應(ying)的(de)數(shu)據(ju)中(zhong)(zhong)的(de)所述同步類型(xing)是同步刪除(chu)數(shu)據(ju)時,刪除(chu)最大(da)時間(jian)戳(chuo)對(dui)(dui)應(ying)的(de)數(shu)據(ju)中(zhong)(zhong)的(de)數(shu)據(ju)值,并(bing)根據(ju)刪除(chu)所述數(shu)據(ju)值的(de)最大(da)時間(jian)戳(chuo)對(dui)(dui)應(ying)的(de)數(shu)據(ju)進(jin)行數(shu)據(ju)同步。
所(suo)述第二終端設備還(huan)包(bao)括:
發送模塊,在所(suo)述(shu)(shu)接收模塊接收到所(suo)述(shu)(shu)第(di)一(yi)終(zhong)(zhong)端(duan)設(she)備發送的(de)(de)(de)添(tian)加有時(shi)間(jian)(jian)戳的(de)(de)(de)數據后,用于將與所(suo)述(shu)(shu)添(tian)加有時(shi)間(jian)(jian)戳的(de)(de)(de)數據的(de)(de)(de)所(suo)述(shu)(shu)數據標識相同的(de)(de)(de)數據中時(shi)間(jian)(jian)戳最(zui)大的(de)(de)(de)數據發送給所(suo)述(shu)(shu)第(di)一(yi)終(zhong)(zhong)端(duan)設(she)備,以使所(suo)述(shu)(shu)第(di)一(yi)終(zhong)(zhong)端(duan)設(she)備根據所(suo)述(shu)(shu)時(shi)間(jian)(jian)戳最(zui)大的(de)(de)(de)數據進行數據同步(bu)。
本(ben)發明中(zhong)(zhong)當第(di)(di)一終端(duan)設(she)(she)備(bei)接(jie)(jie)收(shou)到(dao)數(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)時(shi),在所(suo)(suo)述(shu)(shu)(shu)數(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)中(zhong)(zhong)添(tian)(tian)(tian)加(jia)時(shi)間(jian)戳(chuo)并(bing)保(bao)存,然后(hou)將添(tian)(tian)(tian)加(jia)有(you)時(shi)間(jian)戳(chuo)的(de)數(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)發送給第(di)(di)二終端(duan)設(she)(she)備(bei),所(suo)(suo)述(shu)(shu)(shu)第(di)(di)一終端(duan)設(she)(she)備(bei)接(jie)(jie)收(shou)所(suo)(suo)述(shu)(shu)(shu)第(di)(di)二終端(duan)設(she)(she)備(bei)根(gen)據(ju)(ju)(ju)(ju)添(tian)(tian)(tian)加(jia)有(you)所(suo)(suo)述(shu)(shu)(shu)時(shi)間(jian)戳(chuo)的(de)所(suo)(suo)述(shu)(shu)(shu)數(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)反(fan)饋的(de)數(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju),并(bing)根(gen)據(ju)(ju)(ju)(ju)自(zi)身保(bao)存的(de)添(tian)(tian)(tian)加(jia)有(you)所(suo)(suo)述(shu)(shu)(shu)時(shi)間(jian)戳(chuo)的(de)所(suo)(suo)述(shu)(shu)(shu)數(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)和所(suo)(suo)述(shu)(shu)(shu)反(fan)饋的(de)數(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)進(jin)行數(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)同步,本(ben)發明在不借助(zhu)第(di)(di)三方(fang)設(she)(she)備(bei)和選(xuan)舉發送數(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)設(she)(she)備(bei)的(de)情(qing)況(kuang)下實現了(le)終端(duan)設(she)(she)備(bei)集群的(de)數(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)同步,降低了(le)數(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)同步時(shi)的(de)成本(ben),并(bing)且集群中(zhong)(zhong)的(de)終端(duan)設(she)(she)備(bei)是(shi)根(gen)據(ju)(ju)(ju)(ju)自(zi)身得(de)到(dao)的(de)數(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)來進(jin)行同步,保(bao)證了(le)數(shu)(shu)(shu)(shu)據(ju)(ju)(ju)(ju)同步時(shi)的(de)可靠性。
本(ben)領域普通技術人(ren)員可(ke)以(yi)(yi)(yi)理解:實(shi)現(xian)上述各方(fang)(fang)法實(shi)施例的(de)(de)全部或部分步驟可(ke)以(yi)(yi)(yi)通過程序(xu)指(zhi)令相關的(de)(de)硬件來完(wan)成。前(qian)(qian)述的(de)(de)程序(xu)可(ke)以(yi)(yi)(yi)存(cun)儲于一(yi)計算(suan)機可(ke) 讀取存(cun)儲介質中。該程序(xu)在執(zhi)行(xing)時,執(zhi)行(xing)包(bao)括上述各方(fang)(fang)法實(shi)施例的(de)(de)步驟;而前(qian)(qian)述的(de)(de)存(cun)儲介質包(bao)括:rom、ram、磁碟或者光盤(pan)等各種可(ke)以(yi)(yi)(yi)存(cun)儲程序(xu)代碼的(de)(de)介質。
以(yi)上(shang)所描述的(de)(de)(de)裝置實(shi)施例僅僅是(shi)(shi)示(shi)(shi)意性(xing)的(de)(de)(de),其中作為分(fen)(fen)離部(bu)件說明的(de)(de)(de)單元(yuan)可(ke)以(yi)是(shi)(shi)或(huo)者(zhe)也(ye)可(ke)以(yi)不是(shi)(shi)物理上(shang)分(fen)(fen)開(kai)的(de)(de)(de),作為單元(yuan)顯示(shi)(shi)的(de)(de)(de)部(bu)件可(ke)以(yi)是(shi)(shi)或(huo)者(zhe)也(ye)可(ke)以(yi)不是(shi)(shi)物理單元(yuan),即可(ke)以(yi)位于一個(ge)地方,或(huo)者(zhe)也(ye)可(ke)以(yi)分(fen)(fen)布(bu)到至少兩個(ge)網絡單元(yuan)上(shang)。可(ke)以(yi)根據實(shi)際的(de)(de)(de)需要選(xuan)擇其中的(de)(de)(de)部(bu)分(fen)(fen)或(huo)者(zhe)全部(bu)模(mo)塊來實(shi)現本實(shi)施例方案的(de)(de)(de)目的(de)(de)(de)。本領域普通技術人員在不付出創(chuang)造性(xing)的(de)(de)(de)勞(lao)動的(de)(de)(de)情況(kuang)下,即可(ke)以(yi)理解并實(shi)施。
最后應(ying)(ying)說(shuo)明的(de)是(shi):以(yi)上各實(shi)(shi)施例(li)(li)僅用以(yi)說(shuo)明本(ben)發(fa)明的(de)技術(shu)方(fang)案,而非對其限(xian)制;盡(jin)管參照前述各實(shi)(shi)施例(li)(li)對本(ben)發(fa)明進行(xing)了詳(xiang)細的(de)說(shuo)明,本(ben)領域的(de)普通技術(shu)人員應(ying)(ying)當理解(jie):其依(yi)然可以(yi)對前述各實(shi)(shi)施例(li)(li)所記(ji)載的(de)技術(shu)方(fang)案進行(xing)修改,或(huo)者對其中(zhong)部(bu)分或(huo)者全部(bu)技術(shu)特征進行(xing)等同替換;而這些修改或(huo)者替換,并不使相(xiang)應(ying)(ying)技術(shu)方(fang)案的(de)本(ben)質脫離本(ben)發(fa)明各實(shi)(shi)施例(li)(li)技術(shu)方(fang)案的(de)范圍。