消息重传方法技术

技术编号:38246189 阅读:11 留言:0更新日期:2023-07-25 18:06
本发明专利技术涉及大数据技术领域,提供一种消息重传方法,由消息重传服务器与上游系统对接,由API与下游客户端对接,降低了消息重传服务与业务间的耦合性,使系统更加轻量化,将消息按主题进行分区存储,分区存储的方式能够有效提升查询效率,消息重传服务器根据消息重传请求在存储的消息中进行查询得到目标消息,并封装目标消息得到待重传消息,将待重传消息通过TCP方式下发至API,API根据消息重传请求对待重传消息进行合并拆分处理得到至少一个数据包,由API控制重传的消息量及消息大小,分担消息重传服务器的操作负担,以提升吞吐量,节约消息重传服务器的资源,API将至少一个数据包下发至下游客户端,以快速实现消息重传。以快速实现消息重传。以快速实现消息重传。

【技术实现步骤摘要】
消息重传方法


[0001]本专利技术涉及大数据
,尤其涉及一种消息重传方法。

技术介绍

[0002]随着大数据时代的不断更新迭代,数据的可靠处理越来越重要。在有限条件下,传统系统提供的消息重传功能在高频交易下效率偏低。在效率表现较为优秀的系统中,业务和底层消息处理的耦合性较强,对后续业务扩展以及对整个系统消息发布方会造成负担。
[0003]并且,现有技术中的消息重传系统框架虽然支持消息重传和消息重演,但业务和消息处理耦合性较强,没有单独抽出相对完善的重传模块,使得整个系统较为臃肿,给整个系统消息发布方带来一定的处理负担。另外,系统的重传功能大多都是与系统业务相关紧密结合,整个系统不易于扩展,也未提供相关对应的API(Application Programming Interface,应用程序编程接口)接入。

技术实现思路

[0004]鉴于以上内容,有必要提供一种消息重传方法,旨在解决消息重传服务与业务耦合性高,且整个系统较为臃肿的问题。
[0005]一种消息重传方法,所述消息重传方法包括:当接收到对接的上游系统下发的消息时,所述消息重传服务器将接收到的消息按主题进行分区存储;当接收到所述API向所述消息重传服务器发起的消息重传请求时,所述消息重传服务器根据所述消息重传请求在存储的消息中进行查询,得到目标消息;所述消息重传服务器封装所述目标消息得到待重传消息,并将所述待重传消息通过TCP方式下发至所述API;所述API根据所述消息重传请求对所述待重传消息进行合并拆分处理,得到至少一个数据包;所述API将所述至少一个数据包下发至下游客户端。
[0006]根据本专利技术优选实施例,所述方法还包括:当接收到对所述消息重传系统的测试指令时,所述消息重传服务器获取Web页面上配置的主题;当接收到消息发送测试工具通过组播方式发送的以所述配置的主题模拟的测试消息时,所述消息重传服务器及所述API基于所述测试消息执行消息重传,以对所述消息重传系统进行测试。
[0007]根据本专利技术优选实施例,所述消息重传服务器将接收到的消息按主题进行分区存储包括:按照所述主题确定所述接收到的消息间的关联关系;根据所述关联关系在缓存中建立主题分区以存储所述接收到的消息,并建立各主
题分区中消息间的索引;其中,所述各主题分区中消息间的索引可以为至少两级的多级索引;其中,仅对所述多级索引中的指定级索引下的数据添加读写锁,其余数据为无锁操作;其中,以块为单位进行存储,每向所述缓存中写一个快,则为下一个块预分配预设内存空间;其中,每个主题分区中包括块组,各块组下包括预设数量的块;每个块组具有块组下标,每个块具有块下标;通过各个下标进行消息定位。
[0008]根据本专利技术优选实施例,所述消息重传服务器根据所述消息重传请求在存储的消息中进行查询,得到目标消息包括:从所述消息重传请求中获取开始重传的初始消息编号、重传消息笔数、重传消息主题及分区;根据所述重传消息主题及分区在所述缓存中定位消息位置;根据所述初始消息编号、所述重传消息笔数从所述缓存中读取所述目标消息。
[0009]根据本专利技术优选实施例,所述消息重传服务器封装所述目标消息得到待重传消息,并将所述待重传消息通过TCP方式下发至所述API包括:获取当前网络带宽;根据所述当前网络带宽配置多线程及消息体积;根据所述消息体积封装所述目标消息,得到至少一个待下发消息;通过所述TCP方式,利用所述多线程将所述至少一个待下发消息并行发送至所述API。
[0010]根据本专利技术优选实施例,所述API根据所述消息重传请求对所述待重传消息进行合并拆分处理包括:获取所述API与所述下游客户端间的网络带宽;根据所述网络带宽确定每次下发至所述下游客户端的数据量;当所述重传消息笔数大于所述数据量时,对所述待重传消息进行拆分;或者当所述重传消息笔数小于所述数据量时,对所述待重传消息进行合并。
[0011]根据本专利技术优选实施例,所述方法还包括:在所述API将所述至少一个数据包下发至所述下游客户端的过程中,当检测到丢包时,所述API基于被丢失的包向所述消息重传服务器发起消息重传指令;在所述API将所述至少一个数据包下发至所述下游客户端的过程中,当检测到所述消息重传服务器异常时,获取所述消息重传服务器的备用服务器,并利用所述备用服务器代替所述消息重传服务器继续服务;其中,所述备用服务器与所述消息重传服务器具有数据一致性。
[0012]根据本专利技术优选实施例,所述方法还包括:所述消息重传服务器基于LRU算法对所述消息重传服务器中存储的消息进行持久化处理。
[0013]根据本专利技术优选实施例,所述方法还包括:当所述消息重传服务器接收到所述下游客户端通过所述API反馈的成功接收到任
意消息的响应包时,所述消息重传服务器从所述缓存中删除所述任意消息。
[0014]根据本专利技术优选实施例,所述方法还包括:当接收到对任意系统的消息重传服务请求时,所述消息重传系统获取所述任意系统的业务需求数据;所述消息重传系统根据所述业务需求数据对接所述任意系统。
[0015]一种消息重传装置,运行于消息重传系统,所述消息重传系统包括消息重传服务器及API,所述消息重传装置包括:所述消息重传服务器,用于当接收到对接的上游系统下发的消息时,将接收到的消息按主题进行分区存储;所述消息重传服务器,还用于当接收到所述API向所述消息重传服务器发起的消息重传请求时,根据所述消息重传请求在存储的消息中进行查询,得到目标消息;所述消息重传服务器,还用于封装所述目标消息得到待重传消息,并将所述待重传消息通过TCP方式下发至所述API;所述API,用于根据所述消息重传请求对所述待重传消息进行合并拆分处理,得到至少一个数据包;所述API,还用于将所述至少一个数据包下发至下游客户端。
[0016]一种计算机设备,所述计算机设备包括:存储器,存储至少一个指令;及处理器,执行所述存储器中存储的指令以实现所述消息重传方法。
[0017]一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一个指令,所述至少一个指令被计算机设备中的处理器执行以实现所述消息重传方法。
[0018]由以上技术方案可以看出,由消息重传服务器与上游系统对接,由API与下游客户端对接,降低了消息重传服务与业务间的耦合性,使系统更加轻量化,将接收到的消息按主题进行分区存储,分区存储的方式能够有效提升查询效率,消息重传服务器根据消息重传请求在存储的消息中进行查询得到目标消息,并封装目标消息得到待重传消息,将待重传消息通过TCP方式下发至API,API根据消息重传请求对待重传消息进行合并拆分处理得到至少一个数据包,由API控制重传的消息量及消息大小,分担消息重传服务器的操作负担,以提升吞吐量,节约消息重传服务器的资源,进一步地,API将至少一个数据包下发至下游客户端,以快速实现消息重传。
附图说明
[0019]图1是本专利技术消息重传方法的较佳实施例的流程图。
[0020]图2是本专利技术消息重传装置的较佳实本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种消息重传方法,其特征在于,应用于消息重传系统,所述消息重传系统包括消息重传服务器及API,所述消息重传方法包括:当接收到对接的上游系统下发的消息时,所述消息重传服务器将接收到的消息按主题进行分区存储;当接收到所述API向所述消息重传服务器发起的消息重传请求时,所述消息重传服务器根据所述消息重传请求在存储的消息中进行查询,得到目标消息;所述消息重传服务器封装所述目标消息得到待重传消息,并将所述待重传消息通过TCP方式下发至所述API;所述API根据所述消息重传请求对所述待重传消息进行合并拆分处理,得到至少一个数据包;所述API将所述至少一个数据包下发至下游客户端。2.如权利要求1所述的消息重传方法,其特征在于,所述方法还包括:当接收到对所述消息重传系统的测试指令时,所述消息重传服务器获取Web页面上配置的主题;当接收到消息发送测试工具通过组播方式发送的以所述配置的主题模拟的测试消息时,所述消息重传服务器及所述API基于所述测试消息执行消息重传,以对所述消息重传系统进行测试。3.如权利要求1所述的消息重传方法,其特征在于,所述消息重传服务器将接收到的消息按主题进行分区存储包括:按照所述主题确定所述接收到的消息间的关联关系;根据所述关联关系在缓存中建立主题分区以存储所述接收到的消息,并建立各主题分区中消息间的索引;其中,所述各主题分区中消息间的索引可以为至少两级的多级索引;其中,仅对所述多级索引中的指定级索引下的数据添加读写锁,其余数据为无锁操作;其中,以块为单位进行存储,每向所述缓存中写一个快,则为下一个块预分配预设内存空间;其中,每个主题分区中包括块组,各块组下包括预设数量的块;每个块组具有块组下标,每个块具有块下标;通过各个下标进行消息定位。4.如权利要求3所述的消息重传方法,其特征在于,所述消息重传服务器根据所述消息重传请求在存储的消息中进行查询,得到目标消息包括:从所述消息重传请求中获取开始重传的初始消息编号、重传消息笔数、重传消息主题及分区;根据所述重传消息主题及分区在所述缓存中定位消息位置;根据所述初始消息编号、所...

【专利技术属性】
技术研发人员:何志东李秋军龙志豪阳小鲜张文成
申请(专利权)人:华锐分布式技术长沙有限公司
类型:发明
国别省市:

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

1