CN108881492A - 一种解决消息处理顺序及疏导消息处理的方法 - Google Patents
一种解决消息处理顺序及疏导消息处理的方法 Download PDFInfo
- Publication number
- CN108881492A CN108881492A CN201810895183.6A CN201810895183A CN108881492A CN 108881492 A CN108881492 A CN 108881492A CN 201810895183 A CN201810895183 A CN 201810895183A CN 108881492 A CN108881492 A CN 108881492A
- Authority
- CN
- China
- Prior art keywords
- message
- data
- processing
- unique identifier
- consumption
- 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.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/566—Grouping or aggregating service requests, e.g. for unified processing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/2866—Architectures; Arrangements
- H04L67/2871—Implementation details of single intermediate entities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
Abstract
一种解决消息处理顺序及疏导消息处理的实现方法,包括消息中间件、消息接收应用,消息消费应用,关系型数据库;步骤如下:1)在客户端发送请求前增加消息内容,消息数据唯一识别码,作为发送数据内容的唯一识别码;消息数据链路串联是以消息数据唯一识别码和消息发生时间作为串联依据;2)消息中间件由消息路由完成消息数据分发到对应消费应用;3)消费者应用中接收层根据对应消息业务,消息转发存储到指定的关系型数据库;转储后,消息内容包含数据唯一识别码,消息体,消息业务类型,消息时间,触发时间,锁标识;4)消费者应用中消费层检测对应的关系型数据库有新消息时,锁定当前消息,获取当前消息后,解析并处理消息。
Description
技术领域
本发明属于计算机处理技术的消息处理领域,具体涉及一种消息处理顺序及疏导消息处理的方法。
背景技术
消息***目前已经广泛使用于互联网企业,各类业务***都有它的身影,一方面是其传统的功能特点:***间调用的异步解耦,减低***的复杂度、流量的削峰填谷,便于业务弹性伸缩、易于实现最终一致性***,避免分布式事务对性能的影响、支持P2P(点对点的调用)和pub/sub模式减少RPC的多次调用(广播通知机制)等。另外随着业务的快速增长,企业内部需要大量数据的同步传输,流式计算等应用都需要非常稳定高效的传输通道给予支持,消息***在其中充当了重要的角色。
分布式消息***作为实现分布式***可扩展、可伸缩性的关键组件,需要具有高吞吐量、高可用等特点。分布式消息***消息***在设计使用时,就不可避免消息消息的顺序问题,重复问题以及数据的关联性等问题,业界普遍做法是使用串行方式执行消费消息,这样就造成消息不能并行化消费处理,严重降低了消息的处理速度,吞吐量下降,当消息堆积或部分消息异常时,容易引起消费端堵塞,针对以上问题,提出一种消息处理顺序及疏导消息处理的方法,完成构建消息数据链路,多条链路并行执行来达到并行消费处理的目的,消息数据链路上消息处理超时或异常,以冻结中断该消息链路上的消息,来达到疏导消息处理的目的。
CN201510483419.1公开了一种通知消息处理方法及装置,首先利用保序队列根据预设规则按序存储相应的通知消息,这样可以保证对各保护序列中的通知消息进行处理时的处理顺序与接收到各通知消息的顺序一致;然后监测各保对序列中是否有存入新通知消息,当监测到某一保序队列存入新通知消息时,从线程池中选择出当前工作状态为空闲状态的工作线程模块,利用该工作线程模块对该保序队列存入的新通知消息进行处理。CN201510483419.1采用线程池可以实现对线程池中的工作线程的复用,为了能使用原少于保序队列数据的线程就能有效的完成对全部通知消息的处理,提升***资源利用率。
发明内容
为解决现有技术存在的问题,本发明的目的是,通过将消费者模式中接收和消费分化隔离,消息***接收后转发存入到对应一个或多个关系型数据库中,由隔离出来的消费层处理消费数据,当监测到有消息存入时,自动启动消费模块。在遇到有阻塞消息时,消息触发消息处理沉降机制,疏导消费模块消息处理。同时增加定义消息信息和消息数据链串联规则,避免消息之间相互干扰和错乱。本发明的目的能解决消息处理的顺序性,明显提高消费者消费的吞吐量。
本发明的技术方案,一种解决消息处理顺序及疏导消息处理的实现方法,基于***架构中包含的4个模块,即消息中间件、消息接收应用,消息消费应用,关系型数据库;
所述消息中间件,指支持在分布式***中发送和接受消息的硬件或软件基础设施;消息中间件利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式***的集成;提供消息传递和消息排队模型,在分布式环境下扩展进程间的通信;
所属消息接收应用和消费应用,是指从原消费者模型中把消费消息和业务处理分化出来单独的功能模块;消息接收应用用于完成从消息中间件获取消息及转储消息数据功能;消息消费应用用于完成具体的消息业务处理;
所属关系型数据库,是指建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据;用于存储消息和附加控制消息执行的扩展信息;
步骤1:在客户端发送请求前增加消息内容,消息数据唯一识别码,作为发送数据内容的唯一识别码;消息数据链路串联是以消息数据唯一识别码和消息发生时间作为串联依据。
步骤2:消息中间件由消息路由完成消息数据分发到对应消费应用;
步骤3:消费者应用中接收层根据对应消息业务,消息转发存储到指定的关系型数据库;转储后,消息内容包含数据唯一识别码,消息体,消息业务类型,消息时间,触发时间,锁标识,便于遵循消息提取消费规则获取可执行消息;
步骤4:消费者应用中消费层检测对应的关系型数据库有新消息时,锁定当前消息,获取当前消息后,解析并处理消息;
步骤5:消费者应用则消费层遇到故障消息触犯消息沉降规则,异常消息下调处理优先级,并冷后一段时间,冷却后回归可执行消息顺序队列。
本发明中所述消费规则是预定消息处理的原则,用于提供在并行环境下消息按可执行顺序并行执行以及消息沉降。具体规则如下:
1)消息的数据唯一识别码和消息时间作为消息数据链路的串联依据。数据唯一识别码是根据消息数据内容定义的唯一识别码,和业务数据相关。
2)消息数据链路上可包含一个或多个消息类型的消息数据。
3)消息数据链路遵循先进先出规则,且满足消息数据链路规则。
4)多条消息数据链路并发执行,消息数据链路消费遵循先进先出,且消息执行保持顺序性。
5)不同消息数据链路没有强关联性,业务处理且遵循冥等性。
6)消息数据链路上的消息是串行处理的。
对接受消息数据扩展,追加数据唯一识别码,消息顺序时间,消息类型,锁标识,以数据唯一识别码和消息数据时间构建消息数据链。消息数据链在消息数据处理中充当梳理消息数据的作用,解决关联消息的顺序性问题和消息之间隔离的作用。
在消息转储到关系型库中,并行消费多条消息数据链数据,解决了消息并行执行问题,消息数据链上的消息有先后顺序性,以串行执行,解决了消息的顺序问题。
有益效果
与现有技术相比,其显著优点以及形成的效果有:
(1)本发明通过为消息数据内容增加数据唯一识别码,实现了多条消息的数据串联,解决了消息消费并行处理的没有关联的问题。
(2)本发明通过对消息处理原则控制消息执行顺序,降级隔离,重试补偿机制,以数据流为原则构建消息数据链,解决了消息的关联性和消息的顺序问题,关键性的支撑了消费层可并行处理。
(3)本发明通过为消费者职能分化为接受层和消费层,弱化消息接收时处理,只保留了接收和转储,可最大化得消费消息中间件上消息数据,消费业务由具体消费层控制处理,可根据消息数据链并发执行,优点在于可横向拓展业务消费层应用,增大消息业务处理的吞吐量。
(4)本发明通过对分布式消息***数据转储到一个或多个关系型数据存储中,增加了消息的关联特征,利用数据库的原子性和排他锁,锁定和获取可执行序列的消息,避免了消息的错乱和重复执行。
(5)本发明通过对转出后的数据增加消息执行的优先级,可控制消息消费的执行优先级,异常消息隔离,可执行消息快速处理,降低了故障消息引起***拥堵的概率。
(6)本发明通过对消息分发转储到多个关系型数据存储中,转储时可有中间件控制路由转发到对应的消息接收层应用中,特点是消息转发灵活,另可部署多个剥离出来的消费层并行消费消息,极大的提升了服务的消费效率。
附图说明
图1为本发明实施例中消息***实现的***结构示意图
图2为本发明实施例中消息***方法实现流程图
具体实施方式
图1为本发明实施例中解决消息处理顺序及疏导消息处理方法实现的***结构示意图,该***架构中包含4个主体,即消息中间件、消息接收应用,消息消费应用,关系型数据库;
所述消息中间件,是指支持在分布式***中发送和接受消息的硬件或软件基础设施;消息中间件利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式***的集成。通过提供消息传递和消息排队模型,它可以在分布式环境下扩展进程间的通信。
所属消息接收应用和消费应用,是指从原消费者模型中把消费消息和业务处理分化出来单独的功能模块。消息接收应用用于完成从消息中间件获取消息及转储消息数据功能。消息消费应用用于完成具体的消息业务处理。
所属关系型数据库,是指建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。用于存储消息和附加控制消息执行的扩展信息。
图2为本发明实施例中解决消息处理顺序及疏导消息处理方法实现流程图,具体步骤有:
步骤201:构建消息中间件,定义消息接收消息和消息路由转发配置,完成接收一个或多个生产者消息,并根据消息路由转发到指定一个或多个消费接收层。
步骤202:消息接收应用从消息中间件中消费消息数据,追加数据唯一识别码,消息体,消息业务类型,消息时间,触发时间,锁标识,便于遵循消息提取消费规则获取可执行消息。
步骤203:消息消费应用主动检测关系型数存储中的消息数据,
根据消息的处理频次,自动开启一个或多个线程并行消费各个消息链路上的消息数据。
步骤204:根据消费规则,获取消息处理链上的数据,并根据关系型数据库事务的原子性和排它性锁定当前链路上的消息数据,进行消息业务处理,成功后移除消息。根据数据链路的不同,可存在多个链路同时并发执行。
步骤205:消息遇到故障时,消息进入当前冻结状态,当消息触发时间进入新的触发时间后,冻结期解除重新回归可处理消息队列,直至消息消费成功或超过处理时间或重复执行次数限制。
以上所述仅为本发明的一种实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均以包含在本发明的保护范围之内。
Claims (5)
1.一种解决消息处理顺序及疏导消息处理的实现方法,其特征是,具体技术方案如下:基于消息处理顺序及疏导消息处理***架构,***架构中包含的4个模块,即消息中间件、消息接收应用,消息消费应用,关系型数据库;
所述消息中间件,指支持在分布式***中发送和接受消息的硬件或软件基础设施;消息中间件利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式***的集成;提供消息传递和消息排队模型,在分布式环境下扩展进程间的通信;
所属消息接收应用和消费应用,是指从原消费者模型中把消费消息和业务处理分化出来单独的功能模块;消息接收应用用于完成从消息中间件获取消息及转储消息数据功能;消息消费应用用于完成具体的消息业务处理;
所属关系型数据库,是指建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据;用于存储消息和附加控制消息执行的扩展信息;
消息处理的步骤如下:
步骤1:在客户端发送请求前增加消息内容,消息数据唯一识别码,作为发送数据内容的唯一识别码;消息数据链路串联是以消息数据唯一识别码和消息发生时间作为串联依据;
步骤2:消息中间件由消息路由完成消息数据分发到对应消费应用;
步骤3:消费者应用中接收层根据对应消息业务,消息转发存储到指定的关系型数据库;转储后,消息内容包含数据唯一识别码,消息体,消息业务类型,消息时间,触发时间,锁标识,便于遵循消息提取消费规则获取可执行消息;
步骤4:消费者应用中消费层检测对应的关系型数据库有新消息时,锁定当前消息,获取当前消息后,解析并处理消息;
步骤5:消费者应用则消费层遇到故障消息触犯消息沉降规则,异常消息下调处理优先级,并冷后一段时间,冷却后回归可执行消息顺序队列。
2.根据权利要求1所述的解决消息处理顺序及疏导消息处理的实现方法,其特征是,步骤201:构建消息中间件,定义消息接收消息和消息路由转发配置,完成接收一个或多个生产者消息,并根据消息路由转发到指定一个或多个消费接收层;
步骤202:消息接收应用从消息中间件中消费消息数据,追加数据唯一识别码,消息体,消息业务类型,消息时间,触发时间,锁标识,便于遵循消息提取消费规则获取可执行消息;
步骤203:消息消费应用主动检测关系型数存储中的消息数据,
根据消息的处理频次,自动开启一个或多个线程并行消费各个消息链路上的消息数据;
步骤204:根据消费规则,获取消息处理链上的数据,并根据关系型数据库事务的原子性和排它性锁定当前链路上的消息数据,进行消息业务处理,成功后移除消息;根据数据链路的不同,可存在多个链路同时并发执行。
3.根据权利要求1所述的解决消息处理顺序及疏导消息处理的实现方法,其特征是,所述消费规则是预定消息处理的原则,用于提供在并行环境下消息按可执行顺序并行执行以及消息沉降;具体规则如下:
1)消息的数据唯一识别码和消息时间作为消息数据链路的串联依据;数据唯一识别码是根据消息数据内容定义的唯一识别码,和业务数据相关;
2)消息数据链路上可包含一个或多个消息类型的消息数据;
3)消息数据链路遵循先进先出规则,且满足消息数据链路规则;
4)多条消息数据链路并发执行,消息数据链路消费遵循先进先出,且消息执行保持顺序性;
5)不同消息数据链路没有强关联性,业务处理且遵循冥等性;
6)消息数据链路上的消息是串行处理的。
4.根据权利要求1所述的解决消息处理顺序及疏导消息处理的实现方法,其特征是对接受消息数据扩展,追加数据唯一识别码,消息顺序时间,消息类型,锁标识,以数据唯一识别码和消息数据时间构建消息数据链。消息数据链在消息数据处理中充当梳理消息数据的作用,解决关联消息的顺序性问题和消息之间隔离的作用。
5.根据权利要求1所述的解决消息处理顺序及疏导消息处理的实现方法,其特征是,在消息转储到关系型库中,并行消费多条消息数据链数据,解决了消息并行执行问题,消息数据链上的消息有先后顺序性,以串行执行,解决了消息的顺序问题。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810895183.6A CN108881492B (zh) | 2018-08-08 | 2018-08-08 | 一种解决消息处理顺序及疏导消息处理的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810895183.6A CN108881492B (zh) | 2018-08-08 | 2018-08-08 | 一种解决消息处理顺序及疏导消息处理的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108881492A true CN108881492A (zh) | 2018-11-23 |
CN108881492B CN108881492B (zh) | 2020-03-31 |
Family
ID=64317694
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810895183.6A Active CN108881492B (zh) | 2018-08-08 | 2018-08-08 | 一种解决消息处理顺序及疏导消息处理的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108881492B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109743137A (zh) * | 2019-01-10 | 2019-05-10 | 浙江小泰科技有限公司 | 一种支持更新的分布式延迟消息队列处理*** |
CN111464621A (zh) * | 2020-03-30 | 2020-07-28 | 四川新网银行股份有限公司 | 分布式***异步通信中消息发送与接收的数量检测方法 |
CN112732731A (zh) * | 2020-12-29 | 2021-04-30 | 京东数字科技控股股份有限公司 | 业务数据的消费方法、装置、电子设备和可读存储介质 |
CN114385728A (zh) * | 2021-12-15 | 2022-04-22 | 江苏瑞中数据股份有限公司 | 一种基于数据转换整合的实时数据处理方法 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101917394A (zh) * | 2010-06-13 | 2010-12-15 | 大连海事大学 | 在手机设备上进行数据共享的中间件***及工作方法 |
CN103856393A (zh) * | 2013-07-09 | 2014-06-11 | 携程计算机技术(上海)有限公司 | 基于数据库的分布式消息中间件***及其运行方法 |
CN103984734A (zh) * | 2014-05-20 | 2014-08-13 | 中国科学院软件研究所 | 一种面向高性能计算的云服务消息传递方法 |
CN105610926A (zh) * | 2015-12-22 | 2016-05-25 | 广州唯品会信息科技有限公司 | 消息传递方法、***和消息中间件*** |
CN106453029A (zh) * | 2015-08-07 | 2017-02-22 | 中兴通讯股份有限公司 | 通知消息处理方法及装置 |
CN107613025A (zh) * | 2017-10-31 | 2018-01-19 | 武汉光迅科技股份有限公司 | 一种基于消息队列顺序回复的实现方法和装置 |
CN107656825A (zh) * | 2017-09-01 | 2018-02-02 | 上海艾融软件股份有限公司 | 消息处理方法、装置及*** |
US20180102996A1 (en) * | 2016-10-06 | 2018-04-12 | Sap Se | Payload description for computer messaging |
-
2018
- 2018-08-08 CN CN201810895183.6A patent/CN108881492B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101917394A (zh) * | 2010-06-13 | 2010-12-15 | 大连海事大学 | 在手机设备上进行数据共享的中间件***及工作方法 |
CN103856393A (zh) * | 2013-07-09 | 2014-06-11 | 携程计算机技术(上海)有限公司 | 基于数据库的分布式消息中间件***及其运行方法 |
CN103984734A (zh) * | 2014-05-20 | 2014-08-13 | 中国科学院软件研究所 | 一种面向高性能计算的云服务消息传递方法 |
CN106453029A (zh) * | 2015-08-07 | 2017-02-22 | 中兴通讯股份有限公司 | 通知消息处理方法及装置 |
CN105610926A (zh) * | 2015-12-22 | 2016-05-25 | 广州唯品会信息科技有限公司 | 消息传递方法、***和消息中间件*** |
US20180102996A1 (en) * | 2016-10-06 | 2018-04-12 | Sap Se | Payload description for computer messaging |
CN107656825A (zh) * | 2017-09-01 | 2018-02-02 | 上海艾融软件股份有限公司 | 消息处理方法、装置及*** |
CN107613025A (zh) * | 2017-10-31 | 2018-01-19 | 武汉光迅科技股份有限公司 | 一种基于消息队列顺序回复的实现方法和装置 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109743137A (zh) * | 2019-01-10 | 2019-05-10 | 浙江小泰科技有限公司 | 一种支持更新的分布式延迟消息队列处理*** |
CN109743137B (zh) * | 2019-01-10 | 2022-01-14 | 浙江小泰科技有限公司 | 一种支持更新的分布式延迟消息队列处理*** |
CN111464621A (zh) * | 2020-03-30 | 2020-07-28 | 四川新网银行股份有限公司 | 分布式***异步通信中消息发送与接收的数量检测方法 |
CN111464621B (zh) * | 2020-03-30 | 2022-06-24 | 四川新网银行股份有限公司 | 分布式***异步通信中消息发送与接收的数量检测方法 |
CN112732731A (zh) * | 2020-12-29 | 2021-04-30 | 京东数字科技控股股份有限公司 | 业务数据的消费方法、装置、电子设备和可读存储介质 |
CN114385728A (zh) * | 2021-12-15 | 2022-04-22 | 江苏瑞中数据股份有限公司 | 一种基于数据转换整合的实时数据处理方法 |
CN114385728B (zh) * | 2021-12-15 | 2024-07-19 | 江苏瑞中数据股份有限公司 | 一种基于数据转换整合的实时数据处理方法 |
Also Published As
Publication number | Publication date |
---|---|
CN108881492B (zh) | 2020-03-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108881492A (zh) | 一种解决消息处理顺序及疏导消息处理的方法 | |
US7647595B2 (en) | Efficient event notification in clustered computing environments | |
US7801852B2 (en) | Checkpoint-free in log mining for distributed information sharing | |
US7702741B2 (en) | Configuring or reconfiguring a multi-master information sharing environment | |
US8448186B2 (en) | Parallel event processing in a database system | |
US20070094336A1 (en) | Asynchronous server synchronously storing persistent data batches | |
CN107046510B (zh) | 一种适用于分布式计算***的节点及其组成的*** | |
WO2020232875A1 (zh) | 一种基于Actor模型的任务调度方法、装置及存储介质 | |
CN109241414A (zh) | 基于消息模板的***消息推送方法及终端设备 | |
WO2019223599A1 (zh) | 数据采集***、方法、节点设备及存储介质 | |
CN113722127A (zh) | 高效轻量易用的分布式网络消息中间件 | |
CN106844083A (zh) | 一种面向流计算***异常感知的容错方法及*** | |
Li et al. | Task scheduling algorithm for heterogeneous real-time systems based on deadline constraints | |
CN110661652B (zh) | 一种互联网设备连接及数据转发处理方法 | |
CN114095537B (zh) | 一种物联网应用中基于Netty的海量数据接入方法及*** | |
CN111352746B (zh) | 消息限流方法、存储介质 | |
CN101692737B (zh) | 一种面向移动rfid的轻量级数据同步***及同步方法 | |
CN107632890B (zh) | 一种数据流体系结构中动态节点分配方法和*** | |
CN103268567A (zh) | 面向制造行业管理***的高效大规模事件侦测与处理方法 | |
CN116346823A (zh) | 一种基于消息队列的大数据异构任务调度方法及*** | |
WO2020232870A1 (zh) | 一种基于Actor模型的数据采集方法、装置及存储介质 | |
CN108846633A (zh) | 一种智能高效的卡任务处理方法 | |
CN114584552B (zh) | 面向分布式ct文件传输的调度方法、***、设备及介质 | |
CN116319248A (zh) | 优化告警消息处理效率方法和*** | |
CN106850283A (zh) | 一种基于事件驱动的云ac告警处理***及方法 |
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 |