CN108038007B - 一种基于Ignite的消息有序处理方法及系统 - Google Patents
一种基于Ignite的消息有序处理方法及系统 Download PDFInfo
- Publication number
- CN108038007B CN108038007B CN201711244121.0A CN201711244121A CN108038007B CN 108038007 B CN108038007 B CN 108038007B CN 201711244121 A CN201711244121 A CN 201711244121A CN 108038007 B CN108038007 B CN 108038007B
- Authority
- CN
- China
- Prior art keywords
- message
- sending
- receiving
- program
- ignite
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/172—Caching, prefetching or hoarding of files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Hardware Redundancy (AREA)
- Multi Processors (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开一种基于Ignite的消息有序处理方法及系统,所述系统包括用于发送消息的单队列MQ和Ignite服务器,Ignite服务器内部集成的分布式消息组件和分布式内存组件,分布式消息组件包括均与分布式内存组件连接的发送节点和两个以上的接收节点,发送节点上设有发送程序,接收节点上运行有服务网格,服务网格中运行有接收程序。本发明利用Ignite内部集成的分布式消息组件和分布式内存组件,使用Ignite和MQ配合使用以实现对实时消息的有序及并发处理。
Description
技术领域
本发明涉及大数据处理领域,尤其涉及一种基于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服务器将该接收接点的服务网格迁移到正常接收节点。
本发明采用以上技术方案,本发明具有如下优点:1、不需要外部系统使用复杂且不灵活的多队列MQ。2、把接收程序包装在Ignite的服务网格组件中运行,可以确保了消息处理的持续性。3、消息保存在分布式内存组件,读写速度快,没有单点故障,稳定可靠。4、消息处理系统运行在Ignite集群上,易于通过增加节点来扩展处理能力。
Claims (3)
1.一种基于Ignite的消息有序处理方法,特征在于:其包括以下步骤:
S1,发送节点接收到从外部单队列MQ发来的消息;
S2,发送程序根据消息中的业务字段将数据写入根据该业务字段命名的分布式内存中;
S3,发送程序把消息的主题定义为该业务字段并发送出去;
S4,接收程序判定当前接收节点是否发生故障;若当前接收节点发生故障时执行故障处理步骤;否则,转入步骤S5;故障处理步骤包括以下步骤:
S4-1,当前接收节点发生故障,包装有接收程序的服务网格从当前接收节点迁移到可用的接收节点,并重新启动接收程序;
S4-2,接收程序发出,要求发送程序暂停发送消息的消息;
S4-3,发送程序接收到暂停发送的消息后,停止发送消息,并向接收程序发送一个应答消息;
S4-4,接收程序从分布式内存中以排序字段的顺序读取所有残留的消息,并按序处理;
S4-5,接收程序处理完分布式内存中残存的消息后,把这些消息删除,并做好开始接收新消息的准备,转入步骤S5;S5,接收程序发出一个消息,要求发送程序开始发送消息;
S6,发送程序将要发送的消息写入分布式内存;
S7,发送程序发送消息;
S8,接收节点接收到发送节点发来的消息并进行处理,处理成功后从分布式内存删除该消息。
2.一种基于Ignite的消息有序处理系统,采用了权利要求1所述的一种基于Ignite的消息有序处理方法,其特征在于:所述系统包括用于发送消息的单队列MQ和Ignite服务器,Ignite服务器内部集成的分布式消息组件和分布式内存组件,分布式消息组件包括均与分布式内存组件连接的发送节点和两个以上的接收节点,发送节点上设有发送程序,接收节点上运行有服务网格,服务网格中运行有接收程序;发送节点用于单队列MQ发来消息的接收、按消息体中的业务字段进行消息的分组、将消息保存于分布式内存组件中以及把消息的主题定义为该业务字段并发送出去;接收节点用于对发送节点发送的消息的接收处理以及删除分布式内存组件保存的消息;分布式内存组件用于消息的保存,并供Ignite服务器内的发送节点和两个以上的接收节点访问。
3.根据权利要求2所述的一种基于Ignite的消息有序处理系统,其特征在于:所述接收节点故障时,Ignite服务器将该接收节点的服务网格迁移到正常接收节点。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711244121.0A CN108038007B (zh) | 2017-11-30 | 2017-11-30 | 一种基于Ignite的消息有序处理方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711244121.0A CN108038007B (zh) | 2017-11-30 | 2017-11-30 | 一种基于Ignite的消息有序处理方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108038007A CN108038007A (zh) | 2018-05-15 |
CN108038007B true CN108038007B (zh) | 2022-04-05 |
Family
ID=62094809
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711244121.0A Active CN108038007B (zh) | 2017-11-30 | 2017-11-30 | 一种基于Ignite的消息有序处理方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108038007B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108874541A (zh) * | 2018-06-05 | 2018-11-23 | 中国平安人寿保险股份有限公司 | 分布式运算方法、装置、计算机设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101056194A (zh) * | 2006-06-30 | 2007-10-17 | 华为技术有限公司 | 一种简单网络管理协议消息传送方法及装置 |
CN101094196A (zh) * | 2006-06-20 | 2007-12-26 | 腾讯科技(深圳)有限公司 | 传送文件的方法及系统 |
JP2009037273A (ja) * | 2007-07-31 | 2009-02-19 | Hitachi Ltd | マルチプロセッサシステム |
CN103179193A (zh) * | 2013-02-21 | 2013-06-26 | 用友软件股份有限公司 | 用于分布式应用系统的数据传输系统和数据传输方法 |
CN105677918A (zh) * | 2016-03-03 | 2016-06-15 | 浪潮软件股份有限公司 | 一种基于Kafka和Quartz的分布式爬虫架构及其实现方法 |
CN106293968A (zh) * | 2016-08-04 | 2017-01-04 | 华中科技大学 | 一种基于Kafka消息中间件的双向通信系统及方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7937433B1 (en) * | 2003-09-23 | 2011-05-03 | Embarq Holdings Company, Llc | Queuing connector to promote message servicing |
US20110226148A1 (en) * | 2008-05-16 | 2011-09-22 | Sawka Wayne N | Physical destruction of electrical device and methods for triggering same |
US20110214342A1 (en) * | 2010-03-07 | 2011-09-08 | Robert Craig Burgi | Artificial fireplace log with combustion illuminated message or image |
CN102668516B (zh) * | 2011-12-02 | 2014-09-17 | 华为技术有限公司 | 一种云消息服务中实现消息传递的方法和装置 |
WO2014031105A1 (en) * | 2012-08-21 | 2014-02-27 | Hewlett-Packard Development Company, L.P. | Flow control in a network |
-
2017
- 2017-11-30 CN CN201711244121.0A patent/CN108038007B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101094196A (zh) * | 2006-06-20 | 2007-12-26 | 腾讯科技(深圳)有限公司 | 传送文件的方法及系统 |
CN101056194A (zh) * | 2006-06-30 | 2007-10-17 | 华为技术有限公司 | 一种简单网络管理协议消息传送方法及装置 |
JP2009037273A (ja) * | 2007-07-31 | 2009-02-19 | Hitachi Ltd | マルチプロセッサシステム |
CN103179193A (zh) * | 2013-02-21 | 2013-06-26 | 用友软件股份有限公司 | 用于分布式应用系统的数据传输系统和数据传输方法 |
CN105677918A (zh) * | 2016-03-03 | 2016-06-15 | 浪潮软件股份有限公司 | 一种基于Kafka和Quartz的分布式爬虫架构及其实现方法 |
CN106293968A (zh) * | 2016-08-04 | 2017-01-04 | 华中科技大学 | 一种基于Kafka消息中间件的双向通信系统及方法 |
Non-Patent Citations (1)
Title |
---|
Apache Ignite——新一代数据库缓存系统;电脑编程技巧与维护编辑;《电脑编程技巧与维护》;20151018;第4页 * |
Also Published As
Publication number | Publication date |
---|---|
CN108038007A (zh) | 2018-05-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108664496B (zh) | 数据迁移方法及装置 | |
US20190391844A1 (en) | Task orchestration method and system | |
CN107395665B (zh) | 一种区块链业务受理及业务共识方法及装置 | |
CN106657314B (zh) | 跨数据中心数据同步系统及方法 | |
US11345020B2 (en) | Robot cluster scheduling system | |
CN110247984B (zh) | 业务处理方法、装置及存储介质 | |
CN104731569B (zh) | 一种数据处理方法及相关设备 | |
CN108491163B (zh) | 一种大数据处理方法、装置和存储介质 | |
US20150331902A1 (en) | Distributed Storage Object Delete | |
WO2020025049A1 (zh) | 数据同步的方法、装置、数据库主机及存储介质 | |
CN110851285B (zh) | 一种基于gpu虚拟化的资源复用方法、装置及设备 | |
WO2014182310A1 (en) | Tuple recovery | |
CN111240807B (zh) | 一种卷启动的虚拟机重建方法、终端及可读存储介质 | |
CN108038007B (zh) | 一种基于Ignite的消息有序处理方法及系统 | |
CN112052230A (zh) | 多机房数据同步方法、计算设备及存储介质 | |
CN112860412B (zh) | 业务数据处理方法、装置、电子设备及存储介质 | |
CN113467719B (zh) | 数据写入方法及装置 | |
CN107943567B (zh) | 一种基于amqp协议的高可靠性任务调度方法和系统 | |
CN108108126B (zh) | 一种数据处理方法、装置及设备 | |
CN114218135A (zh) | 一种基于Redis缓存的源端流控方法及系统 | |
WO2024109068A1 (zh) | 程序监控方法、装置、电子设备和存储介质 | |
CN108121580B (zh) | 应用程序通知服务的实现方法及装置 | |
CN110119388A (zh) | 文件读写方法、装置、系统、设备及计算机可读存储介质 | |
CN108121514B (zh) | 元信息更新方法、装置、计算设备及计算机存储介质 | |
CN116955225A (zh) | 数据缓存方法、装置、电子设备和可读介质 |
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 | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20230306 Address after: 350000 12, 89 Avenue, Wufeng street, Gulou District, Fuzhou, Fujian. Patentee after: CHINATELECOM FUFU INFORMATION TECHNOLOGY Co.,Ltd. Patentee after: Tianyiyun Technology Co.,Ltd. Address before: 350000 12, 89 Avenue, Wufeng street, Gulou District, Fuzhou, Fujian. Patentee before: CHINATELECOM FUFU INFORMATION TECHNOLOGY Co.,Ltd. |