CN108038007B - 一种基于Ignite的消息有序处理方法及系统 - Google Patents

一种基于Ignite的消息有序处理方法及系统 Download PDF

Info

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
Application number
CN201711244121.0A
Other languages
English (en)
Other versions
CN108038007A (zh
Inventor
郭海涛
连城
孙而焓
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China Telecom Fufu Information Technology Co Ltd
Tianyi Cloud Technology Co Ltd
Original Assignee
China Telecom Fufu Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by China Telecom Fufu Information Technology Co Ltd filed Critical China Telecom Fufu Information Technology Co Ltd
Priority to CN201711244121.0A priority Critical patent/CN108038007B/zh
Publication of CN108038007A publication Critical patent/CN108038007A/zh
Application granted granted Critical
Publication of CN108038007B publication Critical patent/CN108038007B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/172Caching, prefetching or hoarding of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed 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的消息有序处理方法及系统
技术领域
本发明涉及大数据处理领域,尤其涉及一种基于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服务器将该接收节点的服务网格迁移到正常接收节点。
CN201711244121.0A 2017-11-30 2017-11-30 一种基于Ignite的消息有序处理方法及系统 Active CN108038007B (zh)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108874541A (zh) * 2018-06-05 2018-11-23 中国平安人寿保险股份有限公司 分布式运算方法、装置、计算机设备及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (6)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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.