CN106330750A - 一种可控式大并发分布式消息队列推送方法 - Google Patents

一种可控式大并发分布式消息队列推送方法 Download PDF

Info

Publication number
CN106330750A
CN106330750A CN201610677468.3A CN201610677468A CN106330750A CN 106330750 A CN106330750 A CN 106330750A CN 201610677468 A CN201610677468 A CN 201610677468A CN 106330750 A CN106330750 A CN 106330750A
Authority
CN
China
Prior art keywords
message
fault
lines
fifo
pushing
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.)
Pending
Application number
CN201610677468.3A
Other languages
English (en)
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.)
Chengdu JumeiCom Technology Co Ltd
Original Assignee
Chengdu JumeiCom 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 Chengdu JumeiCom Technology Co Ltd filed Critical Chengdu JumeiCom Technology Co Ltd
Priority to CN201610677468.3A priority Critical patent/CN106330750A/zh
Publication of CN106330750A publication Critical patent/CN106330750A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • H04L47/125Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0631Management of faults, events, alarms or notifications using root cause analysis; using analysis of correlation between notifications, alarms or events based on decision criteria, e.g. hierarchy, tree or time analysis
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0654Management of faults, events, alarms or notifications using network fault recovery
    • H04L41/0663Performing the actions predefined by failover planning, e.g. switching to standby network elements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/6245Modifications to standard FIFO or LIFO
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/55Push-based network services

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种可控式大并发分布式消息队列推送方法,包括FIFO列队模型,所述FIFO列队模型前端增设消息入列网关和消息分发模块,所述消息分发模块进行统一可控的消息推送控制,所述消息入列网关进行消息入列管理和容错处理/恢复,所述FIFO列队模型末端设有调度程序模块和消费者消息处理器。与现有技术相比,本发明能主动控制消息消费者接入数量或请求频率,节约队列服务资源,最大可能地使其避免了宕机风险,具有消息容错延后处理的功能,避免进程阻塞,消息队列数据堆积,服务资源急剧消耗,具有无服务容错处理的功能,避免了在队列依赖的存储服务不可用时,导致消息生产者发送消息失败的情况发生。

Description

一种可控式大并发分布式消息队列推送方法
技术领域
本发明涉及一种互联网技术,尤其涉及一种可控式大并发分布式消息队列推送方法。
背景技术
现有的消息队列方法主要为RabbitMQ、ActiveMQ、JMS等。以上技术/产品在消息数据吞吐性能、服务可用性及功能特性上各有所长,但基本上都只具有基本的队列功能,包括:组播、点播、广播等,部分能提供消息消费失败后延时重推功能。但在性能/服务资源控制及其所接入的业务系统需求支持上无相关技术方案或工具。比如:
1.不能主动控制消息消费者接入数量或请求频率,此缺陷容易导致消息消费方过渡消耗队列服务资源,即使发现此方面的情况也不能通过自身的手段解决。
2.大多没有消息容错延后处理的功能。例如,当队列中的某个消息由于本身所包含的异常数据无法被消费者处理时,既不能选择抛弃此消息,也不能对错误进行忽略而导致后续处理进程阻塞,继而可能导致消息队列数据堆积,急剧消耗服务资源,并且无法在短时间内解决。
3.大多无延时/定时消息推送功能,此功能在大多业务系统中都有需求。
4.不能集中反馈消息消费方出现的失败原因,问题排查困难,效率低。
5.无服务容错处理,在队列依赖的存储服务不可用时将导致消息生产者发送消息失败。
6.不提供系统问题预警功能。
7.无直接的消费服务负载均衡功能。
发明内容
本发明的目的就在于提供一种解决了上述问题的可控式大并发分布式消息队列推送方法。
为了实现上述目的,本发明采用的技术方案是:一种可控式大并发分布式消息队列推送方法,包括FIFO列队模型,
所述FIFO列队模型前端增设消息入列网关和消息分发模块,所述消息分发模块进行统一可控的消息推送控制,将消息推送至消息入列网关,所述消息入列网关进行消息入列管理和容错处理/恢复,并将消息推送至FIFO列队模型,
所述FIFO列队模型末端设有调度程序模块和消费者消息处理器,所述FIFO列队模型发出的消息经调度程序模块进行控制处理后,发送至消费者消息处理器。
作为优选,所述消息入列网关采用两级消息接受,一级用于消息入列管理,另一级进行容错处理和容错恢复。
作为优选,容错处理包括消息容错延后处理和无服务容错处理。
作为优选,所述消息容错延后处理方法为,当列队中的某个消息由于本身所包含的异常数据无法被消费者处理时,处理时间超过设定阀值时,对错误消息延后处理并归档。
作为优选,所述无服务容错处理方法为,对具有延时属性的消息进行内存缓存,采用延时计时器对消息内存地址进行封装,并使用磁盘队列对此部分消息进行持久化存储。
作为优选,所述调度程序模块进行消息控制处理的方式为频率控制、推送并发控制、超时处理。
作为优选,还包括队列状态监控模块,所述队列状态监控模块对FIFO列队模型运行状态进行实时监控,发现问题后通过报警器进行预警。
作为优选,所述队列状态监控模块对FIFO列队模型运行的状态参数、控制情况以及错误信息查看器进行监控。
与现有技术相比,本发明的优点在于:能主动控制消息消费者接入数量或请求频率,节约队列服务资源,最大可能地使其避免了宕机风险。具有消息容错延后处理的功能,避免进程阻塞,消息队列数据堆积,服务资源急剧消耗。具有无服务容错处理的功能,避免了在队列依赖的存储服务不可用时,导致消息生产者发送消息失败的情况发生。
附图说明
图1为本发明原理框图。
具体实施方式
下面将对本发明作进一步说明。
实施例1:参见图1,一种可控式大并发分布式消息队列推送方法,包括FIFO列队模型,
所述FIFO列队模型前端增设消息入列网关和消息分发模块,所述消息分发模块进行统一可控的消息推送控制,将消息推送至消息入列网关,统一可控的消息推送控制实现了可控的消费性能管理,如:消费频度、并发量等;通过可控的消费性能管理,在电商系统访问峰值期间无需再限制用户访问量,保证用户的正常访问体验,即使访问量大时,后端的异步数据处理也能持续、连续的进入扭转流程,同时用户提交的海量数据不再对后端系统造成无法控制的冲击,最大可能地使其避免了宕机风险。
所述消息入列网关进行消息入列管理和容错处理/恢复,并将消息推送至FIFO列队模型,所述消息入列网关采用两级消息接受,一级用于消息入列管理,另一级进行容错处理和容错恢复。容错处理包括消息容错延后处理和无服务容错处理。
所述消息容错延后处理方法为,当列队中的某个消息由于本身所包含的异常数据无法被消费者处理时,处理时间超过设定阀值时,对错误消息延后处理并归档,实现无阻塞消息处理协议。延后处理的机制,彻底避免了部分业务以前在使用其它类似技术时可能停止生产(业务数据)的问题。
所述无服务容错处理方法为,对具有延时属性的消息进行内存缓存,采用延时计时器对消息内存地址进行封装,并使用磁盘队列对此部分消息进行持久化存储。以便在服务重启时恢复正常的消息延时状态,避免了在队列依赖的存储服务不可用时,导致消息生产者发送消息失败的情况发生。
所述FIFO列队模型末端设有调度程序模块和消费者消息处理器,所述FIFO列队模型发出的消息经调度程序模块进行控制处理后,发送至消费者消息处理器。所述调度程序模块进行消息控制处理的方式为频率控制、推送并发控制、超时处理。
还包括队列状态监控模块,所述队列状态监控模块对FIFO列队模型运行状态进行实时监控,发现问题后通过报警器进行预警。所述队列状态监控模块对FIFO列队模型运行的状态参数、控制情况以及错误信息查看器进行监控。
在本发明中,消息可带延时属性,只有当延时结束后,调度模块才会将消息立即推送给处理器,因此,通过对延时时间值的计算和消息推送(驱动),业务开发方可以实现定时的任务处理,通过延时/定时推送功能,之前部分业务通过数据库轮询或者(linux)cron任务实现的逻辑,现在可以达到准实时级别(网络正常情况下可控制在20毫秒以内);
现有的类似系统一般只有较少的关于队列服务本身运行出错的文本日志记录,且无法被用户直接查看到,另外,对于消息消费/处理消息出错时的原因无法进行记录和分析,更加不提供主动的报警。而本发明通过监控和报警模块对此相关的问题都进行了解决,使用户或管理员能够及时得知系统的状况及出错的原因,实现开放及快速的消息处理失败问题反馈,
本发明支持对同一个消息的订阅绑定多个处理器(消费者地址),根据随机算法,将消息处理流量大致均匀地分配到不同的处理器上而达到负载均衡的目的。并可在此基础上提供多种负载均衡策略,如根据权重设置、顺序轮询等。
以上对本发明所提供的一种可控式大并发分布式消息队列推送方法进行了详尽介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,对本发明的变更和改进将是可能的,而不会超出附加权利要求所规定的构思和范围,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (8)

1.一种可控式大并发分布式消息队列推送方法,包括FIFO列队模型,其特征在于:所述FIFO列队模型前端增设消息入列网关和消息分发模块,所述消息分发模块进行统一可控的消息推送控制,将消息推送至消息入列网关,所述消息入列网关进行消息入列管理和容错处理/恢复,并将消息推送至FIFO列队模型,
所述FIFO列队模型末端设有调度程序模块和消费者消息处理器,所述FIFO列队模型发出的消息经调度程序模块进行控制处理后,发送至消费者消息处理器。
2.根据权利要求1所述的一种可控式大并发分布式消息队列推送方法,其特征在于:所述消息入列网关采用两级消息接受,一级用于消息入列管理,另一级进行容错处理和容错恢复。
3.根据权利要求2所述的一种可控式大并发分布式消息队列推送方法,其特征在于:容错处理包括消息容错延后处理和无服务容错处理。
4.根据权利要求3所述的一种可控式大并发分布式消息队列推送方法,其特征在于:所述消息容错延后处理方法为,当列队中的某个消息由于本身所包含的异常数据无法被消费者处理时,处理时间超过设定阀值时,对错误消息延后处理并归档。
5.根据权利要求3所述的一种可控式大并发分布式消息队列推送方法,其特征在于:所述无服务容错处理方法为,对具有延时属性的消息进行内存缓存,采用延时计时器对消息内存地址进行封装,并使用磁盘队列对此部分消息进行持久化存储。
6.根据权利要求1所述的一种可控式大并发分布式消息队列推送方法,其特征在于:所述调度程序模块进行消息控制处理的方式为频率控制、推送并发控制、超时处理。
7.根据权利要求1所述的一种可控式大并发分布式消息队列推送方法,其特征在于:还包括队列状态监控模块,所述队列状态监控模块对FIFO列队模型运行状态进行实时监控,发现问题后通过报警器进行预警。
8.根据权利要求7所述的一种可控式大并发分布式消息队列推送方法,其特征在于:所述队列状态监控模块对FIFO列队模型运行的状态参数、控制情况以及错误信息查看器进行监控。
CN201610677468.3A 2016-08-17 2016-08-17 一种可控式大并发分布式消息队列推送方法 Pending CN106330750A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610677468.3A CN106330750A (zh) 2016-08-17 2016-08-17 一种可控式大并发分布式消息队列推送方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610677468.3A CN106330750A (zh) 2016-08-17 2016-08-17 一种可控式大并发分布式消息队列推送方法

Publications (1)

Publication Number Publication Date
CN106330750A true CN106330750A (zh) 2017-01-11

Family

ID=57740596

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610677468.3A Pending CN106330750A (zh) 2016-08-17 2016-08-17 一种可控式大并发分布式消息队列推送方法

Country Status (1)

Country Link
CN (1) CN106330750A (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108234351A (zh) * 2017-12-05 2018-06-29 山东超越数控电子股份有限公司 一种数据包容错处理模块及方法
CN110971430A (zh) * 2018-09-29 2020-04-07 北京国双科技有限公司 自动化扩容缩容的控制方法、装置、存储介质及处理器
CN111538600A (zh) * 2020-02-25 2020-08-14 远景智能国际私人投资有限公司 消息处理方法、装置、计算机设备及存储介质
CN112685199A (zh) * 2020-12-30 2021-04-20 平安普惠企业管理有限公司 一种消息队列修复方法、装置、计算机设备及存储介质
CN113839987A (zh) * 2021-08-24 2021-12-24 广州市瑞立德信息系统有限公司 一种基于消息队列的消息分发方法、门禁系统及存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020057190A (ko) * 2000-12-30 2002-07-11 박종섭 이동통신 지능망 시스템에서 서비스 데이터 처리 방법
CN101014002A (zh) * 2006-12-12 2007-08-08 华为技术有限公司 集群消息传送方法及分布式集群系统
CN101188570A (zh) * 2006-11-17 2008-05-28 鸿富锦精密工业(深圳)有限公司 即时消息处理系统及方法
CN103312624A (zh) * 2012-03-09 2013-09-18 腾讯科技(深圳)有限公司 一种消息队列服务系统和方法
CN103457875A (zh) * 2013-08-29 2013-12-18 上海永畅信息科技有限公司 车联网中基于多优先级的消息队列控制方法
US20140148960A1 (en) * 2012-11-29 2014-05-29 International Business Machines Corporation Configuring, optimizing and managing micro-grids
CN105187327A (zh) * 2015-08-14 2015-12-23 广东能龙教育股份有限公司 一种分布式消息队列中间件

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020057190A (ko) * 2000-12-30 2002-07-11 박종섭 이동통신 지능망 시스템에서 서비스 데이터 처리 방법
CN101188570A (zh) * 2006-11-17 2008-05-28 鸿富锦精密工业(深圳)有限公司 即时消息处理系统及方法
CN101014002A (zh) * 2006-12-12 2007-08-08 华为技术有限公司 集群消息传送方法及分布式集群系统
CN103312624A (zh) * 2012-03-09 2013-09-18 腾讯科技(深圳)有限公司 一种消息队列服务系统和方法
US20140148960A1 (en) * 2012-11-29 2014-05-29 International Business Machines Corporation Configuring, optimizing and managing micro-grids
CN103457875A (zh) * 2013-08-29 2013-12-18 上海永畅信息科技有限公司 车联网中基于多优先级的消息队列控制方法
CN105187327A (zh) * 2015-08-14 2015-12-23 广东能龙教育股份有限公司 一种分布式消息队列中间件

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108234351A (zh) * 2017-12-05 2018-06-29 山东超越数控电子股份有限公司 一种数据包容错处理模块及方法
CN110971430A (zh) * 2018-09-29 2020-04-07 北京国双科技有限公司 自动化扩容缩容的控制方法、装置、存储介质及处理器
CN111538600A (zh) * 2020-02-25 2020-08-14 远景智能国际私人投资有限公司 消息处理方法、装置、计算机设备及存储介质
CN111538600B (zh) * 2020-02-25 2023-09-12 远景智能国际私人投资有限公司 消息处理方法、装置、计算机设备及存储介质
CN112685199A (zh) * 2020-12-30 2021-04-20 平安普惠企业管理有限公司 一种消息队列修复方法、装置、计算机设备及存储介质
CN112685199B (zh) * 2020-12-30 2023-10-20 董小君 一种消息队列修复方法、装置、计算机设备及存储介质
CN113839987A (zh) * 2021-08-24 2021-12-24 广州市瑞立德信息系统有限公司 一种基于消息队列的消息分发方法、门禁系统及存储介质
CN113839987B (zh) * 2021-08-24 2024-04-30 广州市瑞立德信息系统有限公司 一种基于消息队列的消息分发方法、门禁系统及存储介质

Similar Documents

Publication Publication Date Title
CN106330750A (zh) 一种可控式大并发分布式消息队列推送方法
CN111338773B (zh) 一种分布式定时任务调度方法、调度系统及服务器集群
CN109697122B (zh) 任务处理方法、设备及计算机存储介质
TWI559153B (zh) 分散式計算架構
US20140325524A1 (en) Multilevel load balancing
CN106170016A (zh) 一种处理高并发数据请求的方法和系统
US8082307B2 (en) Redistributing messages in a clustered messaging environment
CN111190745A (zh) 一种数据处理方法、装置及计算机可读存储介质
CN105160570A (zh) 一种可水平扩展的并发在线交易处理方法
US20140059152A1 (en) Support server for redirecting task results to a wake-up server
US11184418B2 (en) Stream processing utilizing virtual processing agents
WO2017185615A1 (zh) 一种业务处理设备的业务状态确定方法及调度设备
CN104298565B (zh) 一种初始化端口的方法及装置
CN102571568A (zh) 任务处理方法及装置
CN103823712B (zh) 一种多cpu虚拟机系统的数据流处理方法和装置
CN104049955A (zh) Cache一致性多级流水线处理方法及装置
US11528232B1 (en) Apparatus and method for handling real-time tasks with diverse size based on message queue
CN101308469B (zh) 一种软中断负载均衡的实现方法及设备
JP6847112B2 (ja) ノードの再起動後にデータを処理する方法及びデバイス
CN110569238A (zh) 一种基于大数据的数据治理方法、系统、存储介质和服务端
Birke et al. Meeting latency target in transient burst: A case on spark streaming
CN106953884A (zh) 中间件消息处理方法、装置及中间件平台
CN112764837B (zh) 数据上报方法、装置、存储介质及终端
US20030023775A1 (en) Efficient notification of multiple message completions in message passing multi-node data processing systems
CN111538604B (zh) 分布式任务处理系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20170111

RJ01 Rejection of invention patent application after publication