CN112579148B - 基于业务代理的业务消息处理方法、装置及电子设备 - Google Patents
基于业务代理的业务消息处理方法、装置及电子设备 Download PDFInfo
- Publication number
- CN112579148B CN112579148B CN202011496598.XA CN202011496598A CN112579148B CN 112579148 B CN112579148 B CN 112579148B CN 202011496598 A CN202011496598 A CN 202011496598A CN 112579148 B CN112579148 B CN 112579148B
- Authority
- CN
- China
- Prior art keywords
- message
- service
- theme
- job
- processing
- 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
- 238000003672 processing method Methods 0.000 title claims abstract description 20
- 238000012545 processing Methods 0.000 claims abstract description 173
- 238000004220 aggregation Methods 0.000 claims abstract description 69
- 230000002776 aggregation Effects 0.000 claims abstract description 69
- 230000008602 contraction Effects 0.000 claims abstract description 67
- 238000012544 monitoring process Methods 0.000 claims abstract description 10
- 230000015654 memory Effects 0.000 claims description 38
- 238000000034 method Methods 0.000 claims description 34
- 238000013507 mapping Methods 0.000 claims description 33
- 238000010276 construction Methods 0.000 claims description 13
- 238000004590 computer program Methods 0.000 claims description 8
- 238000012216 screening Methods 0.000 claims description 6
- 230000004931 aggregating effect Effects 0.000 claims 1
- 239000002699 waste material Substances 0.000 abstract description 11
- 239000003795 chemical substances by application Substances 0.000 description 39
- 238000010586 diagram Methods 0.000 description 13
- 230000008569 process Effects 0.000 description 11
- 230000009467 reduction Effects 0.000 description 9
- 230000006870 function Effects 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 6
- 238000004458 analytical method Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000002829 reductive effect Effects 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000036961 partial effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- 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/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/508—Monitor
Abstract
本申请实施例提供了一种基于业务代理的业务消息处理方法,涉及计算机网络领域,该方法通过获取远程配置模块设置的业务配置信息;监听当前消息中间件的业务消息的积压状态和流式处理框架的数据处理的运行负载;根据积压状态和运行负载构建扩缩容作业及其对应的消息中间件的新消息主题;将新的业务消息发送至所述消息中间件的新消息主题,并利用所述新消息主题对应的扩缩容作业按照所述业务配置信息对所述业务消息进行聚合处理。本技术方案通过在业务消息积压时构建资源量更大的作业进行处理,在业务消息量少时构建资源量少的作业进行处理,从而实现业务代理系统中的资源的合理利用,避免了业务消息积压和资源浪费,同时提高资源利用率。
Description
技术领域
本申请涉及计算机网络领域,具体而言,本申请涉及一种基于业务代理的业务消息处理方法、装置及电子设备,还涉及一种计算机可读存储介质。
背景技术
近年来,随着互联网应用的兴起,用户越来越倾向于选择在线视频直播观看主播进行主播。在直播过程中,观众用户会向主播进行送礼,或者在直播间发送弹幕和发言等,直播平台需要对这些业务消息进行处理,以监控直播平台的运营情况。
由于需要处理的业务消息较多,需要对业务消息进行聚合处理,例如,统计某主播1小时内的收礼数量,某个直播间每分钟的发言和弹幕数据量,提高处理效率。目前,常用的业务消息处理技术是基于Flink开源流处理框架自带Flink SQL API的流式处理开发方式,通过业务方将需要聚合处理的源数据生产至该源数据对应的消息中间件,编写Flink SQL语句消费该源数据中业务消息指定的消息主题,执行业务聚合操作并保存数据库中存储;或者编写流处理程序利用流式处理框架系统上的作业进行数据聚合处理。
然而,业务消息的数量很大时,消息中间件难以及时处理业务消息时需要对业务消息进行缓存处理,但缓存容易受到服务故障影响而导致数据丢失,当业务消息量少时,流式处理框架系统上的作业无法拉取到充足的业务消息,导致作业上的资源浪费,影响业务处理系统的性能。
发明内容
本申请的目的旨在至少解决上述技术缺陷之一,提出以下技术方案:
第一方面,本申请实施例提供一种基于业务代理的业务消息处理方法,包括以下步骤:
获取远程配置模块设置的业务配置信息;
监听当前消息中间件的业务消息的积压状态和流式处理框架的数据处理的运行负载;
根据所述积压状态和运行负载构建扩缩容作业及其对应的消息中间件的新消息主题;
将新的业务消息发送至所述消息中间件的新消息主题,并利用所述新消息主题对应的扩缩容作业按照所述业务配置信息对所述业务消息进行聚合处理。
在一种可能的实现方式中,所述将新的业务消息发送至所述消息中间件的新消息主题,包括:
在进行扩缩容作业处理时,从键值数据库中读取预存的映射关系;其中,所述映射关系为预先建立并保存的所述业务消息的业务标识、所述新消息主题以及所述扩缩容作业之间的映射关系;
根据所述映射关系将新的业务消息发送至相应的所述消息中间件的新消息主题。
在一种可能的实现方式中,所述将新的业务消息发送至所述消息中间件的新消息主题,并利用所述新消息主题对应的扩缩容作业按照所述业务配置信息对所述业务消息进行聚合处理的步骤包括:
在当前作业对应的消息中间件消息主题中的业务消息被处理完毕后,将新的业务消息发送至所述消息中间件的新消息主题;
利用所述新消息主题对应的扩缩容作业拉取所述新消息主题的业务消息,并按照所述业务配置信息对所述业务消息进行聚合处理。
在一种可能的实现方式中,所述根据所述积压状态和运行负载构建扩缩容作业及其对应的消息中间件的新消息主题的步骤包括:
根据所述积压状态确定待处理的业务消息的第一数量,根据所述运行负载确定所述流式处理框架的作业资源;
当所述第一数量大于第一预设阈值且所述流式处理框架的作业资源充足时,构建扩容作业及其对应的消息中间件的扩容消息主题;所述新消息主题为所述扩容消息主题。
在一种可能的实现方式中,所述根据所述积压状态和运行负载构建扩缩容作业及其对应的消息中间件的新消息主题的步骤包括:
根据所述积压状态确定待处理的业务消息的第二数量,以及统计所述积压状态的持续时间;
当所述第二数量小于第二预设阈值且持续时间达到预设时间阈值时,构建缩容作业及其对应的消息中间件的缩容消息主题;所述新消息主题为缩容消息,所述缩容作业的作业资源量小于扩容作业的作业资源量。
在一种可能的实现方式中,所述构建扩缩容作业及其对应的消息中间件的新消息主题的步骤包括:
获取待处理的业务消息的处理状态;
基于所述处理状态确定处理所述业务消息的资源参数,根据所述资源参数构建对应的扩缩容作业及其对应的消息中间件的新消息主题。
在一种可能的实现方式中,所述在在当前作业对应的消息中间件消息主题中的业务消息被处理完毕后的步骤之后,还包括:
释放当前作业及其对应的消息中间件消息主题。
在一种可能的实现方式中,所述获取远程配置模块设置的业务配置信息的步骤之后,还包括:
解析所述业务配置信息,确定待处理的业务消息的消息标识及其对应的聚合逻辑;
所述利用所述新消息主题对应的扩缩容作业按照所述业务配置信息对所述业务消息进行聚合处理的步骤包括:
利用所述新消息主题对应的扩缩容作业按照所述业务消息的消息标识及其对应的聚合逻辑进行聚合处理。
在一种可能的实现方式中,所述将新的业务消息发送至所述消息中间件的新消息主题进行消费的步骤之前,还包括:
获取通过调用服务接口注入的源数据;
根据所述消息标识从注入的源数据中筛选出待处理的新的业务消息。
第二方面,本申请实施例提供一种基于业务代理的业务消息处理装置,包括:
信息获取模块,用于获取远程配置模块设置的业务配置信息;
状态监听模块,用于监听当前消息中间件的业务消息的积压状态和流式处理框架的数据处理的运行负载;
作业构建模块,用于根据所述积压状态和运行负载构建扩缩容作业及其对应的消息中间件的新消息主题;
消息处理模块,用于将新的业务消息发送至所述消息中间件的新消息主题,并利用所述新消息主题对应的扩缩容作业按照所述业务配置信息对所述业务消息进行聚合处理。
第三方面,本申请实施例提供一种电子设备,所述电子设备包括:
一个或多个处理器;
存储器;
一个或多个应用程序,其中所述一个或多个应用程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序配置用于:执行根据第一方面所述的基于业务代理的业务消息处理方法。
第四方面,本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现第一方面所述的基于业务代理的业务消息处理方法。
本申请提供的技术方案带来的有益效果是:
通过获取远程配置模块设置的业务配置信息,结合监听的当前消息中间件的业务消息的积压状态和流式处理框架的数据处理的运行负载构建扩缩容作业及其对应的消息中间件的新消息主题,将新的业务消息发送至消息中间件的新消息主题进行消费,并根据业务配置信息及新消息主题对应的扩缩容作业对业务消息进行聚合处理。本技术方案通过新的处理架构,在业务消息积压时可以构建资源量更大的作业进行处理,在业务消息量少时也可以构建资源量少的作业进行处理,从而实现业务代理系统中的资源的合理利用,避免了业务消息积压和资源浪费,同时提高资源利用率。
进一步的,在消息中间件的当前消息主题的业务消息处理完毕后,在启动新的消息主题和扩缩容作业对新的业务消息进行聚合处理,保证了业务消息处理的时序性。当前消息主题的业务消息处理完毕后,释放出当前的任务所占用的资源,以保障流式处理框架中资源的合理利用。另外,本方案的扩缩容作业的构建通过指定资源参数的形式来实现,灵活配置业务消息处理所占用的内存和CPU等资源的数量,不需要额外编写流式处理程序,简单方便。
本申请附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本申请的实践了解到。
附图说明
本申请上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1是本申请实施例提供的所适用的应用环境示意图;
图2是本申请实施例提供的基于业务代理的服务器框架示意图;
图3是本申请实施例提供的一种基于业务代理的业务消息处理方法的流程图;
图4是本申请实施例提供的基于业务代理的业务消息处理的服务器架构示意图;
图5是本申请实施例提供的基于业务代理的业务消息处理的服务器架构另一示意图;
图6是本申请实施例提供的一种基于业务代理的业务消息处理装置的结构示意图;
图7是本申请实施例提供的一种基于业务代理的业务消息处理的电子设备的结构示意图。
具体实施方式
下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能解释为对本申请的限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本申请所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
下面对本申请涉及的几个名词进行介绍和解释:
业务消息:应用程序之间传递的数据内容。
消息中间件可以理解为将软件与软件之间的交互方式进行存储和管理的一种技术,也可以看做是一种容器,其可以理解为关注于数据的发送和接受,利用高效可靠的异步消息传递机制集成分布式系统。消息中间件包括队列模式和消息主题模式。
消息主题:是消息中间件的一种实现方式。业务消息可以按照消息主题进行分类,订阅了该消息主题的消费者能够获取该消息主题的所有的业务消息。
流式处理框架:是指用于构建实时流数据管道和应用程序的系统,对数据集进行连续不断的处理、聚合和分析,提供数据的处理、聚合和分析所需要的编程模型、功能函数、数据存储、访问和更新等状态管理、消息传输保障等功能。
在对本申请实施例进行详细的解释说明之前,先对本申请实施例的应用场景予以介绍。本申请实施例提供的方法应用于基于业务代理的业务消息处理的场景中。
在互联网直播领域,客户端所做出的一些列动作会产生数量庞大的业务数据,如观众送礼、弹幕发言和支付信息等业务数据。直播平台的数据中心每秒可以产生约成千上万的业务数据。
如图1所示,图1是本申请实施例提供的所适用的应用环境示意图,以直播平台为例进行说明,直播平台包括客户端101和服务器102,客户端101包括主播端和观众端,用于产生用户在直播过程中所涉及到的业务数据,如请求连接、赠送礼物、弹幕发言和支付购买等。客户端101产生的业务数据发送到服务器102进行处理。
由于直播平台所产生的业务数据量巨大,通常而言,业务方通过调用服务器接口将业务数据注入到业务代理系统上的服务器进行聚合和分析处理,之后将聚合后的业务消息反馈回业务方进行后续处理。其中,服务器包括代理服务、消息中间件的服务节点和流式处理框架的服务节点所涉及到的服务器。
如图2所示,图2是本申请实施例提供的基于业务代理的服务器框架示意图,业务方在远程配置模块上通过JSON格式配置业务消息的业务配置信息,包括:业务消息的消息标识、业务消息的聚合时间窗口、聚合主键、聚合项、聚合方法和输出项,以及输出消息中间件消息主题等。远程配置模块将业务配置信息推送到前置代理服务和流式处理框架。前置代理服务获取注入的业务消息,将业务消息按照业务配置信息将业务消息发送到消息中间件指定的消费消息主题中进行消费后,发送到流式处理框架,以通过流式处理框架根据业务配置信息对业务消息进行聚合处理,得到聚合结果,将聚合结果返回到目标消息主题,由消息中间件的目标消息主题将聚合结果返回到业务方进行后续处理。
例如,统计主播1小时收到的礼物数量,或者统计某一直播间的弹幕发言的数量等。在相关技术中,通过编写业务代码,订阅消息中间件消息主题,按照消息主题在流处理平台对业务消息进行聚合处理,得到聚合结果。
然而,如果业务消息的数量太大,消息中间件无法及时处理,导致业务消息积压,需要对业务消息进行缓存后再处理,从而达到削峰处理的目的,然而,使用缓存容易受到服务器故障的影响从而导致业务数据的丢失,同时也影响了业务消息处理的及时性。另一方面,当业务消息量少时,流式处理框架系统上的作业无法拉取到充足的消息,导致作业上的资源浪费,甚至影响业务处理系统的性能,无法实现根据业务消息的数量合理调节业务消息处理系统的资源配置。
本申请提供的基于业务代理的业务消息处理方法、装置及电子设备,旨在解决如上技术问题。
下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。
下面将结合附图,对本申请的实施例进行详细描述。
图3是本申请实施例提供的一种基于业务代理的业务消息处理方法的流程图,该方法可以应用于代理服务;其中,该代理服务可以是中间件、插件或者服务程序。
如图3所示,一种基于业务代理的业务消息处理方法,可以包括以下步骤:
S210、获取远程配置模块设置的业务配置信息。
在本实施例中,业务方在管理后台预先在远程配置模块中设置业务配置信息,业务配置信息包括业务消息处理所涉及到的信息,如需要处理的业务消息的消息标识、消息标识指定的消息中间件消息主题以及流式处理框架中指定处理该消息主题对应的业务消息的作业,以及对业务消息进行聚合处理的聚合逻辑(如聚合主键、聚合项等)、输出聚合结果对应的消息中间件的目标消息主题等。
在一实施例中,在步骤S210获取远程配置模块设置的业务配置信息的步骤之后,还包括以下步骤:
S210A、解析所述业务配置信息,确定待处理的业务消息的消息标识、及其对应的聚合逻辑。
如图4所示,图4是本申请实施例提供的基于业务代理的业务消息处理的服务器架构示意图,代理服务接收到的业务配置信息后进行解析,得到待处理的业务消息的消息标识、消息标识对应的消息中间件消息主题以及业务消息的聚合逻辑。
在本实施例中,业务方通过调用代理服务的服务接口,将直播平台上产生的源数据注入到代理服务中,代理服务根据消息标识从源数据中筛选出待处理的业务消息,如业务数据源A已经在远程配置模块中配置,则业务数据源A的业务消息被代理服务所接收,而业务数据源B没有在远程配置模块中配置,则不接收。将待处理的业务消息A发送到该消息标识对应的消息中间件消息主题1上后转发至对应的流式处理框架的作业1上,按照指定的聚合逻辑进行聚合处理,得到聚合结果Id-A,并将聚合结果Id-A发送到负责聚合结果的消息中间件的目标消息主题中。
例如,业务消息为礼物消息,该礼物消息中包括主播ID(pid)、礼物类型(gift-type)、赠送时间、礼物数量和礼物价值等信息,该业务消息的消息标识为ID01,对应的消息中间件消息主题为A01,则代理服务将业务消息发送到消息中间件消息主题为A01后,流式处理框架从消息中间件消息主题为A01获取到该业务消息,按照指定的聚合逻辑,如以主播ID(pid)、礼物类型(gift-type)为聚合主键,聚合处理方法为礼物数量乘以礼物价值,聚合统计出1小时内某个主播的礼物收入总价值。
S220、监听当前消息中间件的业务消息的积压状态和流式处理框架的数据处理的运行负载。
代理服务监听当前消息中间件的消息主题的消费情况,判定业务消息的处理效率是否满足业务消息的产生速度,同时监听流式处理框架的数据处理的运行负载,即流式处理框架的当前作业所占内存和CPU是否满足当前业务消息的处理要求。
若当前业务消息的产生速度快,业务数据量大,而在流式处理框架的当前作业所占内存和CPU较小,业务消息的处理效率慢,而代理服务依旧按照向消息中间件发送业务消息,则容易导致业务消息在当前消息中间件中积压,使得业务消息可能从数据缓冲区溢出,导致异常。
若当前业务消息的产生速度较慢,业务数据量小,若在流式处理框架的当前作业所占内存和CPU较大,导致当前作业向消息中间件拉取业务消息,但消息中间件没有提供业务消息给当前作业进行消费,则导致流式处理框架的内存和CPU利用率低,造成资源浪费,还导致产生很多无效的消息拉取请求的RPC(Remote Procedure Call,远程过程调用)开销,影响消息中间件整体的网络性能。
S230、根据所述积压状态和运行负载构建扩缩容作业及其对应的消息中间件的新消息主题。
在本实施例中,当消息中间件的业务消息的积压较大,说明此时流式处理框架中的当前作业的资源量无法满足业务消息的处理需求,若检测到流式处理框架的总资源量是充足的,则构建扩容作业,该扩容作业所占用的资源量大于当前作业的资源量,从而提高业务消息的处理效率。
需要说明的是,若检测到流式处理框架的总资源量不充足,则不构建扩容作业。
若消息中间件的业务消息的无积压,或者积压较少,且检测到当前作业所占用的资源量大于处理该业务消息所需要的资源量,则构建缩容作业,该缩容作业所占用的资源量小于当前作业的资源量,从而避免流式处理框架的资源浪费,利用资源利用率。
另外,构建与扩容作业和缩容作业对应的消息中间件的新消息主题,以使得消息中间件的新消息主题与扩容作业或缩容作业相对应,以订阅新消息主题将新的未处理的业务消息发送到对应的扩容作业或缩容作业进行处理。
图5是本申请实施例提供的基于业务代理的业务消息处理的服务器架构另一示意图,如图5所示,代理服务监控消息中间件的业务消息积压状态和流式处理框架的数据处理的作业运行负载,当检测到业务数据源A的流量超限,其中,超限可以是超过最大限值,也可以是指低于最小限值,则说明此时业务数据源A对应的消息主题1和作业1不适应当前的业务消息处理状态,则构建出现的主题3及其对应的作业3,其中,当业务数据源A的流量超过最大限值需要扩容处理,则主题3及其对应的作业3为扩容消息主题及扩容作业;当业务数据源A的流量低于最小限值,则主题3及其对应的作业3为缩容消息主题及缩容作业。当业务数据源A对应的主题1和作业1中剩余的业务消息被消费完后,调用接口启动主题3和作业3进行工作,以保证业务处理的时序性,同时释放出主题1和作业1所占用的资源。
S240、将新的业务消息发送至所述消息中间件的新消息主题,并利用所述新消息主题对应的扩缩容作业按照所述业务配置信息对所述业务消息进行聚合处理。
在本实施例中,业务消息的消息标识、消息中间件的消息主题和流式处理框架的作业之间具有一一映射关系。代理服务根据这映射关系将业务消息推送至对应的消息中间件的消息主题,流式处理框架的作业从对应的消息中间件的消息主题拉取对应的业务消息或消息中间件将对应消息主题的业务消息推送至对应的流式处理框架的作业,利用流式处理框架的作业对业务消息进行聚合处理。
在一实施例中,步骤S240中的将新的业务消息发送至所述消息中间件的新消息主题,可以包括以下步骤:
S2401、在进行扩缩容作业处理时,从键值数据库中读取预存的映射关系。
其中,所述映射关系为预先建立并保存的所述业务消息的业务标识、所述新消息主题以及所述扩缩容作业之间的映射关系。
在本实施例中,预先建立扩容作业或缩容作业及其对应的消息中间件的新消息主题之间建立对应关系,同时在新的业务消息的业务标识与新消息主题之间建立对应关系,得到“业务消息的业务标识——消息中间件的新消息主题——扩容作业/缩容作业”的映射关系,将映射关系存储到键值数据库中,并更新键值数据库中已保存的映射关系,如添加新建立的映射关系,将已释放的作业对应的映射关系进行删除等。
在进行扩缩容作业处理时,从键值数据库中读取预存的该“业务消息的业务标识——消息中间件的新消息主题——扩容作业/缩容作业”映射关系。进一步的,可以根据待处理的业务消息的消息标识和映射关系,确定该消息标识对应的消息中间件的新消息主题。
S2402、根据所述映射关系将新的业务消息发送至相应的所述消息中间件的新消息主题。
在本实施例中,可以按照建立的“新的业务消息的消息标识——消息中间件的新消息主题——扩容作业/缩容作业”的映射关系,将新的业务消息发送到对应的消息中间件的新消息主题,通过该消息主题将业务消息发送到对应的扩容作业或缩容作业中,以利用扩容作业或缩容作业按照新的业务消息的消息标识对应的聚合处理方法进行聚合处理,得到聚合结果。
进一步的,还可以将聚合结果通过消息中间件的目标消息主题反馈至业务方,以让业务方根据实际情况进行后续处理。
在本实施例中,所述将新的业务消息发送至所述消息中间件的新消息主题进行消费的步骤之前,还包括:
S240A1、获取通过调用服务接口注入的源数据;
在本实施例中,业务方(即客户端)通过调用业务代理的服务接口上传源数据,代理服务获取到源数据,其中,这些源数据中包括需要进行处理的业务消息和不需要进行处理的其他消息,需要进行处理的业务消息通过远程配置模块预先设置好对应的业务标识。
S240A2、根据所述消息标识从注入的源数据中筛选出待处理的新的业务消息。
代理服务根据消息标识从注入的源数据中筛选出待处理的新的业务消息,以将新的业务消息发送到该业务标识对应的消息中间件的新消息主题中,利用该消息中间件的新消息主题将业务消息发送到对应的扩容或缩容作业中进行聚合处理。
本申请实施例提供的基于业务代理的业务消息处理方法,通过在业务消息积压时构建资源量更大的作业进行处理,在业务消息量少时构建资源量少的作业进行处理,从而实现业务代理系统中的资源的合理利用,避免了业务消息积压和资源浪费,同时提高资源利用率。
需要说明的是,本申请的扩容作业或缩容作业是基于当前流式处理框架的总资源量不变基础上进行构建的,也即是说,构建的扩容作业和缩容作业并不改变当前流式处理框架的总资源量,而是通过利用现有的总资源量的基础上根据业务消息的积压情况,构建占用不同资源量(CPU和内存等)的作业对业务消息进行处理,以得到资源的合理配置,避免所占资源太少无法满足处理要求而导致积压和所占资源太多而造成资源浪费。同时,当启动扩容作业或缩容作业时,会释放出之前的作业,从而避免资源的占用。
为了更清楚的阐述本申请的技术方案,下面针对基于业务代理的业务消息处理方法的提供更多实施例。
在一实施例中,步骤S230中的构建扩缩容作业及其对应的消息中间件的新消息主题,可以包括以下步骤:
S2301、获取待处理的业务消息的处理状态。
在本实施例中,处理状态包括:业务消息的积压数量、处理业务消息所需占用的内存和CPU等资源量,还可以包括当前作业所占用的内存和CPU等资源量。
S2302、基于所述处理状态确定处理所述业务消息的资源参数,根据所述资源参数构建对应的扩缩容作业及其对应的消息中间件的新消息主题。
其中,资源参数包括taskmanager(任务管理器)个数、jobmanager(作业管理器)的内存占用、每个taskmanager的内存占用、每个taskmanager可使用的CPU核数、application(应用)名称、指定的流式处理框架的job(作业)的队列名称中的至少一者。
例如,当前作业所占用的内存是1024Mb,CPU核数为4,若当前待处理的业务消息过多需要扩容,根据业务消息的积压数量确定构建的扩容作业的资源数为所占用的内存是2048Mb,CPU核数为6;若当前待处理的业务消息过少需要缩容,根据业务消息的积压数量确定构建的缩容作业的资源数为所占用的内存是512Mb,CPU核数为4等,并适应的构建出与扩容作业或缩容作业相对应的消息中间件的新消息主题。
通过指定参数的方式根据处理状态自动修改对应的资源参数;例如,./flinkrun-m yarn-cluster-yn 2-yjm 1024-ytm 3076-ys 3-ynm yarn-cluster-1-yquroot.default-c com.kn.rt.Test01作业1.jar来构建出流式处理框架中的作业1。
参数说明:
#1.-m:yarn-cluster(yarn集群),表示在yarn模式下启动单个session提交单一job(作业)
#2.-yn:taskmanager个数
#3.-yjm:jobmanager的内存占用
#4.-ytm:每个taskmanager的内存占用
#5.-ys:每个taskmanager可使用的CPU核数
#6.-ynm:application名称
#7.-yqu:指定job的队列名称
#8.-c:程序主入口+jar path
例如,-ys 3可以理解为指定作业1的可用线程数为4个,即指定了4个CPU核数;
-ytm 3076,可以表示指定作业1可用的内存为3076MB。
在本实施例中,根据积压状态和运行负载构建扩缩容作业及其对应的消息中间件的新消息主题的步骤可以包括构建扩容作业和缩容作业:
在一实施例中,对于步骤S230中的构建扩容作业的实现方式可以包括:
S230A1、根据所述积压状态确定待处理的业务消息的第一数量,根据所述运行负载确定所述流式处理框架的作业资源。
S230A2、当所述第一数量大于第一预设阈值且所述流式处理框架的作业资源充足时,构建扩容作业及其对应的消息中间件的扩容消息主题;所述新消息主题为所述扩容消息主题。
消息中间件向流式处理框架中的作业推送业务消息,或者流式处理框架中的作业向消息中间件拉取对应消息主题的业务消息,若流式处理框架中的当前作业能够处理的资源量较低,无法及时处理消息中间件推送或拉取的业务消息,导致业务消息造成积压,而积压越严重业务消息可能面临的异常的风险越大,当根据缓存中的待处理的业务消息的积压状态,确定业务消息的数量大于第一预设阈值,该第一预设阈值可以为超过正常状态下的业务消息的积压量的30-40%时,并根据流式处理框架的剩余资源量是否充足,若充足,则构建扩容作业。
在一实施例中,可以根据缓存中的积压的业务消息的数量,以当前作业所占用的资源量为参考,在当前作业的资源量的基础上提高30-40%的资源量。例如通过设定参数指定构建扩容作业的可用线程数和可用的内存等来提高扩容作业的资源量,达到扩容处理的目的。
另外,构建该扩容作业对应的消息中间件的扩容消息主题,建立业务消息的消息标识与扩容消息主题之间的映射关系,代理服务根据该映射关系将具有该业务标识的业务消息推送到对应的扩容消息主题,再通过该扩容消息主题传输到对应的扩容作业上进行聚合处理。
需要说明的是,本实施例构建的扩容是基于流式处理框架的总资源量不变的基础上,确定总资源量充足(即剩余资源量足够构建出扩容作业)的前提下,利用剩余资源量构建出比当前作业所占用资源量更大的扩容作业进行处理。若总资源量不充足(即剩余资源量不足够构建出扩容作业)的前提下,则不构建扩容作业,或者通过横向扩容的方式增加节点,从而增大流式处理框架的总资源量后,依靠增大后的总资源量下构建出比当前作业所占用资源量更大的扩容作业进行处理
在一实施例中,步骤S230中的构建缩容作业的实现方式可以包括:
S230B1、根据所述积压状态确定待处理的业务消息的第二数量,以及统计所述积压状态的持续时间。
S230B2、当所述第二数量小于第二预设阈值且持续时间达到预设时间阈值时,构建缩容作业及其对应的消息中间件的缩容消息主题,所述新消息主题为缩容消息。
其中,所述缩容作业的作业资源量小于扩容作业的作业资源量。
消息中间件向流式处理框架中的作业推送业务消息,或者流式处理框架中的作业向消息中间件拉取对应消息主题的业务消息,若流式处理框架中的当前作业能够处理的资源量较大,而消息中间件推送的业务消息或当前作业拉取的业务消息的数量少,导致当前作业的资源浪费,甚至推送业务消息为空或者拉取业务消息为空,响应业务代理系统的性能。
当根据业务消息的积压状态,确定业务消息的数量小于第二预设阈值,该第二预设阈值可以为正常状态下的业务消息的积压量的30-40%时,或者比前一天的当前时间段同比下降40%,且持续时间达到预设时间阈值时,则构建缩容作业。该预设时间阈值可以是1小时或者2小时等,具体数值可以根据实际情况进行设定。
在一实施例中,也可以以当前作业所占用的资源量为参考,在当前作业的资源量的基础上降低30-40%的资源量,如通过设定参数指定构建所用作业的可用线程数和可用的内存等来降低缩容作业的资源量,达到扩容处理的目的。
对应的,构建该缩容作业对应的消息中间件的缩容消息主题,建立业务消息的消息标识与缩容消息主题之间的映射关系,以使得具有该业务标识的业务消息通过该缩容消息主题推送或拉取到对应的缩容作业上进行聚合处理。
在一实施例中,步骤S240中的将新的业务消息发送至所述消息中间件的新消息主题,并利用所述新消息主题对应的扩缩容作业按照所述业务配置信息对所述业务消息进行聚合处理,可以包括以下步骤:
S2403、在当前作业对应的消息中间件消息主题中的业务消息处理完毕后,将新的业务消息发送至所述消息中间件的新消息主题。
为了保证业务消息处理的时序性,在本实施例中,在当前作业对应的消息中间件消息主题中的业务消息被消费完毕后,才将新的业务消息发送至消息中间件的新消息主题进行消费,并在在当前作业对应的消息中间件消息主题中的业务消息被消费完毕释放出当前作业做占用的资源,如内存和CPU等。
S2404、利用所述新消息主题对应的扩缩容作业拉取所述新消息主题的业务消息,并按照所述业务配置信息对所述业务消息进行聚合处理。
由于映射关系中的“业务消息的业务标识——消息中间件的新消息主题——扩容作业/缩容作业”具有一一对应关系,则根据映射关系确定消息中间件的新消息主题对应的流式处理框架上对应的扩容作业或缩容作业,确定扩容作业或缩容作业所订阅的消息中间件的新消息主题。
流式处理框架获取到远程配置模块推送业务配置信息进行解析,确定该新的业务消息的消息标识对应的业务消息的聚合处理相关信息,如聚合主键、聚合项、聚合方法,聚合结果的输出对应的消息中间件的目标消息主题等。新构建出来的流式处理框架的扩容作业或缩容作业按照业务消息对应的业务配置信息对业务消息进行聚合处理,得到聚合结果,将聚合结果发送到对应的消息中间件目标消息主题,由目标消息主题发送到业务方进行后续处理。
在一实施例中,在步骤S2403中的流式处理框架的当前作业将剩余的业务消息完毕后,还可以包括以下步骤:
S2405、释放当前作业及其对应的消息中间件消息主题。
在当前作业对应的消息中间件消息主题中的业务消息被消费完毕后之后,释放当前作业及其对应的消息中间件消息主题,从而使得流式处理框架内的CPU和内存等资源得到释放,有利于提高资源的利用率。
在本实施例中,在流式处理框架的当前作业将剩余的业务消息完毕后在启动消息中间件的新消息主题及其扩容作业或缩容作业,从而保证业务消息处理的时序性,在当前作业对应的消息中间件消息主题中的业务消息被消费完毕后之后,释放当前作业及其对应的消息中间件消息主题,从而使得流式处理框架内的CPU和内存等资源得到释放,有利于提高资源的利用率。当然,在对时序性要求不高的业务消息处理,也可以是当前作业和新构建的扩容作业或缩容作业进行并行处理。
以上示例仅用于辅助阐述本公开技术方案,其涉及的图示内容及具体流程不构成对本公开技术方案的使用场景的限定。
下面对基于业务代理的业务消息处理装置的相关实施例进行详细阐述。
图6是本申请实施例提供的一种基于业务代理的业务消息处理装置的结构示意图,该基于业务代理的业务消息处理装置可以执行于代理服务;其中,该代理服务可以是中间件、插件或者服务程序。
具体的,如图6所示,该基于业务代理的业务消息处理装置200包括:信息获取模块210、状态监听模块220、作业构建模块230和消息处理模块240。
其中,信息获取模块210,用于获取远程配置模块设置的业务配置信息;
状态监听模块220,用于监听当前消息中间件的业务消息的积压状态和流式处理框架的数据处理的运行负载;
作业构建模块230,用于根据所述积压状态和运行负载构建扩缩容作业及其对应的消息中间件的新消息主题;
消息处理模块240,用于将新的业务消息发送至所述消息中间件的新消息主题,并利用所述新消息主题对应的扩缩容作业按照所述业务配置信息对所述业务消息进行聚合处理。
本申请实施例提供了一种基于业务代理的业务消息处理装置,通过在业务消息积压时构建资源量更大的作业进行处理,在业务消息量少时构建资源量少的作业进行处理,从而实现业务代理系统中的资源的合理利用,避免了业务消息积压和资源浪费,同时提高资源利用率。
在一种可能的实现方式中,消息处理模块240包括:映射关系读取单元和业务消息发送单元;
其中,映射关系读取单元,用于在进行扩缩容作业处理时,从键值数据库中读取预存的映射关系;其中,所述映射关系为预先建立并保存的所述业务消息的业务标识、所述新消息主题以及所述扩缩容作业之间的映射关系;
第一消息发送单元,用于根据所述映射关系将新的业务消息发送至相应的所述消息中间件的新消息主题。
在一种可能的实现方式中,消息处理模块240包括:第二业务消息发送单元和业务消息聚合单元;
其中,第二业务消息发送单元,用于在当前作业对应的消息中间件消息主题中的业务消息被处理完毕后,将新的业务消息发送至所述消息中间件的新消息主题;业务消息聚合单元,用于利用所述新消息主题对应的扩缩容作业拉取所述新消息主题的业务消息,并按照所述业务配置信息对所述业务消息进行聚合处理。
在一种可能的实现方式中,作业构建模块230包括:资源确定单元和扩容构建单元;
其中,资源确定单元,用于根据所述积压状态确定待处理的业务消息的第一数量,根据所述运行负载确定所述流式处理框架的作业资源;扩容构建单元,用于当所述第一数量大于第一预设阈值且所述流式处理框架的作业资源充足时,构建扩容作业及其对应的消息中间件的扩容消息主题;所述新消息主题为所述扩容消息主题。
在一种可能的实现方式中,作业构建模块230包括:数量确定单元和缩容构建单元;
其中,数量确定单元,用于根据所述积压状态确定待处理的业务消息的第二数量,以及统计所述积压状态的持续时间;缩容构建单元,用于当所述第二数量小于第二预设阈值且持续时间达到预设时间阈值时,构建缩容作业及其对应的消息中间件的缩容消息主题,所述新消息主题为缩容消息;其中,所述缩容作业的作业资源量小于扩容作业的作业资源量。
在一种可能的实现方式中,作业构建模块230包括:处理状态获取单元和扩缩容构建单元;
其中,处理状态获取单元,用于获取待处理的业务消息的处理状态;扩缩容构建单元,用于基于所述处理状态确定处理所述业务消息的资源参数,根据所述资源参数构建对应的扩缩容作业及其对应的消息中间件的新消息主题。
在一种可能的实现方式中,基于业务代理的业务消息处理装置200还包括:作业释放模块,用于在当前作业对应的消息中间件消息主题中的业务消息被处理完毕后,释放当前作业及其对应的消息中间件消息主题。
在一种可能的实现方式中,基于业务代理的业务消息处理装置200还包括:信息解析模块,用于解析所述业务配置信息,确定待处理的业务消息的消息标识及其对应的聚合逻辑;
所述消息处理模块240,具体用于利用所述新消息主题对应的扩缩容作业按照所述业务消息的消息标识及其对应的聚合逻辑进行聚合处理。
在一种可能的实现方式中,基于业务代理的业务消息处理装置200还包括:源数据获取模块和业务消息筛选模块;
其中,源数据获取模块,用于获取通过调用服务接口注入的源数据;业务消息筛选模块,用于根据所述消息标识从注入的源数据中筛选出待处理的新的业务消息。
本实施例的基于业务代理的业务消息处理装置可执行本申请前述实施例所示的基于业务代理的业务消息处理方法,其实现原理相类似,此处不再赘述。
本申请实施例中提供了一种电子设备,该电子设备包括:存储器和处理器;至少一个程序,存储于存储器中,用于被处理器执行时,与现有技术相比可实现:提高电子地图上的兴趣点位置获取的准确性。
在一个可选实施例中提供了一种电子设备,如图7所示,图7所示的电子设备4000包括:处理器4001和存储器4003。其中,处理器4001和存储器4003相连,如通过总线4002相连。可选地,电子设备4000还可以包括收发器4004,收发器4004可以用于该电子设备与其他电子设备之间的数据交互,如数据的发送和/或数据的接收等。需要说明的是,实际应用中收发器4004不限于一个,该电子设备4000的结构并不构成对本申请实施例的限定。
处理器4001可以是CPU(Central Processing Unit,中央处理器),通用处理器,DSP(Digital Signal Processor,数据信号处理器),ASIC(Application SpecificIntegrated Circuit,专用集成电路),FPGA(Field Programmable Gate Array,现场可编程门阵列)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器4001也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等。
总线4002可包括一通路,在上述组件之间传送信息。总线4002可以是PCI(Peripheral Component Interconnect,外设部件互连标准)总线或EISA(ExtendedIndustry Standard Architecture,扩展工业标准结构)总线等。总线4002可以分为地址总线、数据总线、控制总线等。为便于表示,图7中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器4003可以是ROM(Read Only Memory,只读存储器)或可存储静态信息和指令的其他类型的静态存储设备,RAM(Random Access Memory,随机存取存储器)或者可存储信息和指令的其他类型的动态存储设备,也可以是EEPROM(Electrically ErasableProgrammable Read Only Memory,电可擦可编程只读存储器)、CD-ROM(Compact DiscRead Only Memory,只读光盘)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。
存储器4003用于存储执行本申请方案的应用程序代码,并由处理器4001来控制执行。处理器4001用于执行存储器4003中存储的应用程序代码,以实现前述方法实施例所示的内容。
其中,电子设备包括但不限于:移动电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。图7示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,当其在计算机上运行时,使得计算机可以执行前述方法实施例中相应内容。与现有技术相比,本申请实施例实现了通过在业务消息积压时构建资源量更大的作业进行处理,在业务消息量少时构建资源量少的作业进行处理,从而实现业务代理系统中的资源的合理利用,避免了业务消息积压和资源浪费,同时提高资源利用率。
本申请实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备,如电子设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行时实现如下情况:
获取远程配置模块设置的业务配置信息;
监听当前消息中间件的业务消息的积压状态和流式处理框架的数据处理的运行负载;
根据所述积压状态和运行负载构建扩缩容作业及其对应的消息中间件的新消息主题;
将新的业务消息发送至所述消息中间件的新消息主题,并利用所述新消息主题对应的扩缩容作业按照所述业务配置信息对所述业务消息进行聚合处理。
需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备执行上述实施例所示的方法。
可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,模块的名称在某种情况下并不构成对该模块本身的限定,例如,信息获取模块还可以被描述为“获取信息的模块”。
应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
以上所述仅是本申请的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。
Claims (10)
1.一种基于业务代理的业务消息处理方法,其特征在于,包括以下步骤:
获取远程配置模块设置的业务配置信息;
监听当前消息中间件的业务消息的积压状态和流式处理框架的数据处理的运行负载;
根据所述积压状态和所述运行负载构建扩缩容作业及其对应的消息中间件的新消息主题,其中,若根据所述积压状态确定的待处理的业务消息的数量大于第一预设阈值,且根据所述运行负载确定所述流式处理框架的作业资源充足,则构建扩容作业及其对应的消息中间件的扩容消息主题,所述新消息主题为所述扩容消息主题,所述扩容作业所占用的资源量大于当前作业的资源量;若根据所述积压状态确定的待处理的业务消息的数量小于第二预设阈值,且所述积压状态的持续时间达到预设时间阈值,则构建缩容作业及其对应的消息中间件的缩容消息主题,所述新消息主题为缩容消息,所述缩容作业所占用的资源量小于当前作业的资源量,所述第一预设阈值大于所述第二预设阈值;
将新的业务消息发送至所述消息中间件的新消息主题,并利用所述新消息主题对应的扩缩容作业按照所述业务配置信息对所述业务消息进行聚合处理。
2.根据权利要求1所述的基于业务代理的业务消息处理方法,其特征在于,所述将新的业务消息发送至所述消息中间件的新消息主题的步骤,包括:
在进行扩缩容作业处理时,从键值数据库中读取预存的映射关系;其中,所述映射关系为预先建立并保存的所述业务消息的业务标识、所述新消息主题以及所述扩缩容作业之间的映射关系;
根据所述映射关系将新的业务消息发送至对应的所述消息中间件的新消息主题。
3.根据权利要求2所述的基于业务代理的业务消息处理方法,其特征在于,所述将新的业务消息发送至所述消息中间件的新消息主题,并利用所述新消息主题对应的扩缩容作业按照所述业务配置信息对所述业务消息进行聚合处理的步骤包括:
在当前作业对应的消息中间件消息主题中的业务消息被处理完毕后,将新的业务消息发送至所述消息中间件的新消息主题;
利用所述新消息主题对应的扩缩容作业拉取所述新消息主题的业务消息,并按照所述业务配置信息对所述业务消息进行聚合处理。
4.根据权利要求1所述的业务消息的处理方法,其特征在于,所述构建扩缩容作业及其对应的消息中间件的新消息主题的步骤包括:
获取待处理的业务消息的处理状态;
基于所述处理状态确定处理所述业务消息的资源参数,根据所述资源参数构建对应的扩缩容作业及其对应的消息中间件的新消息主题。
5.根据权利要求3所述的业务消息的处理方法,其特征在于,所述在当前作业对应的消息中间件消息主题中的业务消息被处理完毕后的步骤之后,还包括:
释放当前作业及其对应的消息中间件消息主题。
6.根据权利要求1所述的业务消息的处理方法,其特征在于,所述获取远程配置模块设置的业务配置信息的步骤之后,还包括:
解析所述业务配置信息,确定待处理的业务消息的消息标识及其对应的聚合逻辑;
所述利用所述新消息主题对应的扩缩容作业按照所述业务配置信息对所述业务消息进行聚合处理的步骤包括:
利用所述新消息主题对应的扩缩容作业按照所述业务消息的消息标识及其对应的聚合逻辑进行聚合处理。
7.根据权利要求6所述的业务消息的处理方法,其特征在于,所述将新的业务消息发送至所述消息中间件的新消息主题进行消费的步骤之前,还包括:
获取通过调用服务接口注入的源数据;
根据所述消息标识从注入的源数据中筛选出所述待处理的新的业务消息。
8.一种基于业务代理的业务消息处理装置,其特征在于,包括:
信息获取模块,用于获取远程配置模块设置的业务配置信息;
状态监听模块,用于监听当前消息中间件的业务消息的积压状态和流式处理框架的数据处理的运行负载;
作业构建模块,用于根据所述积压状态和所述运行负载构建扩缩容作业及其对应的消息中间件的新消息主题,其中,若根据所述积压状态确定的待处理的业务消息的数量大于第一预设阈值,且根据所述运行负载确定所述流式处理框架的作业资源充足,则构建扩容作业及其对应的消息中间件的扩容消息主题,所述新消息主题为所述扩容消息主题,所述扩容作业所占用的资源量大于当前作业的资源量;若根据所述积压状态确定的待处理的业务消息的数量小于第二预设阈值,且所述积压状态的持续时间达到预设时间阈值,则构建缩容作业及其对应的消息中间件的缩容消息主题,所述新消息主题为缩容消息,所述缩容作业所占用的资源量小于当前作业的资源量,所述第一预设阈值大于所述第二预设阈值;
消息处理模块,用于将新的业务消息发送至所述消息中间件的新消息主题,并利用所述新消息主题对应的扩缩容作业按照所述业务配置信息对所述业务消息进行聚合处理。
9.一种电子设备,其特征在于,所述电子设备包括:
一个或多个处理器;
存储器;
一个或多个应用程序,其中所述一个或多个应用程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序配置用于:执行根据权利要求1-7任一项所述的基于业务代理的业务消息处理方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-7任一项所述的基于业务代理的业务消息处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011496598.XA CN112579148B (zh) | 2020-12-17 | 2020-12-17 | 基于业务代理的业务消息处理方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011496598.XA CN112579148B (zh) | 2020-12-17 | 2020-12-17 | 基于业务代理的业务消息处理方法、装置及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112579148A CN112579148A (zh) | 2021-03-30 |
CN112579148B true CN112579148B (zh) | 2024-04-19 |
Family
ID=75135981
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011496598.XA Active CN112579148B (zh) | 2020-12-17 | 2020-12-17 | 基于业务代理的业务消息处理方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112579148B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112822298B (zh) * | 2021-04-19 | 2021-07-23 | 北京世纪好未来教育科技有限公司 | 业务服务扩缩容方法、装置、介质和电子设备 |
CN114531374B (zh) * | 2022-02-25 | 2023-08-25 | 深圳平安智慧医健科技有限公司 | 网络监控方法、装置、设备及存储介质 |
CN115618842B (zh) * | 2022-12-15 | 2023-04-11 | 浙江蓝鸽科技有限公司 | 一体化智慧校园数据中台系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111008087A (zh) * | 2019-12-25 | 2020-04-14 | 上海众源网络有限公司 | 一种消息处理方法及装置 |
CN111209310A (zh) * | 2020-04-23 | 2020-05-29 | 太平金融科技服务(上海)有限公司 | 基于流计算的业务数据处理方法、装置和计算机设备 |
WO2020186909A1 (zh) * | 2019-03-18 | 2020-09-24 | 北京金山云网络技术有限公司 | 虚拟网络业务处理方法、装置和系统,控制器,存储介质 |
CN111858007A (zh) * | 2020-07-29 | 2020-10-30 | 广州海鹚网络科技有限公司 | 一种基于消息中间件的任务调度方法方法和装置 |
-
2020
- 2020-12-17 CN CN202011496598.XA patent/CN112579148B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020186909A1 (zh) * | 2019-03-18 | 2020-09-24 | 北京金山云网络技术有限公司 | 虚拟网络业务处理方法、装置和系统,控制器,存储介质 |
CN111008087A (zh) * | 2019-12-25 | 2020-04-14 | 上海众源网络有限公司 | 一种消息处理方法及装置 |
CN111209310A (zh) * | 2020-04-23 | 2020-05-29 | 太平金融科技服务(上海)有限公司 | 基于流计算的业务数据处理方法、装置和计算机设备 |
CN111858007A (zh) * | 2020-07-29 | 2020-10-30 | 广州海鹚网络科技有限公司 | 一种基于消息中间件的任务调度方法方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN112579148A (zh) | 2021-03-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112579148B (zh) | 基于业务代理的业务消息处理方法、装置及电子设备 | |
US10904303B2 (en) | Control message from streaming source to facilitate scaling | |
CN111314433B (zh) | 消息传输方法、装置及电子设备 | |
CN110620699B (zh) | 消息到达率确定方法、装置、设备和计算机可读存储介质 | |
US10218661B2 (en) | Dynamic granular messaging persistence | |
CN111200606A (zh) | 深度学习模型任务处理方法、系统、服务器及存储介质 | |
CN112199174A (zh) | 消息发送的控制方法、装置、电子设备及计算机可读存储介质 | |
CN113296976A (zh) | 消息处理方法、装置、电子设备、存储介质及程序产品 | |
CN110727507B (zh) | 一种消息的处理方法、装置、计算机设备和存储介质 | |
CN113590437B (zh) | 一种告警信息处理方法、装置、设备和介质 | |
US10097656B2 (en) | Control method and apparatus for publish/subscribe systems | |
CN111917814B (zh) | 数据发布、订阅方法、装置、设备、系统及可读存储介质 | |
CN116627333A (zh) | 日志缓存方法、装置、电子设备及计算机可读存储介质 | |
CN115001897A (zh) | 通信方法、装置、电子设备及自动驾驶车辆 | |
CN113687958A (zh) | 数据处理方法、系统、计算机设备和存储介质 | |
CN111090818B (zh) | 资源管理方法、资源管理系统、服务器及计算机存储介质 | |
CN115589489B (zh) | 视频转码方法、装置、设备、存储介质及视频点播系统 | |
CN116009985A (zh) | 接口调用方法、装置、计算机设备和存储介质 | |
CN111401819B (zh) | 系统间数据推送方法及系统 | |
CN115250276A (zh) | 分布式系统及数据处理的方法和装置 | |
CN114461425A (zh) | 数据处理方法、装置、设备及计算机可读存储介质 | |
KR20220137408A (ko) | 서버 및 사용자 단말에서의 구독 채널 참조 기반의 주제별 메시지 채팅 방법 | |
CN113760569B (zh) | 一种多账号管理方法和系统 | |
CN113329238B (zh) | 视频文件管理方法、装置及服务器 | |
WO2022206474A1 (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 |