一种基于文件持久化的消息分发方法技术

技术编号:35192102 阅读:13 留言:0更新日期:2022-10-12 18:13
本发明专利技术公开了信息处理技术领域的一种基于文件持久化的消息分发方法,包括如下步骤:消息发布方通过访问地址推送需要分发的消息,进入系统对应的分发主题;利用发布订阅引擎完成消息的文件持久化、消息复制、消息推送、重发、结果回调和推送记录入库;在消息推送时,根据主题配置的订阅服务,确定订阅服务的报文格式、消息处理流程和服务地址,将消息按要求处理、转换后推送给指定地址;在持久化文件系统中,由发布订阅引擎将消息写入文件,订阅文件按应用系统进行文件隔离,文件扫描过程为使用单线程扫描文件,然后交于多线程处理文件消息的方式进行文件处理,该方法支持不同消息格式的转换,将企业客户系统之间消息传输的问题完整解决。整解决。

【技术实现步骤摘要】
一种基于文件持久化的消息分发方法


[0001]本专利技术涉及信息处理
,具体为一种基于文件持久化的消息分发方法。

技术介绍

[0002]如今,当某一个业务系统需要将一个数据消息发送给多个不同的业务系统的时候,他们往往会使用发布订阅的模式,业务系统需要将消息发布在中间介质上面,发布消息的业务系统为消息发布者(即生产消息的一方),多个不同的业务系统需要从中间介质上面接收消息,为消息订阅者(即消息消费者),当前大多数的中间介质为消息队列,消息队列支持消息发布和消息订阅,例如RabbitMQ、RecketMQ、Kafka和ActiveMq等,他们大多实现采用了jms规范和amqp规范等。如果业务系统使用以上作为发布订阅中间介质,需要根据使用的队列中间件去适配队列的连接技术,导致了技术学习成本和系统改造成本;另外MQ队列功能较为单一,只能做消息缓存与分发,无法完整解决实际问题,需与其他功能系统配合使用。并且这类纯技术中间件,使用难度也较高,并且管理界面交互不友好,故为了降低业务系统使用的难度,亟需设计一种新型消息分发方式,基于此,本专利技术设计了一种基于文件持久化的消息分发方法,以解决上述问题。

技术实现思路

[0003]本专利技术的目的在于提供一种基于文件持久化的消息分发方法,以解决上述
技术介绍
中提出的问题。
[0004]为实现上述目的,本专利技术提供如下技术方案:一种基于文件持久化的消息分发方法,包括如下步骤:
[0005]S1:消息发布方通过访问地址推送需要分发的消息,进入系统对应的分发主题;
[0006]S2:利用发布订阅引擎完成消息的文件持久化、消息复制、消息推送、重发、结果回调和推送记录入库;
[0007]S3:在消息推送时,根据主题配置的订阅服务,确定订阅服务的报文格式、消息处理流程和服务地址,将消息按要求处理、转换后推送给指定地址;
[0008]S4:在持久化文件系统中,由发布订阅引擎将消息写入文件,订阅文件按应用系统进行文件隔离,保证不同系统之间互不影响;
[0009]S5:上述步骤S4涉及的文件扫描过程为使用单线程扫描文件,然后交于多线程处理文件消息的方式进行文件处理。
[0010]优选的,所述分发主题的数据结构、发布订阅引擎的数据结构和订阅服务配置的数据结构都使用Java语言实现。
[0011]优选的,所述分发主题组件、发布订阅引擎组件和订阅服务配置组件加载在一站式的业务配置界面上。
[0012]优选的,所述步骤S3具体为:订阅系统原子服务流程接收任务,将消息推送至原子服务的订阅方,判断推送订阅方是否成功;若未成功,则判断是否需要重发,反之,判断是否
需要回调,若需要重发,则恢复上下文,间隔时间后再次发送;若无需重发,则判断是否需要回调,若需要回调;则根据回调配置依次进行回调,再将调用结果和上下文信息存入ES数据库,若不需要回调,则直接将调用结果和上下文信息存入ES数据库,同时也结束。
[0013]优选的,所述步骤S4具体为:分发系统的服务方收到发布方的消息,判断是否开启异步处理;若开启,则判断是否开启持久化;若不开启持久化,则将消息拆分后,异步触发订阅系统原子服务流程;完成后,返回指定消息给发布方,结束;若开启持久化,则将消息按照订阅系统进行拆分,将消息写入文件进行持久化,完成后,也返回指定消息给发布方,同样也结束。
[0014]优选的,所述步骤S4中若不开启异步处理,则将消息拆分后,同步触发订阅系统原子服务流程,再阻塞等待原子服务返回结果,对订阅系统返回结果进行合并,最后将合并后的结果返回给发布方,结束。
[0015]与现有技术相比,本专利技术的有益效果是:本专利技术将消息持久化存储到本地文件,使用线程扫描文件读取消息内容,对消息内容进行解析,将消息分发到目的方系统,可以用于消息发布与消息订阅,该方法实现了消息一对一的分发,消息一对多的分发,消息多对多的分发,同时该方法支持不同消息格式的转换,将企业客户系统之间消息传输的问题完整解决,从功能上提供了消息持久化、消息发布、消息拆分、消息格式转换、协议适配、缓存、重试、回调通知等一系列功能,完善了传统消息分发场景使用mq队列的各种功能不足;并且提供了一站式的业务配置界面,可以让用户着重关注于解决企业消息传输的业务问题,降低了学习技术的成本。
附图说明
[0016]为了更清楚地说明本专利技术实施例的技术方案,下面将对实施例描述所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0017]图1为本专利技术方法流程图;
[0018]图2为本专利技术订阅系统服务处理流程图;
[0019]图3为本专利技术分发系统消息接收处理流程图。
具体实施方式
[0020]下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本专利技术保护的范围。
[0021]在本专利技术的描述中,需要理解的是,术语“上”、“下”、“前”、“后”、“左”、“右”、“顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本专利技术和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本专利技术的限制。
[0022]请参阅图1,本专利技术提供一种技术方案:一种基于文件持久化的消息分发方法,包
括如下步骤:
[0023]S1:消息发布方通过访问地址推送需要分发的消息,进入系统对应的分发主题;
[0024]S2:利用发布订阅引擎完成消息的文件持久化、消息复制、消息推送、重发、结果回调和推送记录入库,其中,消息持久化:保证消息不丢失,消息持久化采用完全自研的文件存储模块,保证了数据完整不丢失;
[0025]S3:在消息推送时,根据主题配置的订阅服务,确定订阅服务的报文格式、消息处理流程和服务地址,将消息按要求处理、转换后推送给指定地址;
[0026]S4:在持久化文件系统中,由发布订阅引擎将消息写入文件,订阅文件按应用系统进行文件隔离,保证不同系统之间互不影响;
[0027]S5:上述步骤S4涉及的文件扫描过程为使用单线程扫描文件,然后交于多线程处理文件消息的方式进行文件处理,保证了文件的处理效率。
[0028]其中,分发主题的数据结构、发布订阅引擎的数据结构和订阅服务配置的数据结构都使用Java语言实现,跨平台使用,不依赖于第三方系统,且分发主题组件、发布订阅引擎组件和订阅服务配置组件加载在一站式的业务配置界面上,消息分发流程是根据业务系统配置对消息进行处理,包括数据的清洗、转换和计算;协议的适配技术,解决企业各系统使用不同协议发送或接收消息,本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于文件持久化的消息分发方法,其特征在于,包括如下步骤:S1:消息发布方通过访问地址推送需要分发的消息,进入系统对应的分发主题;S2:利用发布订阅引擎完成消息的文件持久化、消息复制、消息推送、重发、结果回调和推送记录入库;S3:在消息推送时,根据主题配置的订阅服务,确定订阅服务的报文格式、消息处理流程和服务地址,将消息按要求处理、转换后推送给指定地址;S4:在持久化文件系统中,由发布订阅引擎将消息写入文件,订阅文件按应用系统进行文件隔离,保证不同系统之间互不影响;S5:上述步骤S4涉及的文件扫描过程为使用单线程扫描文件,然后交于多线程处理文件消息的方式进行文件处理。2.根据权利要求1所述的一种基于文件持久化的消息分发方法,其特征在于:所述分发主题的数据结构、发布订阅引擎的数据结构和订阅服务配置的数据结构都使用Java语言实现。3.根据权利要求2所述的一种基于文件持久化的消息分发方法,其特征在于:所述分发主题组件、发布订阅引擎组件和订阅服务配置组件加载在一站式的业务配置界面上。4.根据权利要求1所述的一种基于文件持久化的消息分发方法,其特征在于:所述步骤S3具体为:订阅系统原子...

【专利技术属性】
技术研发人员:陈果刘子扬
申请(专利权)人:北京科创汇捷科技发展有限公司
类型:发明
国别省市:

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

1