[發明專利]一種基于緩存的冪等性實現的方法有效
| 申請號: | 201910544864.2 | 申請日: | 2019-06-21 |
| 公開(公告)號: | CN110266799B | 公開(公告)日: | 2022-07-05 |
| 發明(設計)人: | 石鎮嘉;劉奇 | 申請(專利權)人: | 國網山西省電力公司忻州供電公司 |
| 主分類號: | H04L67/568 | 分類號: | H04L67/568;H04L67/60;H04L67/62;G06F16/2455;G06F16/2457 |
| 代理公司: | 太原科衛專利事務所(普通合伙) 14100 | 代理人: | 朱源 |
| 地址: | 034000 *** | 國省代碼: | 山西;14 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 緩存 實現 方法 | ||
1.一種基于緩存的冪等性實現的方法,其特征在于,包括如下步驟:步驟1:當一單用戶請求觸發,會由于用戶重復請求,客戶端重試,或者網絡震蕩導致產生重復訂單請求;加上網絡不可靠,路由鏈路變化,同一單請求并發抵達服務端;所述服務端為郵箱服務器;
步驟2:當一個請求已經抵達服務端,服務端首先查詢緩存,通過CAS原理,根據該請求中攜帶的id,獲得該id所對應的請求信息;
步驟3:通過請求抵達時間和通過CAS原理獲取的時間進行對比,存在如下情況:
1.如果時間相同,即為相同的請求,存在如下情況:
①該請求第一次訪問服務端;
②已經超過了TTL存活時間的請求,這種情形下緩存自動清除超過TTL的請求信息;所述的TTL設置的時間長度要和業務進行關聯,即TTL時間為臨時業務最長失效時間;
TTL時間為5分鐘,保證在此時間跨度范圍內請求,直接命中緩存,獲取緩存中的處理結果;
當錯過熱點時間即TTL存活時間,將直接查詢數據庫,從持久化層保證數據最終的唯一性;并將數據放入緩存中;
2.如果時間不同,即為之前已經存在過該請求,直接將獲取到的請求信息,轉換為對應的返回協議返回給用戶,告訴用戶現在進程到了什么處理狀態;
步驟4:在請求是第一次訪問服務端的情況下,如果該請求為臨時請求,對該請求進行處理,即為可執行交易,并將階段性結果記錄到緩存中,然后將處理成功的信息返回給用戶;
步驟5:在請求是第一次訪問服務端的情況下,如果該請求為事務請求,直接根據請求攜帶的id查詢數據庫:
1.如果數據庫中存在該記錄,將數據庫中的記錄放入緩存中,并組織返回參數,返回用戶;
2.如果數據庫中不存在該條記錄,將對該請求進行處理,即為可執行交易,并將階段性結果記錄到緩存中,然后將處理成功的信息返回給用戶。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于國網山西省電力公司忻州供電公司,未經國網山西省電力公司忻州供電公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201910544864.2/1.html,轉載請聲明來源鉆瓜專利網。





