[发明专利]一种交易系统内部高可靠消息传输方法在审
申请号: | 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.vipzhuanli.com/pat/books/202011083759.2/1.html,转载请声明来源钻瓜专利网。