CN114338797B - 适于多版本时序数据传输和重放的系统及方法 - Google Patents
适于多版本时序数据传输和重放的系统及方法 Download PDFInfo
- Publication number
- CN114338797B CN114338797B CN202111336738.1A CN202111336738A CN114338797B CN 114338797 B CN114338797 B CN 114338797B CN 202111336738 A CN202111336738 A CN 202111336738A CN 114338797 B CN114338797 B CN 114338797B
- Authority
- CN
- China
- Prior art keywords
- message
- data
- version
- client
- module
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 230000005540 biological transmission Effects 0.000 title claims abstract description 63
- 238000000034 method Methods 0.000 title claims abstract description 46
- 230000006978 adaptation Effects 0.000 claims abstract description 31
- 238000012795 verification Methods 0.000 claims abstract description 25
- 238000011144 upstream manufacturing Methods 0.000 claims abstract description 23
- 230000003139 buffering effect Effects 0.000 claims description 2
- 230000008859 change Effects 0.000 abstract description 3
- 238000007726 management method Methods 0.000 description 29
- 230000008569 process Effects 0.000 description 21
- 238000010586 diagram Methods 0.000 description 10
- 238000012545 processing Methods 0.000 description 7
- 238000011161 development Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 238000004590 computer program Methods 0.000 description 4
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000011981 development test Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种适于多版本时序数据传输和重放的系统及方法,所述系统包括客户端,用于根据用户权限,向服务端发送消息订阅请求,并接收订阅的消息;服务端,用于标准化定义消息的数据结构,该数据结构中至少包括消息分类、版本信息、数据包标识号和消息发送时间;将上游数据源适配成具有所述数据结构的消息;接收客户端的消息订阅请求,根据用户权限和消息的版本信息对请求订阅的消息进行校验,校验通过后将消息回传给客户端;根据所述数据包标识号和消息发送时间重放所述消息;网络传输模块,用于所述客户端与服务端之间的数据传输。本发明对于不同的数据源只需简单增加对应的消息适配管理模块即可完成数据的发布,同时能有效隔离数据源的变化对下游业务系统的影响。
Description
技术领域
本发明涉及一种适于多版本时序数据传输和重放的系统及方法,属于互联网通信技术领域。
背景技术
数据交换传输技术是基于互联网通信技术各类业务系统的基础保障技术,为发挥出数据的全部潜力,必须能快速地适应业务数据的发展变化,为业务系统的快速迭代升级提供坚实的基础。
首先,业务系统的数据交换源往往多种多样,例如定时刷新的文件、实时推送的网络数据流和实时更新的数据库等等,传统的数据传输系统无法保证在适配诸多数据源的同时屏蔽数据源对传输系统的影响。其次,传统的数据传输系统往往不支持多版本时序数据的兼容传输,当原有业务数据发生变化时,需要同步修改传输系统的服务端和客户端,即使原有业务系统不需要新的数据内容,也不得不进行繁复的升级。最后,传统的数据传输系统不支持数据的离线重放,无法为业务系统提供离线测试环境。
发明内容
本发明的目的是解决上述背景技术中提及的缺陷。
为实现上述发明目的,第一方面,本发明提供一种适于多版本时序数据传输和重放的系统,包括客户端,用于根据用户权限向服务端发送消息订阅请求,并接收订阅的消息;服务端,用于标准化定义消息的数据结构,该数据结构中至少包括消息分类、版本信息、数据包标识号和消息发送时间;将上游数据源适配成具有所述数据结构的消息;接收客户端的消息订阅请求,根据用户权限和消息的版本信息对请求订阅的消息进行校验,校验通过后将消息回传给客户端;根据所述数据包标识号和消息发送时间重放所述消息;网络传输模块,用于所述客户端与服务端之间的数据传输。
进一步地,所述客户端包括消息订阅模块和应用程序接口;所述消息订阅模块适于根据用户权限进行消息订阅管理;所述应用程序接口用于接入客户端订阅和接收业务消息。
进一步地,所述客户端还包括数据更新缓存单元,用于缓存消息于内存中,并根据新接收的消息对内存中的快照进行合并更新。
进一步地,所述服务端包括多个并联的分别对应于不同上游数据源的消息管理适配模块、发布订阅模块和数据包组装模块;各所述消息管理适配模块的输入端连接至与其对应的上游数据源,各所述消息管理适配模块的输出端均连接至所述发布订阅模块,所述发布订阅模块的输入端通过所述网络传输模块连接至所述客户端以接收订阅请求,所述发布订阅模块的输出端连接至所述数据包组装模块的输入端,所述数据包组装模块的输出端通过所述网络传输模块连接至所述客户端以回传订阅的消息;所述消息管理适配模块适于定义所述数据结构,并将上游数据源适配成具有所述数据结构的消息;所述发布订阅模块适于接收客户端的消息订阅请求,根据用户权限和消息的版本信息对请求订阅的消息进行校验,校验通过后将消息回传给客户端;所述数据包组装模块用于将消息组装成具有所述数据结构的数据包。
进一步地,所述服务端还包括用户权限管理模块,所述用户权限管理模块适于进行账户权限管理。
进一步地,所述服务端还包括日志模块,所述日志模块适于存储记录所述数据包,以离线重放。
进一步地,所述客户端还包括多个并联的分别对应于不同版本消息的解码器,所述服务端还包括多个并联的分别对应于不同版本消息的编码器,各所述编码器与各所述解码器一一对应。
进一步地,所述消息管理适配模块包括数据结构抽象及标准化定义单元、分类单元和适配单元;所述发布订阅模块包括多个并联的不同版本的发布单元、订阅单元;所述数据结构抽象及标准化定义单元用于将上游数据源定义成所述数据结构,所述分类单元用于根据所述数据结构中的版本信息将该数据源分成不同的版本,所述适配单元用于将不同版本的数据源与所述发布订阅模块中对应版本的发布端口相匹配。
进一步地,所述发布订阅模块包括多个并联的不同版本的发布单元、订阅单元、权限及版本校验单元和发送队列单元;各所述发布单元用于发布不同版本的信息,所述订阅单元用于接收消息订阅请求,所述权限及版本校验单元用于根据用户权限和信息版本对拟订阅消息与发布的消息进行一致性校验,所述发送队列单元用于存储待发送的消息;所述适配单元用于将不同版本的数据源与各所述发布单元相匹配。
第二方面,本发明提供一种适于多版本时序数据传输和重放的方法,包括以下步骤:
(1)在服务端建立用户权限列表,并按照含有版本信息的标准化数据结构定义不同的上游数据源,形成结构化消息,同时保存该结构化消息的副本以备重放;(2)在客户端向服务端发送订阅消息的请求;(3)服务端对请求订阅的消息进行权限和版本校验,如校验成功,则继续到步骤(4),如校验失败,则返回步骤(2);(4)客户端创建对应版本的消息解码器;(5)服务端建立具有版本信息的消息发送队列,同时创建对应版本的消息编码器;(6)服务端对消息进行编码,组装成数据包后发送至客户端。
进一步地,还包括步骤(7):客户端建立数据更新缓存并构建索引,并根据新接收的消息对内存中的快照进行合并更新。
进一步地,步骤(1)中所述标准化数据结构包括数据包头和数据承载域,所述数据包头包括数据属性信息和日志信息,所述数据承载域包括数据的实体信息。
进一步地,所述数据包头包括消息起始标志、消息长度、消息时间、包序列号、消息一级分类、消息二级分类、消息版本号和校验码。
进一步地,所述数据承载域包括数据包内的数据记录条数、记录字段域掩码和记录字段域内容;所述记录字段域掩码是指对不同的数据消息中针对每个字段标识掩码,以实现数据的增量发送。
与现有技术相比,本发明的有益效果为:
1、适用范围广:对于不同的数据源只需简单增加对应的消息适配管理模块即可完成数据的发布,可适用于文件、数据库、网络数据流等数据源,同时有效的隔离了数据源的变化对下游业务系统的影响。
2、系统稳定性高:不同的数据源由不同的消息适配管理模块隔离,同时支持消息的多版本发布,大大的提供了数据传输系统及下游业务系统的稳定性,不同的数据源传输不会互相影响。
3、易于扩展:对于不同的数据源及不同版本的数据源之间只需扩展消息适配管理模块,并部署新的服务端,可以很方便的实现水平扩展。
4、支持离线重放:在数据传输的同时将实时数据流记录到日志文件,离线可以完美重放实时数据流,方便下游业务系统测试。
附图说明
图1是本发明系统一个实施例的原理框图;
图2是本发明系统一个实施例中消息适配管理模块的原理框图;
图3是本发明系统一个实施例中发布订阅模块的原理框图;
图4是本发明方法一个实施例的流程图;
图5是本发明方法另一个实施例的流程图;
图6是本发明系统或方法一个实施例中消息的数据结构图。
具体实施方式
下面结合附图和具体实施例,对本发明的技术方案做进一步说明。
如图1所示,本发明适于多版本时序数据传输和重放的系统的一个实施例,包括客户端,用于根据用户权限向服务端发送消息订阅请求,并接收订阅的消息;服务端,用于标准化定义消息的数据结构,该数据结构中至少包括消息分类、版本信息、数据包标识号和消息发送时间;将上游数据源适配成具有所述数据结构的消息;接收客户端的消息订阅请求,根据用户权限和消息的版本信息对请求订阅的消息进行校验,校验通过后将消息回传给客户端;根据所述数据包标识号和消息发送时间重放所述消息;网络传输模块,用于所述客户端与服务端之间的数据传输。
在本发明系统的一个实施例中,如图1所示,所述客户端包括消息订阅模块和应用程序接口(Application Programming Interface,API);所述消息订阅模块适于根据用户权限进行消息订阅管理;所述应用程序接口用于接入客户端订阅和接收业务消息。
在本发明系统的一个实施例中,如图1所示,所述客户端还包括数据更新缓存单元,用于缓存消息于内存中,并根据新接收的消息对内存中的快照进行合并更新。
在本发明系统的一个实施例中,如图1所示,所述服务端包括多个并联的分别对应于不同上游数据源的消息管理适配模块、发布订阅模块和数据包组装模块;各所述消息管理适配模块的输入端连接至与其对应的上游数据源,各所述消息管理适配模块的输出端均连接至所述发布订阅模块,所述发布订阅模块的输入端通过所述网络传输模块连接至所述客户端以接收订阅请求,所述发布订阅模块的输出端连接至所述数据包组装模块的输入端,所述数据包组装模块的输出端通过所述网络传输模块连接至所述客户端以回传订阅的消息;所述消息管理适配模块适于定义所述数据结构,并将上游数据源适配成具有所述数据结构的消息;所述发布订阅模块适于接收客户端的消息订阅请求,根据用户权限和消息的版本信息对请求订阅的消息进行校验,校验通过后将消息回传给客户端;所述数据包组装模块用于将消息组装成具有所述数据结构的数据包。
在本发明系统的一个实施例中,如图1所示,所述服务端还包括用户权限管理模块,所述用户权限管理模块适于进行账户权限管理。
在本发明系统的一个实施例中,如图1所示,所述服务端还包括日志模块,所述日志模块适于存储记录所述数据包,以离线重放。
在本发明系统的一个实施例中,如图1所示,所述客户端还包括多个并联的分别对应于不同版本消息的解码器,所述服务端还包括多个并联的分别对应于不同版本消息的编码器,各所述编码器与各所述解码器一一对应。
在本发明系统的一个实施例中,如图2所示,所述消息管理适配模块包括数据结构抽象及标准化定义单元、分类单元和适配单元;所述发布订阅模块包括多个并联的不同版本的发布单元、订阅单元;所述数据结构抽象及标准化定义单元用于将上游数据源定义成所述数据结构,所述分类单元用于根据所述数据结构中的版本信息将该数据源分成不同的版本,所述适配单元用于将不同版本的数据源与所述发布订阅模块中对应版本的发布端口相匹配。
在本发明系统的一个实施例中,如图3所示,所述发布订阅模块包括多个并联的不同版本的发布单元、订阅单元、权限及版本校验单元和发送队列单元;各所述发布单元用于发布不同版本的信息,所述订阅单元用于接收消息订阅请求,所述权限及版本校验单元用于根据用户权限和信息版本对拟订阅消息与发布的消息进行一致性校验,所述发送队列单元用于存储待发送的消息;所述适配单元用于将不同版本的数据源与各所述发布单元相匹配。
如图4所示,本发明适于多版本时序数据传输和重放的方法的一个实施例,步骤如下:S100在服务端建立用户权限列表,并按照含有版本信息的标准化数据结构定义不同的上游数据源,形成结构化消息,同时保存该结构化消息的副本以备重放;S110在客户端向服务端发送订阅消息的请求;S120服务端对请求订阅的消息进行权限和版本校验;S130判断校验是否成功,如校验成功,则继续到步骤S140,如校验失败,则返回步骤S110;S140客户端创建对应版本的消息解码器;S150服务端建立具有版本信息的消息发送队列,同时创建对应版本的消息编码器;S160服务端对消息进行编码,组装成数据包后发送至客户端。
如图5所示,本发明方法的另一个实施例,步骤如下:S200在服务端建立用户权限列表,并按照含有版本信息的标准化数据结构定义不同的上游数据源,形成结构化消息,同时保存该结构化消息的副本以备重放;S210在客户端向服务端发送订阅消息的请求;S220服务端对请求订阅的消息进行权限和版本校验;S230判断校验是否成功,如校验成功,则继续到步骤S240,如校验失败,则返回步骤S210;S240客户端创建对应版本的消息解码器;S250服务端建立具有版本信息的消息发送队列,同时创建对应版本的消息编码器;S260服务端对消息进行编码,组装成数据包后发送至客户端;S270客户端建立数据更新缓存并构建索引,并根据新接收的消息对内存中的快照进行合并更新。
为了便于理解本发明的技术方案,下面结合更具体的数据实例来对本发明的上述系列实施例进行统一阐释。
【消息示例:】
证券市场股票成交数据为例,不同市场的成交数据皆可标准化为如下数据结构数据版本为1
数据样例:
600000 14:02:03.950 100 8.6 860
600000 14:02:03.950 200 8.6 1720
以下就上述两条数据样例进行实例说明:
数据包头包括:
1.消息起始标志:用于标识消息起始位置,同时是本系统消息的身份证明,系统在处理时可根据此字段排除外部入侵消息。
2.消息长度:标识一条完整数据消息的长度。
3.消息时间:由服务端在发送消息时标识。用于探测数据传输延迟以及离线重放。
4.包序列号:数据包的唯一编号,用于探测数据丢包及回补。
5.消息一级分类、消息二级分类:消息二级分类体系,用于组织管理不同分类的数据,方便用户订阅。
这里以证券市场为例,比如上海证券交易所和深圳证券交易所每天发布的成交数据,通过消息分类标准化后,形成消息定义如下
上海证券交易所:
消息一级分类:20:这里代表上交所
消息二级分类:1,代表股票快照类数据
2,代表股票成交类数据
深圳证券交易所:21,这里代表深交所
消息二级分类:1,代表股票快照类数据
2,代表股票成交类数据
服务端定义一个账户如accout1权限为消息一级分类20,二级分类2,版本号为1;消息一级分类21,二级分类2,版本号为1;即表示该账户有订阅上交所和深交所成交数据版本1的权限,以此类推。
6.消息版本号:消息版本号用于标识消息对应的数据版本,实现数据多版本的管理。
7.校验码:用于校验数据的完整性及安全性。
数据承载域包括:
1.数据记录数:当前数据包承载的记录总数
2.数据域掩码:不同的数据消息中针对每个字段标识掩码,以实现数据的增量发送。
3.数据内容:数据消息的实际承载内容。
消息适配管理过程
本过程主要描述前述数据承载域的定义过程。
一.对于新的数据源,对其中业务数据的结构进行抽象及标准化的定义,同时定义标准化后的数据结构对应的消息一级分类和二级分类以及版本号。
见前述关于证券市场成交数据的定义,这里再举例说明数据版本的应用
前述版本1中成交数据的定义为如下几个字段
因交易所业务发展,将证券进行了分组,在成交数据中引入了证券集的概念,本系统中采用如下处理
1、首先在数据结构中增加证券集setno字段
2、将版本升级为2;
3、增加版本2的编解码器
4、为需要使用版本2的用户新建账户accout2,权限为消息一级分类20,二级分类2,版本号为2;消息一级分类21,二级分类2,版本号为2;即表示该账户有订阅上交所和深交所成交数据版本2的订阅权限
5、版本1的用户无需做任何更改。
又因业务发展交易取消发布amout字段,则不需要修改数据结构,系统作如下操作:
1、升级版本为3
2、增加版本为3的编解码器,对除amout字段外的其他字段进行编解码
3、为需要使用版本3的用户新建账户account3,权限为消息一级分类20,二级分类2,版本号为3;消息一级分类21,二级分类2,版本号为3;即表示该账户有订阅上交所和深交所成交数据版本3的订阅权限
4、修改版本1和版本2的编码器,用price*volume自行计算amount并发布,解码器不需要进行任何修改。
5、使用版本1和版本2的客户端不需要进行任何变动。
6、需要使用新版本的客户端用新账号进行订阅即可。
二.如数据源发生变化,需修改该数据源对应的标准化结构,修改时采用只新增字段且不删除原有字段的原则。同时升级对应消息定义的版本号。
三.编写消息各个版本对应的编解码器,消息的编解码器使用消息一级分类、消息二级分类、消息版本号、编码器类型组成一个四元组来注册该消息版本的编解码器。编码器主要有二进制编码和停止位编码,这部分只是对技术进行创新的应用,主要通过衡量数据传输的效率来评估使用那种编码方式对数据进行编码,这里举两个例子,比如前述成交数据结构中的char symbol[32];占用32个字节,实际证券代码可能仅有6位,这时采用字符串停止位编码即可将数据压缩为7个字节,再结合字段掩码可以压缩当前记录中和前一条数据一样的证券代码占用的空间,节约传输流量;二进制编码可以在万兆局域网中等带宽不受限的环境中使用,以提升编解码效率,提高传输效率。
四.对于数据源适配过程中产生的标准化的数据包由日志模块进行记录,用于离线重放。
这里还以证券市场数据为例,如用户开发的交易系统在交易所休市期间想要测试就需要重放功能,这样可以让用户的开发测试工作不依赖于交易所是否开市,随时随地可以推进交易系统的开发工作。以此类推,主要解决实时数据的记录,用于离线场景的重放,为下游业务开发工作提供便利。
多版本兼容的数据订阅发布过程
本过程描述客户端如何向服务端订阅数据消息,及服务端的处理过程。
一.服务端加载前述消息适配管理过程所定义消息二级分类建立与用户权限相一致的权限信息表。
二.客户端向服务端发起连接请求,建立连接后向服务端请求订阅所需数据消息及对应版本,服务端需根据加载的用户权限列表及版本信息,对客户端请求订阅的数据消息进行权限和版本的校验,如成功则返回成功订阅的消息列表;若失败则返回错误信息给客户端。
校验过程如下:
消息一级分类:20:这里代表上交所
消息二级分类:1,代表股票快照类数据
2,代表股票成交类数据
1、服务端定义一个账户如accout1权限为消息一级分类20,二级分类2,版本号为1;消息一级分类21,二级分类2,版本号为1;即表示该账户有订阅上交所和深交所成交数据版本1的权限,
2、客户端发送订阅请求如下account1,20,2,1即用accout1订阅上交所的成交数据,版本为1;服务端收到订阅请求后首先从权限定义表中获取accout1的权限信息,查找是否有20,2,1的权限,如果有则校验通过,否则校验失败。
三.客户端收到订阅成功消息后,创建对应版本的解码器等待服务端推送数据;如收到订阅失败消息则需要根据返回错误码提示错误原因;
四.服务端需根据客户端订阅情况,建立具有版本信息的消息发送队列,并维护订阅该消息的客户端列表;同时创建前述消息适配管理过程中定义的对应版本的消息编码器;
五.服务端接收到的上游数据经过消息适配后,转换成对应的二级分类消息数据结构后,扫描订阅该消息的不同版本的发送队列,使用该发送队列对应的版本编码器对数据进行编码,组装后放入通用数据承载协议中定义的数据包的数据承载域中,由网络模块发送给客户端;
六.服务端向客户端发送消息时采用增量方式,对于未发生变化的字段采用掩码表示,不再发送,以节约带宽。
七.客户端接收到服务端推送的数据消息后,建立数据更新缓存并构建索引,并根据新接收的消息对内存中的快照进行合并更新。
此部分主要针对数据的时间截面进行处理,示例如下
我们定义证券的最新截面数据如下
假如接收的数据按时间顺序如下
1、这里如前述采用掩码增量发送机制,实际服务端发送数据时,数据2、数据3、数据4的newprice、bid1、ask1并没有发送,客户端默认为无效值2、客户端对数据1的处理:该类数据缓存以证券代码为索引,同时记录在缓存中的位置,客户端收到数据1后先查找缓存中是否存在该证券代码,如没有则创建并将当前数据更新到缓存中。
3、客户端对数据2、数据3、数据4的处理,因为缓存中已经存在该证券代码的记录,所以根据索引找到该记录,将快照时间和总成交量更新到快照中,同时因为数据2、数据3、数据4的newprice、bid1、ask1为无效值,系统将缓存中的newprice、bid1、ask1赋值给数据2、数据3、数据4之后,形成一个完整的数据之后再供客户端业务系统使用。
八.系统在消息头上标记发送时间和包号,用于监测延迟及后续重放。
九.如客户端接收缓慢则需要将消息缓存到消息队列中以保证数据的完整性。
网络传输过程
前述数据订阅发布过程中的数据包传输由统一的网络传输模块实现,本过程主要描述网络传输模块的处理过程。
1.服务端开启监听端口后,客户端发起socket连接,服务端将该socket放入连接池中。
2.根据前述订阅发布过程,客户端登录并订阅成功后,网络模块根据前述过程中建立的具有版本信息的消息发送队列对socket进行分组。如客户端登录并订阅失败,网络模块则关闭对应的socket连接。
3.服务端定时向客户端发送心跳消息。
4.客户端根据服务端发送的心跳消息判断网络连接是否有效。
5.如发生网络连接中断,客户端具备自动重连机制,并根据上次接收到的最新包序号向服务端请求继续传输。
离线重放过程
前述消息适配管理过程中记录的数据日志可通过离线重放模块进行重放,本过程主要描述离线重放的处理过程。
服务端加载需要重放的数据日志文件后。从数据日志文件中按顺序读取数据包,并根据前后两个数据包中记录的消息时间的差值,通过倍数参数控制回放速度,等待相应时间后发出,模拟真实场景的数据流。具体等待时间算法如下:((T2-T1)/Speed)>=((T’2-T’1)/Speed)
T2:当前时间2
T1:当前时间1
T’2:数据包发送时间2
T’1:数据包发送时间1
Speed:倍速
从数据日志文件回放过程如下:
1、读取第一个完整的数据包,根据发送时间字段获取发送时间T’1,记录当前时间T1,发送该数据包。
2、读取下一个完整的数据包,根据发送时间字段获取发送时间T’2,记录当前时间T2,如当前时间的间隔(T2-T1)/Speed大于等于发送时间的间隔(T’2-T’1)/Speed,则发送该数据包,否则等待时间间隔((T’2-T’1)/Speed)-((T2-T1)/Speed)后发送该数据包。
3、重复过程2到文件结尾。
本发明是参照根据本发明实施例的系统、方法和计算机存储介质的流程图和/或框图来描述的。应理解可由计算机程序指令实现流程图和/或框图中的每一流程和/或方框、以及流程图和/或框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制,尽管参照上述实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本发明的具体实施方式进行修改或者等同替换,而未脱离本发明精神和范围的任何修改或者等同替换,其均应涵盖在本发明的权利要求保护范围之内。
Claims (13)
1.一种适于多版本时序数据传输和重放的系统,其特征在于,包括:
客户端,用于根据用户权限,向服务端发送消息订阅请求,并接收订阅的消息;所述客户端包括多个并联的分别对应于不同版本消息的解码器;
服务端,用于标准化定义消息的数据结构,该数据结构中至少包括消息分类、版本信息、数据包标识号和消息发送时间;所述服务端包括多个并联的分别对应于不同上游数据源的消息管理适配模块,所述消息管理适配模块适于定义所述数据结构,并将上游数据源适配成具有所述数据结构的消息,所述服务端还包括多个并联的分别对应于不同版本消息的编码器,各所述编码器与各所述解码器一一对应;接收客户端的消息订阅请求,根据用户权限和消息的版本信息对请求订阅的消息进行校验,校验通过后将消息回传给客户端;根据所述数据包标识号和消息发送时间重放所述消息;
网络传输模块,用于所述客户端与服务端之间的数据传输。
2.根据权利要求1所述的适于多版本时序数据传输和重放的系统,其特征在于,所述客户端包括消息订阅模块和应用程序接口;所述消息订阅模块适于根据用户权限进行消息订阅管理;所述应用程序接口用于接入客户端订阅和接收消息。
3.根据权利要求2所述的适于多版本时序数据传输和重放的系统,其特征在于,所述客户端还包括数据更新缓存单元,用于缓存消息于内存中,并根据新接收的消息对内存中的快照进行合并更新。
4.根据权利要求2所述的适于多版本时序数据传输和重放的系统,其特征在于,所述服务端包括多个并联的消息管理适配模块、发布订阅模块和数据包组装模块;各所述消息管理适配模块的输入端连接至与其对应的上游数据源,各所述消息管理适配模块的输出端均连接至所述发布订阅模块,所述发布订阅模块的输入端通过所述网络传输模块连接至所述客户端以接收订阅请求,所述发布订阅模块的输出端连接至所述数据包组装模块的输入端,所述数据包组装模块的输出端通过所述网络传输模块连接至所述客户端以回传订阅的消息;所述发布订阅模块适于接收客户端的消息订阅请求,根据消息类型、用户权限和消息的版本信息对请求订阅的消息进行校验,校验通过后,通过所述数据包组装模块将消息回传给客户端;所述数据包组装模块用于将消息组装成具有所述数据结构的数据包。
5.根据权利要求4所述的适于多版本时序数据传输和重放的系统,其特征在于,所述服务端还包括用户权限管理模块,所述用户权限管理模块适于进行账户权限管理。
6.根据权利要求4所述的适于多版本时序数据传输和重放的系统,其特征在于,所述服务端还包括日志模块,所述日志模块适于存储记录所述数据包,以离线重放。
7.根据权利要求4所述的适于多版本时序数据传输和重放的系统,其特征在于,所述消息管理适配模块包括数据结构抽象及标准化定义单元、分类单元和适配单元;所述发布订阅模块包括多个并联的不同版本的发布单元、订阅单元;所述数据结构抽象及标准化定义单元用于将上游数据源定义成所述数据结构,所述分类单元用于根据所述数据结构中的版本信息将该数据源分成不同的版本,所述适配单元用于将不同版本的数据源与所述发布订阅模块中对应版本的发布端口相匹配。
8.根据权利要求7所述的适于多版本时序数据传输和重放的系统,其特征在于,所述发布订阅模块包括多个并联的不同版本的发布单元、订阅单元、权限及版本校验单元和发送队列单元;各所述发布单元用于发布不同版本的信息,所述订阅单元用于接收消息订阅请求,所述权限及版本校验单元用于根据用户权限和信息版本对拟订阅消息与发布的消息进行一致性校验,所述发送队列单元用于存储待发送的消息;所述适配单元用于将不同版本的数据源与各所述发布单元相匹配。
9.一种适于多版本时序数据传输和重放的方法,其特征在于,包括以下步骤:
(1)在服务端建立用户权限列表,所述服务端包括多个并联的分别对应于不同上游数据源的消息管理适配模块,所述消息管理适配模块适于定义数据结构,并将上游数据源适配成具有所述数据结构的消息,并按照含有版本信息的标准化数据结构定义不同的上游数据源,形成结构化消息,同时保存该结构化消息的副本以备重放;
(2)在客户端向服务端发送订阅消息的请求;
(3)服务端对请求订阅的消息进行权限和版本校验,如校验成功,则继续到步骤(4),如校验失败,则返回步骤(2);
(4)客户端创建对应版本的消息解码器;
(5)服务端建立具有版本信息的消息发送队列,同时创建对应版本的消息编码器;
(6)服务端对消息进行编码,组装成数据包后发送至客户端。
10.根据权利要求9所述的适于多版本时序数据传输和重放的方法,其特征在于,还包括步骤(7):客户端建立数据更新缓存并构建索引,并根据新接收的消息对内存中的快照进行合并更新。
11.根据权利要求9所述的适于多版本时序数据传输和重放的方法,其特征在于,步骤(1)中所述标准化数据结构包括数据包头和数据承载域,所述数据包头包括数据属性信息和日志信息,所述数据承载域包括数据的实体信息。
12.根据权利要求11所述的适于多版本时序数据传输和重放的方法,其特征在于,所述数据包头包括消息起始标志、消息长度、消息时间、包序列号、消息一级分类、消息二级分类、消息版本号和校验码。
13.根据权利要求11所述的适于多版本时序数据传输和重放的方法,其特征在于,所述数据承载域包括数据包内的数据记录条数、记录字段域掩码和记录字段域内容;所述记录字段域掩码是指对不同的数据消息中针对每个字段标识掩码,以实现数据的增量发送。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111336738.1A CN114338797B (zh) | 2021-11-12 | 2021-11-12 | 适于多版本时序数据传输和重放的系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111336738.1A CN114338797B (zh) | 2021-11-12 | 2021-11-12 | 适于多版本时序数据传输和重放的系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114338797A CN114338797A (zh) | 2022-04-12 |
CN114338797B true CN114338797B (zh) | 2024-03-19 |
Family
ID=81045502
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111336738.1A Active CN114338797B (zh) | 2021-11-12 | 2021-11-12 | 适于多版本时序数据传输和重放的系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114338797B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102077517A (zh) * | 2008-06-25 | 2011-05-25 | 微软公司 | 用于同步不同网络上的数据的适配器 |
CN104866326A (zh) * | 2015-06-19 | 2015-08-26 | 长沙廖氏软件科技有限公司 | 一种集成交换中间件及其实现方法 |
CN111857585A (zh) * | 2020-07-10 | 2020-10-30 | 苏州浪潮智能科技有限公司 | 存储系统自定义业务功能配置方法、装置、设备及介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2532490B (en) * | 2014-11-21 | 2017-02-22 | Ibm | Publish/subscribe messaging using message structure |
-
2021
- 2021-11-12 CN CN202111336738.1A patent/CN114338797B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102077517A (zh) * | 2008-06-25 | 2011-05-25 | 微软公司 | 用于同步不同网络上的数据的适配器 |
CN104866326A (zh) * | 2015-06-19 | 2015-08-26 | 长沙廖氏软件科技有限公司 | 一种集成交换中间件及其实现方法 |
CN111857585A (zh) * | 2020-07-10 | 2020-10-30 | 苏州浪潮智能科技有限公司 | 存储系统自定义业务功能配置方法、装置、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN114338797A (zh) | 2022-04-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11647097B2 (en) | Providing access to managed content | |
US7702640B1 (en) | Stratified unbalanced trees for indexing of data items within a computer system | |
US11860900B2 (en) | Log-based distributed transaction management | |
US8510404B2 (en) | Peer to peer Synchronization system and method | |
US10579595B2 (en) | Method and device for calling a distributed file system | |
US8396938B2 (en) | Providing direct access to distributed managed content | |
US7783607B2 (en) | Decentralized record expiry | |
KR101574816B1 (ko) | 비동기 복제 | |
US7337239B2 (en) | Atomic message division | |
US20130275533A1 (en) | Peer-to-peer collaboration of publishers in a publish-subscription environment | |
US20220414088A1 (en) | Performance efficient blockchain application programming interfaces | |
CN114338797B (zh) | 适于多版本时序数据传输和重放的系统及方法 | |
CN110188118A (zh) | 一种数据同步方法、装置 | |
CN110049133B (zh) | 一种dns区文件全量下发的方法和装置 | |
US11645211B2 (en) | Augmenting storage functionality using emulation of storage characteristics | |
CN109992447B (zh) | 数据复制方法、装置及存储介质 | |
CN113448757B (zh) | 消息处理方法、装置、设备、存储介质和系统 | |
CN115695587A (zh) | 一种业务数据处理系统、方法、装置和存储介质 | |
CN113347052A (zh) | 通过访问日志统计用户访问数据的方法和装置 | |
US11875037B2 (en) | Request-based content services replication | |
CN110825715A (zh) | 基于Ceph对象存储的多对象数据秒合的实现方法 | |
CN117422556B (zh) | 基于复制状态机的衍生品交易系统、设备和计算机介质 | |
WO2024037117A1 (zh) | 一种基于区块链的数据处理方法、设备、介质和程序产品 | |
CN117834204A (zh) | 一种连续时间约束下的独立用户数量计算方法及装置 | |
CN117891778A (zh) | 一种Kafka数据索引方法、装置及可读介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |