[發(fā)明專利]一種分布式緩存更新方法和系統(tǒng)在審
| 申請?zhí)枺?/td> | 201711115077.3 | 申請日: | 2017-11-13 |
| 公開(公告)號: | CN107770285A | 公開(公告)日: | 2018-03-06 |
| 發(fā)明(設(shè)計)人: | 牛峰;趙明建;許盛 | 申請(專利權(quán))人: | 陽光電源股份有限公司 |
| 主分類號: | H04L29/08 | 分類號: | H04L29/08 |
| 代理公司: | 北京集佳知識產(chǎn)權(quán)代理有限公司11227 | 代理人: | 王寶筠 |
| 地址: | 230088 安徽*** | 國省代碼: | 安徽;34 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 分布式 緩存 更新 方法 系統(tǒng) | ||
技術(shù)領(lǐng)域
本發(fā)明涉及分布式緩存技術(shù)領(lǐng)域,更具體地說,涉及一種分布式緩存更新方法和系統(tǒng)。
背景技術(shù)
現(xiàn)有的分布式緩存更新系統(tǒng)如圖1所示,包括:服務(wù)器端、消息中間件和多個客戶端,服務(wù)器端通過消息中間件將同一緩存更新消息傳遞到多個客戶端,使每個客戶端執(zhí)行同樣的緩存更新操作。
但圖1所示分布式緩存更新系統(tǒng)存在以下缺陷:
1)所有緩存更新消息都依賴消息中間件進行傳遞,一旦消息中間件故障則整個系統(tǒng)將癱瘓,系統(tǒng)可靠性差;
2)由于存在數(shù)據(jù)傳輸延時的問題,不同客戶端接收到同一緩存更新消息的時間可能不一致,無法保證所有客戶端同步更新緩存。
3)由于每個客戶端都是按照自己所在的時區(qū)的時間執(zhí)行緩存更新操作,當不同客戶端所在的時區(qū)不一致時,同樣無法保證所有客戶端同步更新緩存。
如何克服上述缺陷,是本領(lǐng)域技術(shù)人員亟待解決的問題。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明提供一種分布式緩存更新方法和系統(tǒng),以提高系統(tǒng)可靠性,并保證所有客戶端能夠同步更新緩存。
一種分布式緩存更新方法,包括:
服務(wù)器端將緩存更新消息發(fā)送給各個客戶端,所述緩存更新消息攜帶有任一時區(qū)的時間戳;
其中,每一個客戶端在接收所述緩存更新消息成功后,首先根據(jù)所述時間戳計算出本客戶端所在的時區(qū)對應(yīng)的時間,然后延遲到同一時間點時執(zhí)行一線程,所述線程包括更新緩存并保存更新前的緩存數(shù)據(jù);
所述服務(wù)器端判斷是否所有客戶端都接收所述緩存更新消息成功;
若至少一個客戶端接收所述緩存更新消息失敗,則所述服務(wù)器端向各個客戶端發(fā)送回滾消息,并重新將所述緩存更新消息發(fā)送給各個客戶端;
若所有客戶端都接收所述緩存更新消息成功,則所述服務(wù)器端延遲一定時間后判斷是否所有客戶端都更新緩存成功;
若至少一個客戶端更新緩存失敗,則所述服務(wù)器端向各個客戶端發(fā)送所述回滾消息,并重新將所述緩存更新消息發(fā)送給各個客戶端。
可選的,客戶端接收所述緩存更新消息成功,包括:
客戶端在接收到所述緩存更新消息時,驗證所述緩存更新消息的合法性,如果所述緩存更新消息合法,則接收所述緩存更新消息成功,如果所述緩存更新消息不合法,則接收所述緩存更新消息失敗。
可選的,每一個客戶端都將本客戶端更新消息是否成功以及更新緩存是否成功的記錄保存到區(qū)塊鏈中;
對應(yīng)的,所述判斷是否所有客戶端都接收所述緩存更新消息成功,包括:通過讀取所述區(qū)塊鏈中保存的各客戶端更新消息是否成功的記錄,判斷是否所有客戶端都接收所述緩存更新消息成功;
所述判斷是否所有客戶端都更新緩存成功,包括:通過讀取所述區(qū)塊鏈中保存的各客戶端更新緩存是否成功的記錄,判斷是否所有客戶端都更新緩存成功。
可選的,所述任一時區(qū)的時間戳為格林威治時間戳。
可選的,所述服務(wù)器端在重新將所述緩存更新消息發(fā)送給各個客戶端的次數(shù)超過預(yù)設(shè)次數(shù)時,還包括:輸出報警信息。
一種分布式緩存更新系統(tǒng),包括服務(wù)器端和多個客戶端,其中:
所述服務(wù)器端,用于將緩存更新消息發(fā)送給各個客戶端,所述緩存更新消息攜帶有任一時區(qū)的時間戳;判斷是否所有客戶端都接收所述緩存更新消息成功;若至少一個客戶端接收所述緩存更新消息失敗,則向各個客戶端發(fā)送回滾消息,并重新將所述緩存更新消息發(fā)送給各個客戶端;若所有客戶端都接收所述緩存更新消息成功,則延遲一定時間后判斷是否所有客戶端都更新緩存成功;若至少一個客戶端更新緩存失敗,則向各個客戶端發(fā)送所述回滾消息,并重新將所述緩存更新消息發(fā)送給各個客戶端;
所述客戶端,用于在接收所述緩存更新消息成功后,首先根據(jù)所述時間戳計算出本客戶端所在的時區(qū)對應(yīng)的時間,然后延遲到同一時間點時執(zhí)行一線程,所述線程包括更新緩存并保存更新前的緩存數(shù)據(jù)。
可選的,所述客戶端在接收到所述緩存更新消息時,驗證所述緩存更新消息的合法性,如果所述緩存更新消息合法,則接收所述緩存更新消息成功,如果所述緩存更新消息不合法,則接收所述緩存更新消息失敗。
可選的,所述客戶端還用于將本客戶端更新消息是否成功以及更新緩存是否成功的記錄保存到區(qū)塊鏈中;
對應(yīng)的,所述服務(wù)器端具體用于通過讀取所述區(qū)塊鏈中保存的各客戶端更新消息是否成功的記錄,判斷是否所有客戶端都接收所述緩存更新消息成功;以及通過讀取所述區(qū)塊鏈中保存的各客戶端更新緩存是否成功的記錄,判斷是否所有客戶端都更新緩存成功。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于陽光電源股份有限公司,未經(jīng)陽光電源股份有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201711115077.3/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。





