[發明專利]一種在微服務架構下實現全局有序重演的方法有效
| 申請號: | 201710384544.6 | 申請日: | 2017-05-26 |
| 公開(公告)號: | CN107181805B | 公開(公告)日: | 2019-11-12 |
| 發明(設計)人: | 朱立;王泊;孫增;徐丹;張濤;甘張生;葉婧;黃俊杰 | 申請(專利權)人: | 上交所技術有限責任公司 |
| 主分類號: | H04L29/08 | 分類號: | H04L29/08;H04J3/06;G06F9/54 |
| 代理公司: | 上海三方專利事務所(普通合伙) 31127 | 代理人: | 吳瑋;李美立 |
| 地址: | 200131 上海市*** | 國省代碼: | 上海;31 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 微服 架構 實現 全局 有序 重演 方法 | ||
1.一種在微服務架構下實現全局有序重演的方法,所述的微服務和微服務之間通過消息中間件進行通信,其特征在于在消息中間件上實現邏輯時鐘算法,所述的邏輯時鐘算法同時參考本機物理時鐘和消息傳遞的因果時序,在應用軟件層和消息中間件之間設有邏輯時鐘層,作為邏輯時鐘和邏輯時間戳的維護邏輯,在每個節點的邏輯時鐘層內部都維護一個二元組形式的邏輯時鐘{T,C},其中T和C初始化均為0,每條傳遞的消息m都攜帶兩個二元組{T,C}格式的邏輯時間戳ts(m)和tr(m):其中,ts(m)對應m的發送,tr(m)對應m的接收,兩個邏輯時間戳之間的比較規則是:先看T分量哪個大;若相等則再看C分量哪個大,具體步驟包括:
a.當節點i是單機微服務,應用軟件向邏輯時鐘層Pi提交待發消息m時:
1)Pi調整自身邏輯時鐘{Ti,Ci}如下:
T=max{Pi本地物理時鐘,Ti};
如果T>Ti則Ti=T,Ci=0;
否則,Ti保持不變,Ci=Ci+1;
2)設置m攜帶的發送邏輯時間戳,ts(m)={Ti,Ci},并記錄日志;
3)向消息中間件提交消息m;
b.當節點j是單機微服務,邏輯時鐘層從消息中間件收到消息m時:
1)調整自身邏輯時鐘{Tj,Cj}如下:
T=max{Tj,Pj本地物理時鐘,ts(m).T},其中,ts(m).T是指ts(m)的T分量;
如果T>Tj且T>ts(m).T,則Tj=T,Cj=0;
否則Tj=T,Cj=max{Cj,ts(m).C}+1;
2)設置m攜帶的接收邏輯時間戳,tr(m)={Tj,Cj},并記錄日志;
3)向應用層投遞消息m;
c.當集群i的應用軟件向邏輯時鐘層Pi提交待發消息m時:
1)Pi調整自身邏輯時鐘{Ti,Ci};
Ti不變,Ci=Ci+1,使集群全部主機的邏輯時鐘一致;
2)設置m攜帶的發送邏輯時間戳,ts(m)={Ti,Ci},并記錄日志;
3)集群主節點向消息中間件提交消息m;
d.當集群j主節點的邏輯時鐘層從消息中間件收取消息m時:
1)調整自身邏輯時鐘
T=max{Tj,Pj本地物理時鐘,ts(m).T};
如果T>Tj且T>ts(m).T則Tj=T,Cj=0;
否則Tj=T,Cj=max{Cj,ts(m).C}+1;
2)設置m攜帶的接收邏輯時間戳,tr(m)={Tj,Cj},并記錄日志;
3)利用RAFT等原子組播協議通過消息中間件將m可靠傳送給從節點后,向應用層投遞消息m;
e.當集群j從節點的邏輯時鐘層收到主節點送來的消息m時:
1)自身邏輯時鐘=tr(m),并記錄日志;
2)向應用層投遞消息m;
讀取系統中每個微服務的日志,把日志項按邏輯時鐘排序,即可將排序后的日志項按因果順序單步重演整個系統中的消息收發事件,邏輯時鐘的T分量和事件的物理時間相接近,易于按指定倍速進行重演。
2.如權利要求1所述的一種在微服務架構下實現全局有序重演的方法,其特征在于所述的重演方法適用的微服務包括單機和高可用集群,當使用高可用集群時,所述的微服務是基于有唯一主節點的共識算法構建的,在一個集群內部,主節點從多個輸入消息中間件讀取消息后排序,自己按此順序處理消息,而其他節點會從主節點處獲得排序后的消息,然后按同樣的順序處理。
3.如權利要求1所述的一種在微服務架構下實現全局有序重演的方法,其特征在于節點內收發事件的邏輯時間戳單調遞增,消息接收邏輯時間戳大于其發送的邏輯時間戳,從而保存了系統內部的因果序,且邏輯時間戳的T分量能用于反映物理時間。
4.如權利要求1所述的一種在微服務架構下實現全局有序重演的方法,其特征在于為了確保產生的邏輯時間戳構成一個全序,引入節點ID/集群ID作為邏輯時間戳的第三個分量,每個集群發出消息時,在邏輯時間戳的ID分量上填上自身ID,此時邏輯時間戳的比較規則是:先看T分量哪個大,若相等則再看C分量哪個大,若還相等則再看ID分量哪個大。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于上交所技術有限責任公司,未經上交所技術有限責任公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201710384544.6/1.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種可變印刷包裝膜
- 下一篇:一種易撕高阻隔食品包裝膜





