CN113326150A - 一种联机小批量消息处理方法和装置 - Google Patents
一种联机小批量消息处理方法和装置 Download PDFInfo
- Publication number
- CN113326150A CN113326150A CN202110603498.0A CN202110603498A CN113326150A CN 113326150 A CN113326150 A CN 113326150A CN 202110603498 A CN202110603498 A CN 202110603498A CN 113326150 A CN113326150 A CN 113326150A
- Authority
- CN
- China
- Prior art keywords
- message
- submission
- user
- message queue
- consumer
- 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
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 25
- 238000012545 processing Methods 0.000 claims abstract description 72
- 230000007246 mechanism Effects 0.000 claims abstract description 69
- 238000012544 monitoring process Methods 0.000 claims abstract description 62
- 238000004519 manufacturing process Methods 0.000 claims abstract description 50
- 230000009471 action Effects 0.000 claims abstract description 45
- 238000012216 screening Methods 0.000 claims abstract description 26
- 238000000034 method Methods 0.000 claims description 36
- 238000004590 computer program Methods 0.000 claims description 16
- 238000010586 diagram Methods 0.000 description 18
- 230000008569 process Effects 0.000 description 18
- 230000006870 function Effects 0.000 description 10
- 238000013461 design Methods 0.000 description 7
- 230000007547 defect Effects 0.000 description 6
- 238000012423 maintenance Methods 0.000 description 5
- 230000008878 coupling Effects 0.000 description 4
- 238000010168 coupling process Methods 0.000 description 4
- 238000005859 coupling reaction Methods 0.000 description 4
- 238000011161 development Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 238000004088 simulation Methods 0.000 description 4
- 230000006399 behavior Effects 0.000 description 3
- 238000011144 upstream manufacturing Methods 0.000 description 3
- 238000012938 design process Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 238000013213 extrapolation Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
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
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5022—Mechanisms to release resources
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明提供了一种联机小批量消息处理方法和装置,涉及大数据,该方法包括:建立消息队列,设置消息队列写入机制;根据拟发起交易的筛选条件,生成逐笔业务处理指令并设定优先级,进行生产提交操作生成消息;将消息按照消息队列写入机制写入消息队列;根据消费者调度机制,利用消费者从消息队列中提取消息,对消息执行消费动作;监控消费者的消费动作、消息队列和生产提交操作,按照预设通知方式,推送监控信息至用户。本发明能有效规避系统资源被挤占的风险,释放用户等待时间,提高系统易用性。
Description
技术领域
本发明涉及计算机数据处理技术领域,具体涉及大数据技术,尤其涉及一种联机小批量消息处理方法和装置。
背景技术
本部分旨在为权利要求书中陈述的本发明的实施方式提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
随着线上化、智能化开展,为降低分行每月初集中进行个贷线下放款的场景,对已完成审批的借据,在特定时间段,借助消息服务自动通过联机小批量方式驱动主机放款。
现有对系统内需人工触发的多笔联机交易,主要实现方式为通过列表查询到所有记录,一次勾选N笔记录(N的大小根据单笔记录联机耗时和系统超时设置情况决定)后提交,系统对该批记录循环调用联机接口进行处理,完成后展示逐笔处理结果,用户核对完成后,再次勾选N笔记录进行提交。如此重复直至所有需处理的记录都提交并接收到结果。
现有技术主要存在以下缺点:
1、从第一笔处理开始到最后一笔结果返回期间,用户需一直关注系统的执行情况,且每次结果返回后都需要及时分析处理,占用人力成本较高。
2、用户数量是不能控制的,如在短时间内大量用户使用此类交易,系统的并发压力较大(如连接池、CPU、内存),甚至影响系统稳定运行风险。
3、如果在一定程度上增加限流机制,在大量用户集中操作的情况下,部分用户的操作可能频繁被系统拒绝,极大降低了系统可用性。为应对该情况增加硬件设备配置,在系统闲时区间内运行资源占用较低,又是极大的浪费。
提出一种可靠的联机小批量处理机制,解决以上问题显得尤为重要。
因此,如何提供一种新的方案,其能够解决上述技术问题是本领域亟待解决的技术难题。
发明内容
本发明实施例提供一种联机小批量消息处理方法,能有效规避系统资源被挤占的风险,释放用户等待时间,提高系统易用性,该方法包括:
建立消息队列,设置消息队列写入机制;
根据拟发起交易的筛选条件,生成逐笔业务处理指令并设定优先级,进行生产提交操作生成消息;
将消息按照消息队列写入机制写入消息队列;
根据消费者调度机制,利用消费者从消息队列中提取消息,对消息执行消费动作;
监控消费者的消费动作、消息队列和生产提交操作,按照预设通知方式,推送监控信息至用户。
本发明实施例还提供一种联机小批量消息处理装置,包括:
消息队列建立模块,用于建立消息队列,设置消息队列写入机制;
消息生成模块,用于根据拟发起交易的筛选条件,生成逐笔业务处理指令并设定优先级,进行生产提交操作生成消息;
消息写入模块,用于将消息按照消息队列写入机制写入消息队列;
消费者调度模块,用于根据消费者调度机制,利用消费者从消息队列中提取消息,对消息执行消费动作;
监控模块,用于监控消费者的消费动作、消息队列和生产提交操作,按照预设通知方式,推送监控信息至用户。
本发明实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述一种联机小批量消息处理方法。
本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述一种联机小批量消息处理方法的计算机程序。
本发明实施例提供的一种联机小批量消息处理方法和装置,包括:首先建立消息队列,设置消息队列写入机制;然后根据拟发起交易的筛选条件,生成逐笔业务处理指令并设定优先级,进行生产提交操作生成消息;接着将消息按照消息队列写入机制写入消息队列;下一步根据消费者调度机制,利用消费者从消息队列中提取消息,对消息执行消费动作;最后监控消费者的消费动作、消息队列和生产提交操作,按照预设通知方式,推送监控信息至用户。本发明针对现有系统技术实现方案的缺点,提供一种基于消息队列的联机小批量消息处理机制,能有效规避系统资源被挤占的风险,释放用户等待时间,提高系统易用性。本发明结合用户使用场景特点,通过对消息队列生产者、消费者机制的设计,有效解决系统资源挤占风险,同时释放分行大量人力资源成本。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1为本发明实施例一种联机小批量消息处理方法示意图。
图2为本发明实施例一种联机小批量消息处理方法的消息生成过程示意图。
图3为本发明实施例一种联机小批量消息处理方法的推送监控信息过程示意图。
图4为运行本发明实施的一种联机小批量消息处理方法的计算机装置示意图。
图5为本发明实施例一种联机小批量消息处理装置示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。
本发明涉及大数据技术。图1为本发明实施例一种联机小批量消息处理方法示意图,如图1所示,本发明实施例提供一种联机小批量消息处理方法,能有效规避系统资源被挤占的风险,释放用户等待时间,提高系统易用性,该方法包括:
步骤101:建立消息队列,设置消息队列写入机制;
步骤102:根据拟发起交易的筛选条件,生成逐笔业务处理指令并设定优先级,进行生产提交操作生成消息;
步骤103:将消息按照消息队列写入机制写入消息队列;
步骤104:根据消费者调度机制,利用消费者从消息队列中提取消息,对消息执行消费动作;
步骤105:监控消费者的消费动作、消息队列和生产提交操作,按照预设通知方式,推送监控信息至用户。
本发明实施例提供的一种联机小批量消息处理方法,包括:首先建立消息队列,设置消息队列写入机制;然后根据拟发起交易的筛选条件,生成逐笔业务处理指令并设定优先级,进行生产提交操作生成消息;接着将消息按照消息队列写入机制写入消息队列;下一步根据消费者调度机制,利用消费者从消息队列中提取消息,对消息执行消费动作;最后监控消费者的消费动作、消息队列和生产提交操作,按照预设通知方式,推送监控信息至用户。本发明针对现有系统技术实现方案的缺点,提供一种基于消息队列的联机小批量消息处理机制,能有效规避系统资源被挤占的风险,释放用户等待时间,提高系统易用性。本发明结合用户使用场景特点,通过对消息队列生产者、消费者机制的设计,有效解决系统资源挤占风险,同时释放分行大量人力资源成本。
在本发明实施例中,消息队列MQ(Message Queue),是一种缓存上下游交互信息(文本、图片、音频、邮件等)的存储容器,先进先出的数据结构,由上游应用将消息推向下游应用缓存后,等待外推或更下游应用主动拉取。MQ中间件广泛应用于分布式系统,主要解决应用耦合、异步消息、流量削峰等问题。
具体实施本发明实施例提供的一种联机小批量消息处理方法时,在一个实施例中可以包括:
建立消息队列,设置消息队列写入机制;
根据拟发起交易的筛选条件,生成逐笔业务处理指令并设定优先级,进行生产提交操作生成消息;
将消息按照消息队列写入机制写入消息队列;
根据消费者调度机制,利用消费者从消息队列中提取消息,对消息执行消费动作;
监控消费者的消费动作、消息队列和生产提交操作,按照预设通知方式,推送监控信息至用户。
本发明针对现有系统技术实现方案的缺点,提供一种基于消息队列的联机小批量机制,能有效规避系统资源被挤占的风险,释放用户等待时间,提高系统易用性。
具体实施本发明实施例提供的一种联机小批量消息处理方法时,在一个实施例中,建立消息队列,设置消息队列写入机制,包括:
建立多个消息队列,为每个消息队列设置队列编号,用于存储包含业务处理指令的消息;
根据消息队列的数量,设置全局变量;其中,全局变量满足初始值为0,将全局变量除以消息队列的个数赋值于下一全局变量;
在每次向消息队列写入消息钱前,先取得全局变量;
根据全局变量的值,确定当前消息写入的消息队列的队列编号,将当前消息写入该消息队列;
在当前消息写入消息队列完成后,将全局变量重新赋值,继续进行下一消息的写入;其中,将全局变量的值加一后再除以消息队列的个数赋值于下一全局变量。
本发明实施例提供了一种基于消息队列的写入机制,主要包括:
建立N(N>1,且N为整数)个消息队列,为每个消息队列设置队列编号j,j的取值为0、1、2、...、N-1,用于存储包含业务处理指令的消息;
根据消息队列的数量,设置全局变量q;其中,全局变量q满足初始值为0,将全局变量q除以消息队列的个数N赋值于下一全局变量q;也就是说q的值等于q除以N的余数,即q=q%N,后续求余的操作符均用%表示;
在每次向消息队列写入消息钱前,先取得全局变量q;
根据全局变量q的值,确定当前消息写入的消息队列的队列编号,将当前消息写入该消息队列;
在当前消息写入消息队列完成后,将全局变量重新赋值为(q+1)%N,继续进行下一消息的写入;其中,将全局变量的值加一后再除以消息队列的个数赋值于下一全局变量,也就是q=(q+1)%N。
在本发明实施例的一个实例中,消息队列写入机制设计过程,包括:
设置N(N>1,且N为整数)个消息队列,用于存储业务指令,将每个队列编号为j,j的取值为0、1、2...N-1;
设置全局变量q,且满足q初始值为0,q的值等于q除以N的余数(即q=q%N,本文后续求余的操作符均用%表示);
每次向消息队列写入消息前,先取得q值决定当前消息写入的队列编号,然后将q重新赋值为(q+1)%N,
最后将当前消息写入到队列q中。
本发明通过消息队列个数,可有效控制系统最大并发数,实现削峰填谷,避免系统资源挤占而引发的系统风险。
前述提到的消息队列写入机制设计过程的表达式为举例说明,本领域技术人员可以理解,在实施时还可以根据需要对上述公式进行一定形式的变形和添加其它的参数或数据,或者提供其它的具体公式,这些变化例均应落入本发明的保护范围。
图2为本发明实施例一种联机小批量消息处理方法的消息生成过程示意图,如图2所示,具体实施本发明实施例提供的一种联机小批量消息处理方法时,在一个实施例中,根据拟发起交易的筛选条件,生成逐笔业务处理指令并设定优先级,进行生产提交操作生成消息,包括:
步骤201:在用户提交页面设定筛选条件;
步骤202:根据用户在提交页面提交的拟发起交易的筛选条件,在应用服务器端提取所有符合条件的业务记录,按照设定格式生成逐笔业务处理指令;
步骤203:根据业务交易类型维度及业务交易的紧迫性程度,对生成的逐笔业务处理指令设定优先级;
步骤204:将设定优先级的逐笔业务处理指令进行生产操作提交生成消息,提交完成后返回提交成功结果。
实施例中,生产提交操作生成消息的主要过程,包括:
首先在用户提交页面设定筛选条件;考虑到现有技术中用户数量是不能控制的,在短时间内大量用户使用此类交易,系统的并发压力较大会影响系统稳定运行风险,设定用户提交界面仅需输入拟发起交易的筛选条件;
然后根据用户在提交页面提交的拟发起交易的筛选条件,在应用服务器端提取所有符合条件的业务记录,按照设定格式生成逐笔业务处理指令;
接着根据业务交易类型维度及业务交易的紧迫性程度,对生成的逐笔业务处理指令设定优先级,虑到不同业务交易的紧迫性程度不同,以业务交易类型维度设置消息优先级,为每一类业务交易设置优先级,不同业务的优先级可相同;
最后将设定优先级的逐笔业务处理指令进行生产操作提交生成消息,提交完成后返回提交成功结果。此时,用户在系统内的提交操作一次全部完成。
本发明通过消息队列生产过程设计,实现了系统与用户操作的松耦合,通过调整用户操作方式有效降低分行参与操作的人员数量;通过调整系统通知用户方式,有效释放用户闲时等待时间。极大的提升了系统易用性。通过优先级设计机制,可同时容纳多类业务的分级处理,极大的增加了功能的复用性,有效降低了同类功能的开发成本。
具体实施本发明实施例提供的一种联机小批量消息处理方法时,在一个实施例中,根据消费者调度机制,利用消费者从消息队列中提取消息,对消息执行消费动作,包括:
设置多个消费者,为每个消费者设置消费者编号;
设置常量;其中,常量的设置需满足常量与消息队列的个数不存在1以外的其他公约数;
设置定时时间段;其中,定时时间段是根据不同系统的业务处理差异进行模拟获取;
根据消费者编号、常量、定时时间段、消息队列的队列编号、消息的优先级和消息到达消息队列的时间点,结合消费者调度机制,利用消费者从消息队列中提取消息,对消息执行消费动作。
实施例中,对消费者调度执行消费动作的过程,主要包括:
设置M个(M>=1,M为整数)消费者,为每个消费者设置消费者编号为i,i的取值为0、1、2、...、M-1;
设置常量p;其中,常量的设置需满足常量p与消息队列的个数N不存在1以外的其他公约数;
设置定时时间段t;其中,定时时间段t是根据不同系统的业务处理差异进行模拟获取;t值一般可根据不同系统的业务处理差异根据模拟获取,主要用于解决系统由于长时间运行导致不同消费者消费的队列同步情况,需设置自动重新启动后的再散列机制;
根据消费者编号、常量、定时时间段、消息队列的队列编号、消息的优先级和消息到达消息队列的时间点,结合消费者调度机制,利用消费者从消息队列中提取消息,对消息执行消费动作。
在本发明实施例的一个实例中,一种基于消息队列的消费者调度过程,包括:
设置M个(M>=1,M为整数)消费者,将每个消费者编号为i,i的取值为0、1、2...M-1;
设置常量p,需满足p与N不存在1以外的其他公约数,一般p可取值1;
设置定时时间段t,t值一般可根据不同系统的业务处理差异根据模拟获取,主要用于解决系统由于长时间运行导致不同消费者消费的队列同步情况,需设置自动重新启动后的再散列机制;
根据消费者编号、常量、定时时间段、消息队列的队列编号、消息的优先级和消息到达消息队列的时间点,结合消费者调度机制,利用消费者从消息队列中提取消息,对消息执行消费动作,进行消费者调度。
具体实施本发明实施例提供的一种联机小批量消息处理方法时,在一个实施例中,根据消费者编号、常量、定时时间段、消息队列的队列编号、消息的优先级和消息到达消息队列时间点,结合消费者调度机制,利用消费者从消息队列中提取消息,对消息执行消费动作,包括:
从多个消费者中选择一个消费者启动,通过随机模块获取多个消息队列中的一个消息队列作为该消费者的初始消费队列;
获取初始消费队列中所有消息的优先级,取出优先级最高且到达消息队时间点最早的消息,通过该消费者对取出的该消息执行消费动作;
在该消费者完成对取出的该消息的消费后,更换下一次消费队列,重复执行获取下一消费队列的优先级至执行消费动作的过程,直至该消费者的启动时间长度达到定时时间段;
当该消费者的启动时间长度达到定时时间段后,完成本次消费动作,重新启动该消费者,并重新执行通过随机模块获取消息队列的过程。
实施例中,结合多种调度参数,对消费者进行调度执行消费动作,主要包括:
从M个消费者中选择一个消费者i启动,通过随机模块获取N个消息队列中的一个消息队列j作为该消费者i的初始消费队列;
获取初始消费队列j中所有消息的优先级,取出优先级最高且到达消息队时间点最早的消息m,通过该消费者i对取出的该消息m执行消费动作;
在该消费者i完成对取出的该消息m的消费后,更换下一次消费队列为(j+p)%M,重复执行获取下一消费队列(j+p)%M的优先级至执行消费动作的过程,直至该消费者i的启动时间长度达到定时时间段t;
当该消费者i的启动时间长度达到定时时间段t后,完成本次消费动作,重新启动该消费者i,并重新执行通过随机模块获取新的消息队列的过程。
在本发明实施例的一个实例中,基于消息队列的消费者调度过程,主要包括:
1)当消费者i启动时,通过随机模块获取N个消息队列中的一个队列j作为消费者i的初始消费队列;
2)获取队列j的所有消息优先级,并取出优先级最高且最早到达的消息m;
3)消费者i完成对消息m的消费后,将更换下一次消费队列为(j+p)%M,重复执行上一步骤2),直至消费者i的启动时间达到t;
4)当消费者i启动时间达到t后,完成本次消费动作,重新启动消费者i,并执行消费者调度的上述步骤1)。
本发明通过特色的消费者调度设计,实现了消费者在队列间自动漂移策略,有效防止消费者僵死引发的整个队列消费行为停止的可能性。
前述提到的对消费者进行调度执行消费动作过程涉及的表达式为举例说明,本领域技术人员可以理解,在实施时还可以根据需要对上述公式进行一定形式的变形和添加其它的参数或数据,或者提供其它的具体公式,这些变化例均应落入本发明的保护范围。
图3为本发明实施例一种联机小批量消息处理方法的推送监控信息过程示意图,如图3所示,具体实施本发明实施例提供的一种联机小批量消息处理方法时,在一个实施例中,监控消费者的消费动作、消息队列和生产提交操作,按照预设通知方式,推送监控信息至用户,包括:
步骤301:在进行生产提交操作时,获取用户提交的信息通知方式;
步骤302:对包括消费者的消费动作执行情况、消息队列的消费速度、生产提交操作情况以及系统内存占用情况的运行指标进行监控,生成监控数据;
步骤303:对监控数据进行实时分析,根据各个运行指标的预警阈值,在运行指标超过预警阈值时,生成监控信息,按照用户提交的信息通知方式推送至用户。
具体实施本发明实施例提供的一种联机小批量消息处理方法时,在一个实施例中,该方法还包括:
按照提交用户和业务类型维度统计设定时间段内的生产提交、消息待处理和消息已处理情况,生成交易执行报表;
将交易执行报表按照用户提交的信息通知方式推送至用户。
实施例中,对消费者的消费动作、消息队列和生产提交操作进行监控,主要包括:按提交用户和业务类型维度统计一定时间段内的提交、待处理、已处理情况,根据已设置的通知方式,推送信息至用户。同时,通过监控模块,对消息队列的消费速度、消费者执行情况、系统内存占用情况等指标进行监控;通过预警模块,对监控数据实时分析后,根据各运行指标预警阀值设置情况,发送预警结果,通知运维人员。
本发明通过结合预警监控模块和通知模块,有效缩短了运行过程中各类业务级失败、系统级失败的发现时间,提升系统运维能力。
本发明结合用户使用场景特点,提供了一种基于消息队列的联机小批量机制,通过对消息队列生产者、消费者机制的设计,有效解决系统资源挤占风险,同时释放分行大量人力资源成本。
下面结合具体场景,对本发明实施例提供的一种联机小批量消息处理方法进行简要描述:
本发明针对现有系统技术实现方案的缺点,提供一种基于消息队列的联机小批量机制,能有效规避系统资源被挤占的风险,释放用户等待时间,提高系统易用性。
本发明的主要机制主要包括三个组成部分:
1、一种基于消息队列的生产机制:
1)消息队列设计:
a.设置N(N>1,且N为整数)个消息队列,用于存储业务指令,将每个队列编号为j,j的取值为0、1、2...N-1;
b.设置全局变量q,且满足q初始值为0,q的值等于q除以N的余数(即q=q%N,本文后续求余的操作符均用%表示);
c.每次向消息队列写入消息前,先取得q值决定当前消息写入的队列编号,然后将q重新赋值为(q+1)%N;
d.最后将当前消息写入到队列q中。
2)以业务交易类型维度设置消息优先级,考虑到不同业务交易的紧迫性程度不同,为每一类业务交易设置优先级,不同业务的优先级可相同。
3)调整用户提交方式,设定用户提交界面仅需输入拟发起交易的筛选条件,用户提交筛选条件后,在应用服务器端提取所有符合条件的业务记录,按照指定格式生成逐笔处理指令并插入消息队列中,完成后返回提交成功结果。此时,用户在系统内的提交操作一次全部完成。
2、一种基于消息队列的消费者调度机制:
1)设置M个(M>=1,M为整数)消费者,将每个消费者编号为i,i的取值为0、1、2...M-1;
2)设置常量p,需满足p与N不存在1以外的其他公约数,一般p可取值1;
3)设置定时时间段t,t值一般可根据不同系统的业务处理差异根据模拟获取,主要用于解决系统由于长时间运行导致不同消费者消费的队列同步情况,需设置自动重新启动后的再散列机制。
4)消费者调度:
a.当消费者i启动时,通过随机模块获取N个消息队列中的一个队列j作为消费者i的初始消费队列;
b.获取队列j的所有消息优先级,并取出优先级最高且最早到达的消息m;
c.消费者i完成对消息m的消费后,将更换下一次消费队列为(j+p)%M,重复执行上一步骤b,直至消费者i的启动时间达到t;
d.当消费者i启动时间达到t后,完成本次消费动作,重新启动消费者i,并执行消费者调度的第一个步骤a。
3、一种对消息队列执行情况的通知机制:
1)通知方式设置:在用户提交请求时,提供可供用户录入通知方式的功能单元,如手机号码、电子邮箱等。
2)预警监控及通知机制:按提交用户和业务类型维度统计一定时间段内的提交、待处理、已处理情况,根据已设置的通知方式,推送信息至用户。同时,通过监控模块,对消息队列的消费速度、消费者执行情况、系统内存占用情况等指标进行监控;通过预警模块,对监控数据实时分析后,根据各运行指标预警阀值设置情况,发送预警结果,通知运维人员。
本发明结合用户使用场景特点,提供了一种基于消息队列的联机小批量机制,通过对消息队列生产者、消费者机制的设计,有效解决系统资源挤占风险,同时释放分行大量人力资源成本。其优点如下:
1、本发明通过消息队列个数,可有效控制系统最大并发数,实现削峰填谷,避免系统资源挤占而引发的系统风险。
2、本发明通过消息队列生产过程设计,实现了系统与用户操作的松耦合,通过调整用户操作方式有效降低分行参与操作的人员数量;通过调整系统通知用户方式,有效释放用户闲时等待时间。极大的提升了系统易用性。
3、本发明通过特色的消费者调度设计,实现了消费者在队列间自动漂移策略,有效防止消费者僵死引发的整个队列消费行为停止的可能性。
4、本发明通过结合预警监控模块和通知模块,有效缩短了运行过程中各类业务级失败、系统级失败的发现时间,提升系统运维能力。
5、本发明通过优先级机制,可同时容纳多类业务的分级处理,极大的增加了功能的复用性,有效降低了同类功能的开发成本。
图4为运行本发明实施的一种联机小批量消息处理方法的计算机装置示意图,如图4所示,本发明实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述一种联机小批量消息处理方法。
本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有执行实现上述一种联机小批量消息处理方法的计算机程序。
本发明实施例中还提供了一种联机小批量消息处理装置,如下面的实施例所述。由于该装置解决问题的原理与一种联机小批量消息处理方法相似,因此该装置的实施可以参见一种联机小批量消息处理方法的实施,重复之处不再赘述。
图5为本发明实施例一种联机小批量消息处理装置示意图,如图5所示,本发明实施例还提供一种联机小批量消息处理装置,具体实施时可以包括:
消息队列建立模块501,用于建立消息队列,设置消息队列写入机制;
消息生成模块502,用于根据拟发起交易的筛选条件,生成逐笔业务处理指令并设定优先级,进行生产提交操作生成消息;
消息写入模块503,用于将消息按照消息队列写入机制写入消息队列;
消费者调度模块504,用于根据消费者调度机制,利用消费者从消息队列中提取消息,对消息执行消费动作;
监控模块505,用于监控消费者的消费动作、消息队列和生产提交操作,按照预设通知方式,推送监控信息至用户。
具体实施本发明实施例提供的一种联机小批量消息处理装置时,在一个实施例中,前述的消息生成模块,具体用于:
在用户提交页面设定筛选条件;
根据用户在提交页面提交的拟发起交易的筛选条件,在应用服务器端提取所有符合条件的业务记录,按照设定格式生成逐笔业务处理指令;
根据业务交易类型维度及业务交易的紧迫性程度,对生成的逐笔业务处理指令设定优先级,
将设定优先级的逐笔业务处理指令进行生产操作提交生成消息,提交完成后返回提交成功结果。
具体实施本发明实施例提供的一种联机小批量消息处理装置时,在一个实施例中,前述的监控模块,具体用于:
在进行生产提交操作时,获取用户提交的信息通知方式;
对包括消费者的消费动作执行情况、消息队列的消费速度、生产提交操作情况以及系统内存占用情况的运行指标进行监控,生成监控数据;
对监控数据进行实时分析,根据各个运行指标的预警阈值,在运行指标超过预警阈值时,生成监控信息,按照用户提交的信息通知方式推送至用户。
具体实施本发明实施例提供的一种联机小批量消息处理装置时,在一个实施例中,前述的监控模块,还用于:
按照提交用户和业务类型维度统计设定时间段内的生产提交、消息待处理和消息已处理情况,生成交易执行报表;
将交易执行报表按照用户提交的信息通知方式推送至用户。
综上,本发明实施例提供的一种联机小批量消息处理方法和装置,包括:首先建立消息队列,设置消息队列写入机制;然后根据拟发起交易的筛选条件,生成逐笔业务处理指令并设定优先级,进行生产提交操作生成消息;接着将消息按照消息队列写入机制写入消息队列;下一步根据消费者调度机制,利用消费者从消息队列中提取消息,对消息执行消费动作;最后监控消费者的消费动作、消息队列和生产提交操作,按照预设通知方式,推送监控信息至用户。本发明针对现有系统技术实现方案的缺点,提供一种基于消息队列的联机小批量消息处理机制,能有效规避系统资源被挤占的风险,释放用户等待时间,提高系统易用性。本发明结合用户使用场景特点,通过对消息队列生产者、消费者机制的设计,有效解决系统资源挤占风险,同时释放分行大量人力资源成本。
本发明结合用户使用场景特点,提供了一种基于消息队列的联机小批量机制,通过对消息队列生产者、消费者机制的设计,有效解决系统资源挤占风险,同时释放分行大量人力资源成本。其优点如下:
1、本发明通过消息队列个数,可有效控制系统最大并发数,实现削峰填谷,避免系统资源挤占而引发的系统风险。
2、本发明通过消息队列生产过程设计,实现了系统与用户操作的松耦合,通过调整用户操作方式有效降低分行参与操作的人员数量;通过调整系统通知用户方式,有效释放用户闲时等待时间。极大的提升了系统易用性。
3、本发明通过特色的消费者调度设计,实现了消费者在队列间自动漂移策略,有效防止消费者僵死引发的整个队列消费行为停止的可能性。
4、本发明通过结合预警监控模块和通知模块,有效缩短了运行过程中各类业务级失败、系统级失败的发现时间,提升系统运维能力。
5、本发明通过优先级机制,可同时容纳多类业务的分级处理,极大的增加了功能的复用性,有效降低了同类功能的开发成本。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种联机小批量消息处理方法,其特征在于,包括:
建立消息队列,设置消息队列写入机制;
根据拟发起交易的筛选条件,生成逐笔业务处理指令并设定优先级,进行生产提交操作生成消息;
将消息按照消息队列写入机制写入消息队列;
根据消费者调度机制,利用消费者从消息队列中提取消息,对消息执行消费动作;
监控消费者的消费动作、消息队列和生产提交操作,按照预设通知方式,推送监控信息至用户。
2.如权利要求1所述的方法,其特征在于,根据拟发起交易的筛选条件,生成逐笔业务处理指令并设定优先级,进行生产提交操作生成消息,包括:
在用户提交页面设定筛选条件;
根据用户在提交页面提交的拟发起交易的筛选条件,在应用服务器端提取所有符合条件的业务记录,按照设定格式生成逐笔业务处理指令;
根据业务交易类型维度及业务交易的紧迫性程度,对生成的逐笔业务处理指令设定优先级,
将设定优先级的逐笔业务处理指令进行生产操作提交生成消息,提交完成后返回提交成功结果。
3.如权利要求1所述的方法,其特征在于,监控消费者的消费动作、消息队列和生产提交操作,按照预设通知方式,推送监控信息至用户,包括:
在进行生产提交操作时,获取用户提交的信息通知方式;
对包括消费者的消费动作执行情况、消息队列的消费速度、生产提交操作情况以及系统内存占用情况的运行指标进行监控,生成监控数据;
对监控数据进行实时分析,根据各个运行指标的预警阈值,在运行指标超过预警阈值时,生成监控信息,按照用户提交的信息通知方式推送至用户。
4.如权利要求3所述的方法,其特征在于,还包括:
按照提交用户和业务类型维度统计设定时间段内的生产提交、消息待处理和消息已处理情况,生成交易执行报表;
将交易执行报表按照用户提交的信息通知方式推送至用户。
5.一种联机小批量消息处理装置,其特征在于,包括:
消息队列建立模块,用于建立消息队列,设置消息队列写入机制;
消息生成模块,用于根据拟发起交易的筛选条件,生成逐笔业务处理指令并设定优先级,进行生产提交操作生成消息;
消息写入模块,用于将消息按照消息队列写入机制写入消息队列;
消费者调度模块,用于根据消费者调度机制,利用消费者从消息队列中提取消息,对消息执行消费动作;
监控模块,用于监控消费者的消费动作、消息队列和生产提交操作,按照预设通知方式,推送监控信息至用户。
6.如权利要求5所述的装置,其特征在于,消息生成模块,具体用于:
在用户提交页面设定筛选条件;
根据用户在提交页面提交的拟发起交易的筛选条件,在应用服务器端提取所有符合条件的业务记录,按照设定格式生成逐笔业务处理指令;
根据业务交易类型维度及业务交易的紧迫性程度,对生成的逐笔业务处理指令设定优先级,
将设定优先级的逐笔业务处理指令进行生产操作提交生成消息,提交完成后返回提交成功结果。
7.如权利要求5所述的装置,其特征在于,监控模块,具体用于:
在进行生产提交操作时,获取用户提交的信息通知方式;
对包括消费者的消费动作执行情况、消息队列的消费速度、生产提交操作情况以及系统内存占用情况的运行指标进行监控,生成监控数据;
对监控数据进行实时分析,根据各个运行指标的预警阈值,在运行指标超过预警阈值时,生成监控信息,按照用户提交的信息通知方式推送至用户。
8.如权利要求7所述的装置,其特征在于,监控模块,还用于:
按照提交用户和业务类型维度统计设定时间段内的生产提交、消息待处理和消息已处理情况,生成交易执行报表;
将交易执行报表按照用户提交的信息通知方式推送至用户。
9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至4任一项所述方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有执行实现权利要求1至4任一项所述方法的计算机程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110603498.0A CN113326150A (zh) | 2021-05-31 | 2021-05-31 | 一种联机小批量消息处理方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110603498.0A CN113326150A (zh) | 2021-05-31 | 2021-05-31 | 一种联机小批量消息处理方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113326150A true CN113326150A (zh) | 2021-08-31 |
Family
ID=77423084
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110603498.0A Pending CN113326150A (zh) | 2021-05-31 | 2021-05-31 | 一种联机小批量消息处理方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113326150A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113938516A (zh) * | 2021-10-13 | 2022-01-14 | 中国银行股份有限公司 | 同步实现异构系统交易处理的方法及系统 |
CN115964254A (zh) * | 2023-03-16 | 2023-04-14 | 麒麟软件有限公司 | 一种动态调整监控数据处理速度的方法、系统及介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105068864A (zh) * | 2015-07-24 | 2015-11-18 | 北京京东尚科信息技术有限公司 | 处理异步消息队列的方法及系统 |
CN106302241A (zh) * | 2015-05-20 | 2017-01-04 | 中国移动通信集团河南有限公司 | 在线消息队列调度方法和装置 |
CN111382177A (zh) * | 2020-03-09 | 2020-07-07 | 中国邮政储蓄银行股份有限公司 | 一种业务数据任务处理方法、装置及系统 |
CN111506430A (zh) * | 2020-04-23 | 2020-08-07 | 上海数禾信息科技有限公司 | 多任务下数据处理的方法、装置及电子设备 |
CN112667414A (zh) * | 2020-12-23 | 2021-04-16 | 平安普惠企业管理有限公司 | 基于消息队列的消息消费方法、装置、计算机设备及介质 |
-
2021
- 2021-05-31 CN CN202110603498.0A patent/CN113326150A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106302241A (zh) * | 2015-05-20 | 2017-01-04 | 中国移动通信集团河南有限公司 | 在线消息队列调度方法和装置 |
CN105068864A (zh) * | 2015-07-24 | 2015-11-18 | 北京京东尚科信息技术有限公司 | 处理异步消息队列的方法及系统 |
CN111382177A (zh) * | 2020-03-09 | 2020-07-07 | 中国邮政储蓄银行股份有限公司 | 一种业务数据任务处理方法、装置及系统 |
CN111506430A (zh) * | 2020-04-23 | 2020-08-07 | 上海数禾信息科技有限公司 | 多任务下数据处理的方法、装置及电子设备 |
CN112667414A (zh) * | 2020-12-23 | 2021-04-16 | 平安普惠企业管理有限公司 | 基于消息队列的消息消费方法、装置、计算机设备及介质 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113938516A (zh) * | 2021-10-13 | 2022-01-14 | 中国银行股份有限公司 | 同步实现异构系统交易处理的方法及系统 |
CN115964254A (zh) * | 2023-03-16 | 2023-04-14 | 麒麟软件有限公司 | 一种动态调整监控数据处理速度的方法、系统及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113326150A (zh) | 一种联机小批量消息处理方法和装置 | |
CN111338791A (zh) | 集群队列资源的调度方法、装置、设备及存储介质 | |
CN113094434A (zh) | 数据库同步方法、系统、装置、电子设备及介质 | |
CN111131368A (zh) | 消息推送方法和装置 | |
US8751446B2 (en) | Transference control method, transference control apparatus and recording medium of transference control program | |
CN109684079B (zh) | 显示数据处理方法、装置以及电子设备 | |
CN111737356B (zh) | 一种区块链事件的处理方法及装置 | |
CN112579692A (zh) | 一种数据同步方法、装置、系统、设备及存储介质 | |
CN110225102B (zh) | 推送信息的方法、设备及系统 | |
CN110727700A (zh) | 多源流式数据整合成事务型流数据的方法及系统 | |
CN111383104A (zh) | 基金投资监督指标的获取方法及装置 | |
CN113127564B (zh) | 一种参数同步方法和装置 | |
EP3945420A1 (en) | Method and apparatus for data processing, server and storage medium | |
CN113422808B (zh) | 物联网平台http信息推送方法、系统、装置及介质 | |
CN109067864B (zh) | 通知消息推送方法、装置及电子设备 | |
CN115114247A (zh) | 文件数据处理方法及装置 | |
CN112948096A (zh) | 一种批量调度方法、装置和设备 | |
CN110188069A (zh) | 一种csv文件存储方法、装置及计算机设备 | |
CN111611123A (zh) | 数据处理方法、数据处理系统及设备 | |
CN115599838B (zh) | 基于人工智能的数据处理方法、装置、设备及存储介质 | |
CN114223189B (zh) | 时长统计方法、装置、电子设备和计算机可读介质 | |
CN110970038B (zh) | 语音解码方法及装置 | |
CN115242799B (zh) | 数据上报方法、装置、设备、存储介质及程序产品 | |
CN113923465B (zh) | 一种货币操作的处理系统、方法、装置、设备和介质 | |
CN115623019A (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 |