一种基于交易系统的消息排队方法技术方案

技术编号:33888779 阅读:17 留言:0更新日期:2022-06-22 17:22
本发明专利技术公开了一种基于交易系统的消息排队方法,涉及软件开发技术领域,解决交易系统中开发异步指令排序处理的技术问题,包括S01,接收消息;S02,消息编码;S03,写入对内存数组;S04,形成索引;S05,形成数据文件;S06,主排队机和从排队机实时同步;S07,新增的消息发送至对应的该服务节点。本发明专利技术通过消息队列将调试信息写入交易系统,实现源码级别的引用;通过共享内存在内存中有序存储交易指令,实现多进程共享内存空间;通过交易核心实现交易指令按顺序撮合成交的核心服务;通过排队机实现指令的排序、编码、缓存、持久化、异步批量吞吐;通过主排队机和从排队机实现排队机的冗余执备。主排队机和从排队机实现排队机的冗余执备。主排队机和从排队机实现排队机的冗余执备。

【技术实现步骤摘要】
一种基于交易系统的消息排队方法


[0001]本专利技术涉及软件开发
,涉及一种基于交易系统的消息排队方法。

技术介绍

[0002]在交易系统软件开发过程中,交易核心接收到的所有指令必须进行排序,指令与指令间必须严格按照顺序执行;同时交易核心主机需要双活或多活,确保交易核心应用的冗余及稳定运行,此时需要有一个独立的应用模块为一个或多个交易核心同时提供严格一致的排序指令,只有这样才能确保每个交易核心处理的结果完全一致。
[0003]目前的解决上述情况的方案一般有以下两种:(1)在交易核心中采用消息排队来实现消息的排序,(2)采用消息中间件实现消息发布和订阅。
[0004]但上述的现有技术具有的技术缺陷在于:(1)采用消息排队与交易撮合核心集成在一起,在一定程度上能起到排序的作用,但无法同时为其它主机提供严格一致的排序队列,而且与应用耦合太紧密,不利于修改和维护,(2)采用消息中间件实现消息发布和订阅,但无法解决消息严格排序问题。

技术实现思路

[0005]本专利技术的目的在于在交易系统中开发异步指令排序处理方法,为了解决如何将交易指令进行严格排序、存储、转发给一个或多个多活的交易核心,保证每个交易核心收到的指令均是严格按同一顺序的技术问题。
[0006]本专利技术为了实现上述目的具体采用以下技术方案:
[0007]一种基于交易系统的消息排队方法,包括如下步骤:
[0008]S01,当使用排队机接收、排序、存储、处理并转发电子交易指令消息时,读取消息信息,识别消息码,识别成功执行步骤S02,否则,返回消息处理失败,结束;
[0009]S02,对接收的消息进行唯一顺序编号,如1,2,3,4,5

,从内存中读取当前消息编号,在当前最大消息编号执行+1操作,将该编码分配给当前收到的消息,作为该消息的唯一标识ID;
[0010]S03,根据消息码读取消息处理流程中定义的服务节点,在该服务节点下分配内存数组地址,将消息唯一标识ID写入对内存数组;
[0011]S04,将该消息的消息长度、消息时间、消息内容写入文件,作为消息内容的数据文件,并记录文件写入的开始位置,将该开始位置作为索引写入S03中描述的该消息对应的内存数组空间,作为该消息读取文件的索引;
[0012]S05,将S03中描述的内存数组数据以增量方式写入本地文件,作为消息索引的数据文件;
[0013]S06,将该消息发送至从排队机,从排队机按S01

S05步骤写入,写入成功后返回主排队机,主排队机收到从排队机写入成功的信息后执行S07,否则消息处理失败,结束;
[0014]S07,消息执行服务扫描到服务节点下有新增的消息,按S03中描述的内存数组索
引读取消息信息,将消息信息发送至对应的该服务节点。
[0015]具体的,交易系统包括交易客户端Q01、交易中间件Q02、排队机Q03、交易核心Q04以及数据库Q05,交易指令信息始从交易客户端Q01,有序的经过交易中间件Q02、排队机Q03、交易核心Q04异步吞吐处理,终到数据库Q05存储。
[0016]进一步,所述的排队机Q03内部的M01clientsocket模块接收Q01客户端消息,将消息存入M02消息队列模块,M02消息队列模块将所有消息进行串行化排序,排序后的消息由M03消息排序模块从消息队列中读取,读取完成后对消息进行顺序编码,编码后的消息由M04消息存储模块负责存储消息索引和消息内容;M05消息读取模块从本地持久化文件中顺序读取消息,根据消息编码识别消息的配置流程节点,M06消息转发模块根据配置流程节点通过M01clientsocket模块或M07serversocket模块转发对应的服务模块。
[0017]进一步,所述的M04消息存储模块包括F01服务节点内存索引数组结构,F02消息索引持久化文件结构以及F03消息内容持久化结构。
[0018]主排队机和从排队机实现消息实时同步,主排队机中M01接收消息存入M02消息队列,M03对消息进行排序,M04对消息进行存储,M05读取消息,M06转发消息至从排队机,从排队机同主排队机一样接收、处理、存储和转发。
[0019]优选的,所述排队机Q03防止消息缓存过多处理方法是在在消息写入M02消息队列模块时判断缓存消息总数若大于配置条数,则暂停接收新的请求消息,优先执行推送消息。
[0020]本专利技术的有益效果如下:
[0021]1、本专利技术的信息排队方法通过消息队列将调试信息写入交易系统,实现源码级别的引用;通过共享内存在内存中有序存储交易指令,实现多进程共享内存空间;通过交易核心实现交易指令按顺序撮合成交的核心服务;通过排队机实现指令的排序、编码、缓存、持久化、异步批量吞吐;通过主排队机和从排队机实现排队机的冗余执备。
[0022]2、本专利技术的技术要点在于排序机接收到的消息存入消息队列排序;从消息队列中读取并进行编号,顺序编号后存入共享内存进行缓存;收发队列分离,实现异步批量吞吐;排队机可为一个或多个交易核心高效率提供排序严格一致的交易指令,让多个交易核心主机可以同时进行撮合,且撮合结果一致,任何一个主机宕机,其它主机可在秒级内接管,并保持数据一致性。
附图说明
[0023]图1是本专利技术的流程示意图;
[0024]图2是实施例1的系统结构示意图;
[0025]图3是Q03排队机的结构示意图;
[0026]图4是M04消息存储的结构示意图;
[0027]图5是Q03排队机的主从双机工作示意图。
具体实施方式
[0028]为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本专利技术实施
例的组件可以以各种不同的配置来布置和设计。
[0029]因此,以下对在附图中提供的本专利技术的实施例的详细描述并非旨在限制要求保护的本专利技术的范围,而是仅仅表示本专利技术的选定实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。
[0030]实施例1
[0031]如图1所示,本实施例提供一种基于交易系统的消息排队方法,包括如下步骤:
[0032]S01,当使用排队机接收、排序、存储、处理并转发电子交易指令消息时,读取消息信息,识别消息码,识别成功执行步骤S02,否则,返回消息处理失败,结束。
[0033]S02,对接收的消息进行唯一顺序编号,如1,2,3,4,5

,从内存中读取当前消息编号,在当前最大消息编号执行+1操作,将该编码分配给当前收到的消息,作为该消息的唯一标识ID。
[0034]S03,根据消息码读取消息处理流程中定义的服务节点,在该服务节点下分配本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于交易系统的消息排队方法,其特征在于,包括如下步骤:S01,当使用排队机接收、排序、存储、处理并转发电子交易指令消息时,读取消息信息,识别消息码,识别成功执行步骤S02,否则,返回消息处理失败,结束;S02,对接收的消息进行唯一顺序编号,如1,2,3,4,5

,从内存中读取当前消息编号,在当前最大消息编号执行+1操作,将该编码分配给当前收到的消息,作为该消息的唯一标识ID;S03,根据消息码读取消息处理流程中定义的服务节点,在该服务节点下分配内存数组地址,将消息唯一标识ID写入对内存数组;S04,将该消息的消息长度、消息时间、消息内容写入文件,作为消息内容的数据文件,并记录文件写入的开始位置,将该开始位置作为索引写入S03中描述的该消息对应的内存数组空间,作为该消息读取文件的索引;S05,将S03中描述的内存数组数据以增量方式写入本地文件,作为消息索引的数据文件;S06,将该消息发送至从排队机,从排队机按S01

S05步骤写入,写入成功后返回主排队机,主排队机收到从排队机写入成功的信息后执行S07,否则消息处理失败,结束;S07,消息执行服务扫描到服务节点下有新增的消息,按S03中描述的内存数组索引读取消息信息,将消息信息发送至对应的该服务节点。2.根据权利要求1所述的一种基于交易系统的消息排队方法,其特征在于,其中的交易系统包括交易客户端Q01、交易中间件Q02、排队机Q03、交易核心Q04以及数据库Q05,交易指令信息始从交易客户端Q01,有序的经过交易中间件Q02、排队机Q03、交易核心Q04异...

【专利技术属性】
技术研发人员:周源黄东燕海滨
申请(专利权)人:郑州郑大信息技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1