[發明專利]一種在微服務架構下實現全局有序重演的方法有效
| 申請號: | 201710384544.6 | 申請日: | 2017-05-26 |
| 公開(公告)號: | CN107181805B | 公開(公告)日: | 2019-11-12 |
| 發明(設計)人: | 朱立;王泊;孫增;徐丹;張濤;甘張生;葉婧;黃俊杰 | 申請(專利權)人: | 上交所技術有限責任公司 |
| 主分類號: | H04L29/08 | 分類號: | H04L29/08;H04J3/06;G06F9/54 |
| 代理公司: | 上海三方專利事務所(普通合伙) 31127 | 代理人: | 吳瑋;李美立 |
| 地址: | 200131 上海市*** | 國省代碼: | 上海;31 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 微服 架構 實現 全局 有序 重演 方法 | ||
本發明涉及微服務架構下的信息數據處理技術領域,具體來說是一種在微服務架構下實現全局有序重演的方法,每個節點的邏輯時鐘層內部都維護一個二元組形式的邏輯時鐘{T,C},T初始化為0,C初始化為0。每條傳遞的消息m都攜帶兩個邏輯時戳:ts(m)對應m的發送,tr(m)對應m的接收。ts(m)和tr(m)的格式也是如上所示的二元組{T,C}。本發明同現有技術相比,其優點在于:在應用軟件層和消息中間件之間設有邏輯時鐘層,作為邏輯時鐘和邏輯時間戳的維護邏輯,邏輯時鐘會同時參考本機物理時鐘和消息傳遞的因果時序,且由于邏輯時鐘的T分量和事件的物理時間非常接近,易于按指定倍速進行重演。
[技術領域]
本發明涉及微服務架構下的信息數據處理技術領域,具體來說是一種在微服務架構下實現全局有序重演的方法。
[背景技術]
在微服務架構下,整個系統由許多高內聚、低耦合的微服務構成。為完成特定業務,不同微服務通過彼此收發消息來完成協作,而在不同業務下消息的流動模式可能是完全不同的。為實現高可用性,單個微服務可能被構建成一個高可用集群,整個集群作為一個整體對外提供服務。
微服務架構是一個分布式系統,各個微服務之間僅僅通過彼此傳遞的消息互相協調。出于性能考慮,微服務架構通常沒有中心化的全局日志,因為如果全部日志都通過一個中心點來維護,這個點就會成為整個系統的瓶頸。通常每個微服務只負責維護自己的日志。
如果沒有特別的措施,依靠各微服務的日志只能保證有序重演微服務自身的歷史,無法全局有序地重演整個系統的歷史。比如經過一天后,微服務A的日志項只有10條記錄,微服務B和C的日志項各有10億條記錄。如果僅僅讓每個微服務讀取自身日志重放,微服務A可能不到1秒就重現了歷史,而微服務B和C需要耗費18小時才能重現歷史,而實際上微服務A的10條記錄是為了響應微服務B和微服務C在當天23:59后發送的各5條請求而產生的,如果真要全局性地重演整個系統的歷史,微服務A的日志重演應該發生在微服務B和C的日志重演接近尾聲時,如此才是全系統歷史的重演。
單純為微服務的日志項打上高精度時間戳并不能解決問題,因為不同主機的時鐘并不完全同步,且時間戳的精度也并非無限。若微服務B和C幾乎同時發出消息給微服務A,微服務A幾乎瞬間收到消息,2個消息發送事件和1個消息接收事件在各自日志中的時間戳甚至可能出現倒掛。單純按照日志時間戳重演整個系統的歷史,可能會先重演微服務A收到來自微服務B的消息,隨后再重演微服務B發出這條消息,顯然是荒謬的。
標準的Lamport邏輯時鐘可以解決按因果序重演全系統歷史的問題,但邏輯時鐘只是一個單調遞增的大整數,并不和物理時間戳對應,在全局重演時無法以指定倍速重演真實歷史。比如全天微服務A在9點,10點和19點分別給微服務B發送了3個請求并獲得了應答,按Lamport邏輯時鐘重放的時候3個請求的回放間隔就是均勻的,而現實生活中間隔并不均勻。
因此,出于事后審計、故障重現、程序調試等目的,需要設計一種能夠在微服務架構下支持按指定倍速實現全局有序重演的方法。
[發明內容]
本發明的目的在于解決現有技術的不足,提供一種在微服務架構下實現全局有序重演的方法,能夠在微服務架構下支持按指定倍速實現全局有序重演,以實現事后審計、故障重現、程序調試的目的。
為了實現上述目的,設計一種在微服務架構下實現全局有序重演的方法,所述的微服務和微服務之間通過消息中間件進行通信,其特征在于在消息中間件上實現邏輯時鐘算法,所述的邏輯時鐘算法同時參考本機物理時鐘和消息傳遞的因果時序,在應用軟件層和消息中間件之間設有邏輯時鐘層,作為邏輯時鐘和邏輯時間戳的維護邏輯,在每個節點的邏輯時鐘層內部都維護一個二元組形式的邏輯時鐘{T,C},其中T和C初始化均為0,每條傳遞的消息m都攜帶兩個二元組{T,C}格式的邏輯時間戳ts(m)和tr(m):其中,ts(m)對應m的發送,tr(m)對應m的接收,兩個邏輯時間戳之間的比較規則是:先看T分量哪個大;若相等則再看C分量哪個大,具體步驟包括:
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于上交所技術有限責任公司,未經上交所技術有限責任公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201710384544.6/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種可變印刷包裝膜
- 下一篇:一種易撕高阻隔食品包裝膜





