一种基于Ignite的消息有序处理方法及系统技术方案

技术编号:17970250 阅读:61 留言:0更新日期:2018-05-16 11:12
本发明专利技术公开一种基于Ignite的消息有序处理方法及系统,所述系统包括用于发送消息的单队列MQ和Ignite服务器,Ignite服务器内部集成的分布式消息组件和分布式内存组件,分布式消息组件包括均与分布式内存组件连接的发送节点和两个以上的接收节点,发送节点上设有发送程序,接收节点上运行有服务网格,服务网格中运行有接收程序。本发明专利技术利用Ignite内部集成的分布式消息组件和分布式内存组件,使用Ignite和MQ配合使用以实现对实时消息的有序及并发处理。

【技术实现步骤摘要】
一种基于Ignite的消息有序处理方法及系统
本专利技术涉及大数据处理领域,尤其涉及一种基于Ignite的消息有序处理方法及系统。
技术介绍
对于要处理实时产生的消息的应用场景,现有技术中通常是使用消息队列(MQ)配合STORM等分布式实时计算系统来完成。如图1所示,若消息要求被有序处理,又要求要尽量并发,那么消息源就要使用多队列MQ,不但设置起来比较繁琐,而且不够灵活。由于在STORM中无法保存消息,当STORM集群中某个节点在消息处理过程中发生故障,很难保证消息有序。Ignite自身对消息传输保障的不足。
技术实现思路
本专利技术的目的在于克服现有技术的不足,提供一种基于Ignite的消息有序处理方法及系统。本专利技术采用的技术方案是:一种基于Ignite的消息有序处理方法,其包括以下步骤:S1,发送节点接收到从外部单队列MQ发来的消息;S2,发送程序根据消息中的业务字段将数据写入根据该业务字段命名的分布式内存中;S3,发送程序把消息的主题定义为该业务字段并发送出去;S4,接收程序判定当前接收节点是否发生故障;若当前接收节点发生故障时执行故障处理步骤;否则,转入步骤S5;S5,接收程序发出一个消息,要求发送程序开始发送消息;S6,发送程序将要发送的消息写入分布式内存;S7,发送程序发送消息;S8,接收节点接收到发送节点发来的消息并进行处理,处理成功后从分布式内存删除该消息。进一步地,所述故障处理步骤包括以下步骤:S4-1,当前接收节点发生故障,包装有接收程序的服务网格从当前接收节点迁移到可用的接收节点,并重新启动接收程序;S4-2,接收程序发出,要求发送程序暂停发送消息的消息;S4-3,发送程序接收到暂停发送的消息后,停止发送消息,并向接收程序发送一个应答消息;S4-4,接收程序从分布式内存中以排序字段的顺序读取所有残留的消息,并按序处理;S4-5,接收程序处理完分布式内存中残存的消息后,把这些消息删除,并做好开始接收新消息的准备,转入步骤S5。本专利技术还公开了一种基于Ignite的消息有序处理系统,其包括用于发送消息的单队列MQ和Ignite服务器,Ignite服务器内部集成的分布式消息组件和分布式内存组件,分布式消息组件包括均与分布式内存组件连接的发送节点和两个以上的接收节点,发送节点上设有发送程序,接收节点上运行有服务网格,服务网格中运行有接收程序;发送节点用于单队列MQ发来消息的接收、按消息体中的业务字段进行消息的分组、将消息保存于分布式内存组件中以及把消息的主题定义为该业务字段并发送出去;接收节点用于对发送节点发送的消息的接收处理以及删除分布式内存组件保存的消息;分布式内存组件用于消息的保存,并供Ignite服务器内的发送节点和两个以上的接收节点访问。进一步地,接收接点故障时,Ignite服务器将该接收接点的服务网格迁移到正常接收节点。本专利技术采用以上技术方案,本专利技术具有如下优点:1、不需要外部系统使用复杂且不灵活的多队列MQ。2、把接收程序包装在Ignite的服务网格组件中运行,可以确保了消息处理的持续性。3、消息保存在分布式内存组件,读写速度快,没有单点故障,稳定可靠。4、消息处理系统运行在Ignite集群上,易于通过增加节点来扩展处理能力。附图说明以下结合附图和具体实施方式对本专利技术做进一步详细说明;图1为现有技术中消息有序处理的架构示意图;图2为本专利技术一种基于Ignite的消息有序处理的系统结构示意图;图3为本专利技术一种基于Ignite的消息有序处理的系统中消息处理示意图;图4为本专利技术一种基于Ignite的消息有序处理方法流程示意图。具体实施方式如图2-4之一所示,本专利技术公开了一种基于Ignite的消息有序处理方法及系统。Ignite是一种高性能的、集成化的以及分布式的内存平台,利用Ignite内部集成的分布式消息组件和分布式内存组件,使用Ignite和MQ配合使用以实现对实时消息的有序及并发处理。一种基于Ignite的消息有序处理方法,其包括以下步骤:S1,发送节点接收到从外部单队列MQ发来的消息,使用单队列MQ来发送消息为了使外部系统不需要使用繁琐的多队列MQ;S2,发送程序根据消息中的业务字段将数据写入根据该业务字段命名的分布式内存中;S3,发送程序把消息的主题定义为该业务字段并发送出去;S4,接收程序判定当前接收节点是否发生故障;若当前接收节点发生故障时执行故障处理步骤;否则,转入步骤S5;S5,接收程序发出一个消息,要求发送程序开始发送消息;S6,发送程序将要发送的消息写入分布式内存;S7,发送程序发送消息。S8,接收节点接收到发送节点发来的消息并进行处理,处理成功后从分布式内存删除该消息。进一步地,所述故障处理步骤包括以下步骤:S4-1,当前接收节点发生故障,包装有接收程序的服务网格从当前接收节点迁移到可用的接收节点,并重新启动接收程序;S4-2,接收程序发出,要求发送程序暂停发送消息的消息;S4-3,发送程序接收到暂停发送的消息后,停止发送消息,并向接收程序发送一个应答消息;这样做的目的是为了保证当接收程序读取内存中残留的消息时,内存中不会增加新的消息。这就要求当接收程序读取内存中的消息时,发送程序要暂停发送新的消息,等接收程序处理完内存中的消息并做好接收消息的准备后才开始发送消息。S4-4,接收程序从分布式内存中以排序字段的顺序读取所有残留的消息,并按序处理;S4-5,接收程序处理完分布式内存中残存的消息后,把这些消息删除,并做好开始接收新消息的准备,转入步骤S5。具体地在故障处理步骤中,为了保证在服务网格迁移的过程中,发送程序已发送出去消息不会丢失。在发送节点发送消息之前,把消息保存在Ignite集成的分布式内存组件中,集群中所有的节点都可以访问该内存。接收节点成功接收到消息后并成功处理后,就从内存中删除该消息。当服务网格发生迁移,接收程序开始启动时,要先读取内存中残留的消息,并进行处理后删除,然后才能开始接收发送节点发送的消息。本专利技术还公开了一种基于Ignite的消息有序处理系统,其包括用于发送消息的单队列MQ和Ignite服务器,Ignite服务器内部集成的分布式消息组件和分布式内存组件,分布式消息组件包括均与分布式内存组件连接的发送节点和两个以上的接收节点,发送节点上设有发送程序,接收节点上运行有服务网格,服务网格中运行有接收程序;具体地,为了确保消息不丢失,首先要保证接收程序的正常运行,才能保证消息被有序处理。我们把接收程序包装在Ignite集成的服务网格组件中运行,而服务网格则运行在接收节点上。当接收节点出现故障时,Ignite会自动把接收节点上运行的服务网格迁移到集群中其他正常运行的接收节点上,并自动启动接收程序,这样就能确保接收程序的持续运行。发送节点用于单队列MQ发来消息的接收、按消息体中的业务字段进行消息的分组、将消息保存于分布式内存组件中以及把消息的主题定义为该业务字段并发送出去;接收节点用于对发送节点发送的消息的接收处理以及删除分布式内存组件保存的消息;分布式内存组件用于消息的保存,并供Ignite服务器内的发送节点和两个以上的接收节点访问。进一步地,接收接点故障时,Ignite服务器将该接收接点的服务网格迁移到正常接收节点。本专利技术采用以上技术方案,本文档来自技高网...
一种基于Ignite的消息有序处理方法及系统

【技术保护点】
一种基于Ignite的消息有序处理方法,特征在于:其包括以下步骤:S1,发送节点接收到从外部单队列MQ发来的消息;S2,发送程序根据消息中的业务字段将数据写入根据该业务字段命名的分布式内存中;S3,发送程序把消息的主题定义为该业务字段并发送出去;S4,接收程序判定当前接收节点是否发生故障;若当前接收节点发生故障时执行故障处理步骤;否则,转入步骤S5;S5,接收程序发出一个消息,要求发送程序开始发送消息;S6,发送程序将要发送的消息写入分布式内存;S7,发送程序发送消息;S8,接收节点接收到发送节点发来的消息并进行处理,处理成功后从分布式内存删除该消息。

【技术特征摘要】
1.一种基于Ignite的消息有序处理方法,特征在于:其包括以下步骤:S1,发送节点接收到从外部单队列MQ发来的消息;S2,发送程序根据消息中的业务字段将数据写入根据该业务字段命名的分布式内存中;S3,发送程序把消息的主题定义为该业务字段并发送出去;S4,接收程序判定当前接收节点是否发生故障;若当前接收节点发生故障时执行故障处理步骤;否则,转入步骤S5;S5,接收程序发出一个消息,要求发送程序开始发送消息;S6,发送程序将要发送的消息写入分布式内存;S7,发送程序发送消息;S8,接收节点接收到发送节点发来的消息并进行处理,处理成功后从分布式内存删除该消息。2.根据权利要求1所述的一种基于Ignite的消息有序处理方法,其特征在于:所述故障处理步骤包括以下步骤:S4-1,当前接收节点发生故障,包装有接收程序的服务网格从当前接收节点迁移到可用的接收节点,并重新启动接收程序;S4-2,接收程序发出,要求发送程序暂停发送消息的消息;S4-3,发送程序接收到暂停发送的消息后,停止发送消息,并向接收程序发送一个应答消息;S4-4,接收程序从分布式内存中以排序字段的顺序读取所有残留的消...

【专利技术属性】
技术研发人员:郭海涛连城孙而焓
申请(专利权)人:中电福富信息科技有限公司
类型:发明
国别省市:福建,35

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

1