[發明專利]一種交易系統內部高可靠消息傳輸方法在審
| 申請號: | 202011083759.2 | 申請日: | 2020-10-12 |
| 公開(公告)號: | CN112162875A | 公開(公告)日: | 2021-01-01 |
| 發明(設計)人: | 葉峰;王泊;孫增 | 申請(專利權)人: | 上交所技術有限責任公司 |
| 主分類號: | G06F9/54 | 分類號: | G06F9/54;G06Q40/04 |
| 代理公司: | 上海三方專利事務所(普通合伙) 31127 | 代理人: | 吳瑋 |
| 地址: | 200131 上海市浦東新*** | 國省代碼: | 上海;31 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 交易系統 內部 可靠 消息 傳輸 方法 | ||
1.一種交易系統內部高可靠消息傳輸方法,包括發送端和接收端,其特征在于接收端和發送端內部均需要維護一個緩存區,緩存區采用ringbuffer隊列構造,緩存區設置了一個全序的指針隊列和多個數據隊列,全序指針隊列有四個控制指針:
待寫入指針:下一個被發送數據寫入的位置,小于該指針的數據均需要被發送;
待發送指針:該指針表示大于等于該指針的數據需要被發送;
待確認指針:小于該指針的內容表示傳輸完畢;
已處理指針:接收端將數據交給業務層處理的位置;
這四個指針的大小關系為:待寫入指針≥待發送指針≥待確認指針≥已處理指針。
2.如權利要求1所述的一種交易系統內部高可靠消息傳輸方法,其特征在于發送端包括Node1_*和Node2_*,Node1_*和Node2_*發送的是兩份不同的數據,Node1_*中,Node1_1和Node1_2為一主一備,發送端中,主對外發送數據,備不對外發送數據,發送端主備都接收接收端發送的ack/nack控制消息。
3.如權利要求1或2所述的一種交易系統內部高可靠消息傳輸方法,其特征在于接收端包括Node3_*,Node3_*需要同時接收Node1_*,Node2_*發來的數據,Node3_*中Node3_1,Node3_2,Node3_3為主備關系,主節點開始接收發送端的數據,并將接收下來的數據進行全局編號,同時,將數據轉發給備節點,此時,備節點不接收發送端的數據,而是接收接收端主節點的數據,接收過程中,間歇性發送ack消息,接收端主節點確認所有備節點接收完畢后,向發送端發送ack確認。
4.如權利要求1或2或3所述的一種交易系統內部高可靠消息傳輸方法,其特征在于ack消息向前移動待確認指針,確保這個指針前的數據接收方已經全部收到;假設ack消息傳輸順序號為N,待確認指針設為N+1;ack消息向后移動待發送指針,用來補全丟失的數據。假設上次確認后,發送數據全部丟失,此時,待發送指針移動到待確認指針位置。
5.如權利要求1-4任一所述的一種交易系統內部高可靠消息傳輸方法,其特征在于ack消息無需保證高可靠傳輸。發送端只要收到有更大順序號的ack出現,就可以移動已確認指針,將小于ack順序號的緩存數據交給下游業務處理邏輯。
6.如權利要求1-4任一所述的一種交易系統內部高可靠消息傳輸方法,其特征在于nack消息無需保證高可靠傳輸。接收端只要發現數據跳號或丟失,定時發送nack消息,直至丟失順序號補全。
7.如權利要求1-4任一所述的一種交易系統內部高可靠消息傳輸方法,其特征在于發送端發給接收端的每個主題數據都要求提供從0開始的順序號。接收端通過順序號,過濾重復數據。
8.如權利要求1-4任一所述的一種交易系統內部高可靠消息傳輸方法,其特征在于接收端主節點收到主題數據后,進行四步操作:
a.判斷主題數據是否重復,如果重復,忽略數據;
b.判斷主題數據是否跳號,如果跳號,發送nack消息,nack消息中攜帶要求發送的數據主題以及順序號;
c.完成a,b步驟后,將主題數據按順序插入對應主題數據的數據緩沖區中;
d.完成c步驟后,為數據編制一個全局順序號,插入全序隊列,全序隊列存放一個數據指針,該指針指向具體數據。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于上交所技術有限責任公司,未經上交所技術有限責任公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202011083759.2/1.html,轉載請聲明來源鉆瓜專利網。





