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





