消息处理方法、装置、电子设备及消息处理系统与流程

文档序号:33459405发布日期:2023-03-15 03:20阅读:23来源:国知局
消息处理方法、装置、电子设备及消息处理系统与流程

1.本技术涉及计算机技术领域,尤其涉及一种消息处理方法、装置、电子设备及消息处理系统。


背景技术:

2.随着互联网技术的发展以及分布式系统规模的壮大,分布式消息系统的应用越来越广泛。目前较为常见的分布式消息系统包括kafka、rocketmq等。消息系统通常包括producer(消息生成方,也称为生产者)、一个或多个broker(服务器)组成的服务器集群,以及consumer(消息处理方,也称为消费者)。消息生成方负责生成并发布消息到服务器集群,消息处理方负责从服务器集群读取消息并执行相应的业务逻辑处理。
3.相关技术,通常是通过增加消息处理方的机器数量,来提高服务器集群中消息的处理速度,以降低未处理消息的积压。这种方式对消息处理方的机器成本消耗较大,且每个机器的内存和cpu(central processing unit,中央处理器)等配置资源不能得到充分利用,机器配置资源的利用率低。


技术实现要素:

4.本技术旨在至少在一定程度上解决相关技术中的技术问题之一。
5.本技术实施例提出一种消息处理方法、装置、电子设备及消息处理系统,以解决相关技术中的消息处理方法存在的机器成本消耗较大、机器配置资源的利用率低的技术问题。
6.本技术第一方面实施例提出了一种消息处理方法,应用于消息处理节点,包括:获取所述消息处理节点所处理的第一消息主题中消息的处理状态信息;在确定所述处理状态信息满足第一预设条件的情况下,将所述第一消息主题中的消息转发至多个第二消息主题;并行对多个所述第二消息主题中的消息进行处理。
7.本技术第二方面实施例提出了一种消息处理装置,应用于消息处理节点,包括:获取模块,用于获取所述消息处理节点所处理的第一消息主题中消息的处理状态信息;转发模块,用于在确定所述处理状态信息满足第一预设条件的情况下,将所述第一消息主题中的消息转发至多个第二消息主题;第一处理模块,用于并行对多个所述第二消息主题中的消息进行处理。
8.本技术第三方面实施例提出了一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如本技术第一方面实施例提出的消息处理方法。
9.本技术第四方面实施例提出了一种消息处理系统,包括:消息生成方、服务器集群、消息处理方,所述服务器集群中分布有至少一个消息主题;其中,所述消息生成方,用于生成消息,所述消息具有所属的消息主题,以及用于将所述消息发布到服务器集群中对应
的消息主题;所述服务器集群,用于接收所述消息生成方发布的消息,并将所述消息存储到对应的消息主题中;所述消息处理方,包括至少一个消息处理节点,所述消息处理节点用于执行本技术第一方面实施例所述的方法,以对所述至少一个消息主题中的第一消息主题中的消息进行处理。
10.本技术第五方面实施例提出了一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行如本技术第一方面实施例提出的消息处理方法。
11.本技术第六方面实施例提出了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现如本技术第一方面实施例提出的消息处理方法。
12.上述发明中的一个实施例具有如下优点或有益效果:
13.通过消息处理节点获取消息处理节点所处理的第一消息主题中消息的处理状态信息,在确定处理状态信息满足第一预设条件的情况下,将第一消息主题中的消息转发至多个第二消息主题,并行对多个第二消息主题中的消息进行处理,可以在消息处理节点数量固定的情况下,高效利用机器配置资源,从而机器成本消耗低,机器配置资源的利用率高,且由于消息处理节点可以并行对多个第二消息主题中的消息进行处理,从而能够实现快速处理消息,保证消息的时效性。
14.本技术附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本技术的实践了解到。
附图说明
15.本技术上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
16.图1为本技术实施例一所提供的消息处理系统的结构示意图;
17.图2为本技术实施例二所提供的消息处理方法的流程示意图;
18.图3为本技术实施例二所提供的消息处理节点对消息主题a中的消息进行转发和处理的示例图;
19.图4为本技术实施例三所提供的消息处理方法的流程示意图;
20.图5为本技术实施例三所提供的消息处理节点对消息进行转发的示例图;
21.图6为本技术实施例四所提供的消息处理方法的流程示意图;
22.图7为本技术实施例四所提供的消息处理方法的场景示例图;
23.图8为本技术实施例五所提供的消息处理装置的结构示意图;
24.图9为本技术实施例六所提供的消息处理装置的结构示意图;
25.图10示出了适于用来实现本技术实施方式的示例性电子设备的框图。
具体实施方式
26.下面详细描述本技术的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本技术,而不能理解为对本技术的限制。
27.需要说明的是,本公开的技术方案中,所涉及的用户个人信息的获取,存储和应用
等,均符合相关法律法规的规定,且不违背公序良俗。
28.本技术实施例针对相关技术中的消息处理方法存在的机器成本消耗较大、机器配置资源的利用率低的技术问题,提出一种消息处理方法、装置、电子设备、消息处理系统、存储介质以及计算机程序产品,其中,方法应用于消息处理节点,方法包括:获取消息处理节点所处理的第一消息主题中消息的处理状态信息;在确定处理状态信息满足第一预设条件的情况下,将第一消息主题中的消息转发至多个第二消息主题;并行对多个第二消息主题中的消息进行处理。由此,可以在消息处理节点数量固定的情况下,高效利用机器配置资源,从而机器成本消耗低,机器配置资源的利用率高,且由于消息处理节点可以并行对多个第二消息主题中的消息进行处理,从而能够实现快速处理消息,保证消息的时效性。
29.下面参考附图描述本技术实施例的消息处理方法、装置、电子设备、消息处理系统、存储介质以及计算机程序产品。
30.下面首先对本技术实施例提供的消息处理系统进行说明。
31.图1为本技术实施例一所提供的消息处理系统的结构示意图。
32.如图1所示,消息处理系统可以包括消息生成方110、服务器集群120、消息处理方130。其中,服务器集群120由多个服务器组成,服务器集群中分布有至少一个消息主题(topic)。
33.消息生成方110,用于生成消息,生成的消息具有所属的消息主题,消息生成方110还用于将消息发布到服务器集群中对应的消息主题;
34.服务器集群120,用于接收消息生成方110发布的消息,并将消息存储到对应的消息主题中;
35.消息处理方130,包括至少一个消息处理节点,消息处理节点用于执行本技术实施例的消息处理方法,以对至少一个消息主题中的第一消息主题中的消息进行处理。
36.其中,图1中以服务器集群120分布有消息主题a和消息主题b,消息处理方130包括消息处理节点a、消息处理节点b、消息处理节点c、消息处理节点d为例进行示意。
37.其中,消息主题是消息发送和接收的逻辑通道,一个消息主题在物理上可以包括多个分区,每个分区可以由一系列有序排列、不可变的消息组成,即每个分区都可以视作一个有序的消息队列。而由于一个消息主题的各分区中的消息的类型相同,本技术实施例中,可以将一个消息主题中的消息视为一个消息队列。
38.第一消息主题,可以为服务器集群中分布的任意一个消息主题。
39.消息处理节点,可以是消息处理方130的一个独立配置的处理器,也可以是消息处理方130的多个独立配置的处理器组成的集群,也可以是配置在消息处理方130的一个独立配置的处理器中的装置,本技术对此不作限制。
40.参考图1,消息生成方110生成的消息可以属于消息主题a和消息主题b,消息生成方110可以将属于消息主题a的消息发布到服务器集群120中对应的消息主题a,将属于消息主题b的消息发布到服务器集群120中对应的消息主题b。相应的,服务器集群120可以接收消息生成方110发布的消息,并将属于消息主题a的消息存储到对应的消息主题a中,将属于消息主题b的消息存储到对应的消息主题b中。
41.消息处理方130中的消息处理节点a、消息处理节点b和消息处理节点c可以分别执行本技术实施例的消息处理方法,以对消息主题a中的消息进行处理。消息处理方130中的
消息处理节点d可以执行本技术实施例的消息处理方法,以对消息主题b中的消息进行处理。其中,对消息进行处理,即根据消息中包含的内容,执行相应的业务处理逻辑。
42.下面对本技术实施例提供的消息处理方法进行说明。
43.图2为本技术实施例二所提供的消息处理方法的流程示意图。如图2所示,该消息处理方法可以包括以下步骤201-203。
44.步骤201,获取消息处理节点所处理的第一消息主题中消息的处理状态信息。
45.其中,需要说明的是,本技术实施例提供的消息处理方法,应用于消息处理节点,可以由消息处理装置执行。其中,该消息处理装置可以为消息处理节点,也可以被配置在消息处理节点中,以通过执行该方法,降低机器成本消耗,提高机器配置资源的利用率,且实现快速处理消息,保证消息的时效性。本技术实施例以消息处理装置为消息处理节点为例进行说明。
46.其中,消息处理节点,可以为消息处理方中的任意一个消息处理节点。第一消息主题,为该消息处理节点所处理的消息所属的消息主题,第一消息主题可以为服务器集群中分布的任意一个消息主题。
47.比如,第一消息主题可以为图1所示的消息主题a,相应的,消息处理节点可以为图1所示的消息处理节点a、消息处理节点b或消息处理节点c。或者,第一消息主题可以为图1所示的消息主题b,相应的,消息处理节点可以为图1所示的消息处理节点d。对于每个消息处理节点,均可以按照上述消息处理方法对第一消息主题中的消息进行处理。
48.处理状态信息,可以包括第一消息主题中消息的消息积压量、消息处理速率等任意能够体现第一消息主题中的消息的处理状态的消息。其中,消息积压量,表示第一消息主题中未被处理的消息的总数量。消息处理速率,表示第一消息主题中的消息被处理的速度。
49.步骤202,在确定处理状态信息满足第一预设条件的情况下,将第一消息主题中的消息转发至多个第二消息主题。
50.步骤203,并行对多个第二消息主题中的消息进行处理。
51.本技术实施例中,可以设置消息处理节点对第一消息主题中的消息进行处理时的处理方式,包括单主题处理模式和多主题处理模式。其中,单主题处理模式,即消息处理节点直接对第一消息主题中的消息进行处理;多主题处理模式,即消息处理节点将第一消息主题中的消息转发至多个第二消息主题后,并行对多个第二消息主题中的消息进行处理。
52.其中,第一预设条件,即为从单主题处理模式切换至多主题处理模式时,处理状态信息所需满足的条件。第一预设条件可以根据需要设置。比如,可以设置第一预设条件为,消息积压量大于第一预设阈值。或者,可以设置第一预设条件为,消息处理速率低于第三预设阈值。其中,第一预设阈值、第三预设阈值可以根据需要任意设置,本技术对此不作限制。
53.第二消息主题的数量,可以根据需要确定。比如,可以根据消息处理方中包括的消息处理节点的数量、消息处理节点的机器配置资源情况和/或第一消息主题中消息的增加速度确定。比如,在消息处理方中包括的消息处理节点的数量较少,且消息处理节点的机器配置资源较低时,为了避免每个消息处理节点并行处理的消息的数量过多而导致机器配置资源无法承载,可以设置第二消息主题的数量较少;在消息处理方中包括的消息处理节点的数量较多,且消息处理节点的机器配置资源较高时,为了充分利用消息处理节点的机器配置资源,可以设置第二消息主题的数量较多;在消息处理方中包括的消息处理节点的数
量较少,且第一消息主题中消息的增加速度较快时,为了避免每个消息处理节点并行处理的消息的数量过多而导致机器配置资源无法承载,可以设置第二消息主题的数量较少等。
54.在示例实施例中,消息处理节点可以以单主题处理模式作为常规处理模式,对第一消息主题中消息进行处理,并实时或以预设频率,监测其所处理的第一消息主题中消息的处理状态信息。在消息处理节点确定处理状态信息满足第一预设条件的情况下,可以将第一消息主题中的消息转发至多个第二消息主题,进而采用多主题处理模式对第一消息主题中的消息进行处理,即并行对多个第二消息主题中的消息进行相应的业务逻辑处理。
55.举例来说,参考图3,假设第二消息主题的数量为3,包括消息主题1、消息主题2和消息主题3。消息处理节点a、消息处理节点b和消息处理节点c均可以以单主题处理模式作为常规处理模式,对第一消息主题即消息主题a中消息进行处理,并实时或以预设频率,监测其所处理的消息主题a中消息的处理状态信息。在消息处理节点a、消息处理节点b和消息处理节点c确定消息主题a中消息的处理状态信息满足第一预设条件的情况下,可以将消息主题a中的消息转发至3个第二消息主题,即图3中的消息主题1、消息主题2和消息主题3,进而并行对3个第二消息主题中的消息进行处理。由此,在单主题处理模式下,每个消息处理节点同一时间可以对第一消息主题中的1条消息进行处理,而在消息的处理状态信息满足第一预设条件的情况下,每个消息处理节点同一时间可以并行对3个第二消息主题中的消息即3条消息进行处理,从而在第一消息主题中消息的处理状态信息满足第一预设条件,比如消息积压量大于第一预设阈值时,在消息处理方中消息处理节点数量固定的情况下,可以高效利用各消息处理节点的机器配置资源,机器成本消耗低,机器配置资源的利用率高,且由于每个消息处理节点可以并行对3个第二消息主题中的消息进行处理,从而能够实现快速处理消息,保证消息的时效性。
56.需要说明的是,本技术实施例中的附图是以每个消息主题只有一个分片且分布在服务器集群中的一个服务器为例进行示意,在实际应用中,可能存在每个消息主题有多个分片,或者分布在多个服务器上等情况,而无论每个消息主题中的消息分布在哪个位置,只要能够获取到消息主题中的消息,即可利用本技术实施例提供的消息处理方法对消息主题中的消息进行处理,因此本技术实施例提供的消息处理方法,对于上述任意情况均适用。
57.综上,本技术实施例提供的消息处理方法,应用于消息处理节点,通过获取消息处理节点所处理的第一消息主题中消息的处理状态信息,在确定处理状态信息满足第一预设条件的情况下,将第一消息主题中的消息转发至多个第二消息主题,并行对多个第二消息主题中的消息进行处理,可以在消息处理节点数量固定的情况下,高效利用机器配置资源,从而机器成本消耗低,机器配置资源的利用率高,且由于消息处理节点可以并行对多个第二消息主题中的消息进行处理,从而能够实现快速处理消息,保证消息的时效性。
58.下面结合图4,对本技术实施例中的消息处理方法进行进一步说明。
59.图4为本技术实施例三所提供的消息处理方法的流程示意图。如图4所示,消息处理方法可以包括以下步骤401-404。
60.步骤401,获取消息处理节点所处理的第一消息主题中消息的处理状态信息,处理状态信息包括消息积压量。
61.其中,消息积压量,表示第一消息主题中未被处理的消息的总数量。
62.步骤402,在确定消息积压量大于第一预设阈值的情况下,将第一消息主题中的消
息转发至多个第二消息主题。
63.其中,第一预设阈值,可以根据需要任意设置,本技术对此不作限制。
64.在本技术的实施例中,消息处理节点在确定消息积压量大于第一预设阈值的情况下,可以通过以下方式,将第一消息主题中的消息转发至多个第二消息主题:以预设时间间隔,从第一消息主题中获取预设数量的消息;将每次获取的预设数量的消息,随机转发至多个第二消息主题中的任意一个第二消息主题。
65.其中,预设时间间隔以及预设数量,可以根据需要任意设置,本技术对此不作限制。
66.本技术的实施例中,可以预先指定将第一消息主题中的消息转发至哪几个第二消息主题中,进而消息处理节点可以以预设时间间隔,从第一消息主题中获取预设数量的消息,并在每次对获取的预设数量的消息进行转发时,将获取的预设数量的消息随机转发至多个第二消息主题中的任意一个第二消息主题。
67.作为一种可能的实现方式,可以预先为各第二消息主题设置对应的序号,比如第二消息主题的数量为m时,可以设置各第二消息主题对应的序号为0至m-1,进而消息处理节点在将每次获取的预设数量的消息进行转发之前,可以生成小于m且为整数的随机数,进而将获取的预设数量的消息转发至对应的序号为生成的随机数的第二消息主题。
68.参考图5,假设第一消息主题对应的第二消息主题包括消息主题1、消息主题2、消息主题3,可以预先为各第二消息主题设置对应的序号,比如消息主题1对应的序号为0、消息主题2对应的序号为1、消息主题3对应的序号为2。消息处理节点a可以以预设时间间隔,从第一消息主题中获取预设数量的消息,并在每次将获取的预设数量的消息转发至消息主题1、消息主题2或消息主题3之前,生成小于3且为整数的随机数,进而在生成的随机数为0时,将获取的预设数量的消息转发至随机数0对应的消息主题1,在生成的随机数为1时,将获取的预设数量的消息转发至随机数1对应的消息主题2,在生成的随机数为2时,将获取的预设数量的消息转发至随机数2对应的消息主题3。
69.由于随机数天然的具有分布式的特性,从而通过消息处理节点以预设时间间隔,从第一消息主题中获取预设数量的消息,并利用生成的随机数将每次获取的预设数量的消息,随机转发至多个第二消息主题中的任意一个第二消息主题,使得消息处理节点无需通过复杂的算法来确定如何将获取的消息转发至多个第二消息主题,从而实现了消息的高效转发。
70.步骤403,通过各第二消息主题对应的拉取消息线程,并行从对应的第二消息主题中拉取消息。
71.步骤404,并行对从各第二消息主题中拉取的消息进行处理。
72.本技术的实施例中,可以预先注册消息处理节点与各第二消息主题对应的拉取消息线程,从而在消息处理节点将第一消息主题中的消息转发至多个第二消息主题后,可以通过各第二消息主题对应的拉取消息线程的循环执行,不断的并行的从对应的第二消息主题中拉取消息,进而并行的对从各第二消息主题中拉取的消息进行处理。由此,可以实现消息处理节点并行的从各第二消息主题中拉取消息并处理,从而能够实现快速处理消息,保证消息的时效性。
73.另外,在消息处理节点从各第二消息主题中成功拉取消息后,还可以向服务器集
群的各第二消息主题返回回执消息,比如ack(acknowledge character,确认字符),以使服务器集群的各第二消息主题确认消息处理节点已成功获取消息。
74.综上,本技术实施例提供的消息处理方法,通过消息处理节点获取消息处理节点所处理的第一消息主题中消息的处理状态信息,处理状态信息包括消息积压量,在确定消息积压量大于第一预设阈值的情况下,将第一消息主题中的消息转发至多个第二消息主题,通过各第二消息主题对应的拉取消息线程,并行从对应的第二消息主题中拉取消息,并行对从各第二消息主题中拉取的消息进行处理,可以在第一消息主题中的消息积压量较高时,在消息处理节点数量固定的情况下,高效利用机器配置资源,从而实现快速处理第一消息主题中积压的消息,保证消息的时效性,并且无需增加消息处理节点,机器成本消耗低,机器配置资源的利用率高。
75.通过上述分析可知,在第一消息主题中消息的处理状态信息满足第一预设条件的情况下,消息处理节点可以以多主题处理模式,对第一消息主题中的消息进行处理。在一种可能的实现形式中,还可以根据需要恢复至以单主题处理模式对第一消息主题中的消息进行处理。在下面结合图6,对本技术实施例提供的消息处理方法进行进一步说明。
76.图6为本技术实施例四所提供的消息处理方法的流程示意图。如图6所示,消息处理方法包括以下步骤601-604。
77.步骤601,获取消息处理节点所处理的第一消息主题中消息的处理状态信息。
78.其中,处理状态信息,可以包括消息积压量以及预设时间段内的消息转发量。其中,消息积压量,表示第一消息主题中未被处理的消息的总数量。预设时间段内的消息转发量,表示预设时间段内,第一消息主题中的消息被转发至第二消息主题的总数量。其中,预设时间段,可以根据需要设置,比如为1秒,2秒等,本技术对此不作限制。
79.步骤602,在确定处理状态信息满足第一预设条件的情况下,将第一消息主题中的消息转发至多个第二消息主题。
80.其中,第一预设条件,为从单主题处理模式切换至多主题处理模式时,处理状态信息所需满足的条件。
81.第一预设条件,可以根据需要设置,本技术对此不作限制。比如,第一预设条件可以设置为,消息积压量大于第一预设阈值;
82.步骤603,并行对多个第二消息主题中的消息进行处理。
83.其中,步骤601-603的具体实现过程及原理,可以参考上述实施例的描述,此处不再赘述。
84.步骤604,在确定处理状态信息满足第二预设条件的情况下,停止将第一消息主题中的消息转发至多个第二消息主题,并对第一消息主题中的消息进行处理。
85.其中,第二预设条件,为从多主题处理模式切换至单主题处理模式时,处理状态信息所需满足的条件。
86.第二预设条件,可以根据需要设置,本技术对此不作限制。比如,第二预设条件可以设置为,消息积压量不大于第一预设阈值,且预设时间段内的消息转发量小于第二预设阈值。其中,第二预设阈值,可以根据需要任意设置,本技术对此不作限制。
87.本技术实施例中,通过在确定处理状态信息满足第二预设条件的情况下,停止将第一消息主题中的消息转发至多个第二消息主题,并对第一消息主题中的消息进行处理,
可以实现在第一消息主题中消息的处理状态信息满足第二预设条件的情况下,每个消息处理节点同一时间仅对第一消息主题中的1条消息进行处理,从而减少消息处理节点的机器配置资源消耗,实现合理利用机器配置资源。
88.在第二预设条件设置为消息积压量不大于第一预设阈值,且预设时间段内的消息转发量小于第二预设阈值的情况下,相应的,步骤604可以包括:在确定消息积压量不大于第一预设阈值,且预设时间段内的消息转发量小于第二预设阈值的情况下,停止将第一消息主题中的消息转发至多个第二消息主题。
89.由于消息积压量不大于第一预设阈值,且预设时间段内的消息转发量小于第二预设阈值的情况下,第一消息主题中消息不存在积压风险,从而通过在这种情况下停止将第一消息主题中的消息转发至多个第二消息主题,并对第一消息主题中的消息进行处理,可以实现在第一消息主题中消息不存在积压风险的情况下,每个消息处理节点同一时间仅对第一消息主题中的1条消息进行处理,从而减少消息处理节点的机器配置资源消耗,实现合理利用机器配置资源。
90.下面参考图7,以第一预设条件为,消息积压量j大于第一预设阈值q1,第二预设条件为消息积压量j不大于第一预设阈值q1,且预设时间段内的消息转发量z小于第二预设阈值q2,多个第二消息主题包括消息主题1、消息主题2、消息主题3为例,对本技术实施例提供的消息处理方法进行进一步说明。其中,图7中的消息处理方包括至少一个对第一消息主题中的消息进行处理的消息处理节点,图7仅以消息处理方表示对第一消息主题中的消息进行处理的各消息处理节点。
91.参考图7,在正常情况下(第一消息主题a中的消息积压量j不大于第一预设阈值q1),第一消息主题a中的消息能够被消息处理方快速高效处理,也能允许第一消息主题a中的消息瞬间增多,此时消息处理方的处理第一消息主题a中消息的各消息处理节点可以以单主题处理模式作为常规处理模式,对第一消息主题a中消息进行处理,并实时或以预设频率,监测其所处理的第一消息主题a中消息的处理状态信息。在各消息处理节点以单主题处理模式作为常规处理模式,对第一消息主题a中消息进行处理时,每个消息处理节点同一时间可以对第一消息主题a中的1条消息进行处理。
92.在消息生成方生成消息的速度持续增加时,由于消息处理的速度不能匹配消息产生的速度,导致消息持续积压,在消息处理方的处理第一消息主题a中消息的各消息处理节点,确定第一消息主题a中的消息积压量j大于第一预设阈值q1的情况下,可以开启多主题处理模式,先进行消息转发,即将第一消息主题a中的消息随机转发至消息主题1、消息主题2、消息主题3,进而各消息处理节点对第一消息主题a中消息的处理方式转变为多主题处理模式,即并行对消息主题1、消息主题2、消息主题3中的消息进行相应的业务逻辑处理。在各消息处理节点以多主题处理模式进行消息处理时,每个消息处理节点同一时间可以并行对3个第二消息主题中的消息即3条消息进行处理,从而在消息处理节点的机器配置资源允许情况下,可以快速高效的进行消息处理。
93.在消息处理方的处理第一消息主题a中消息的各消息处理节点,确定第一消息主题a中的消息积压量j不大于第一预设阈值q1,且预设时间段内的消息转发量z小于第二预设阈值q2的情况下,可以切换至单主题处理模式,对第一消息主题a中消息进行处理,从而减少正常情况下,消息处理节点的机器配置资源消耗,实现合理利用机器配置资源。
94.综上,本技术实施例提供的消息处理方法,通过消息处理节点获取消息处理节点所处理的第一消息主题中消息的处理状态信息,在确定处理状态信息满足第一预设条件的情况下,将第一消息主题中的消息转发至多个第二消息主题,并行对多个第二消息主题中的消息进行处理,在确定处理状态信息满足第二预设条件的情况下,停止将第一消息主题中的消息转发至多个第二消息主题,并对第一消息主题中的消息进行处理,可以实现在消息处理节点数量固定的情况下,根据第一消息主题中消息的处理状态信息,动态调整消息处理节点对第一消息主题中消息的处理模式,实现快速处理消息,保证消息的时效性,最大限度的使用机器配置资源,提高机器配置资源的利用率,且实现方式简单,便于实现。
95.图8为本技术实施例五所提供的消息处理装置的结构示意图。
96.如图8所示,该消息处理装置800可以包括:获取模块810、转发模块820和第一处理模块830。
97.其中,获取模块810,用于获取消息处理节点所处理的第一消息主题中消息的处理状态信息;
98.转发模块820,用于在确定处理状态信息满足第一预设条件的情况下,将第一消息主题中的消息转发至多个第二消息主题;
99.第一处理模块830,用于并行对多个第二消息主题中的消息进行处理。
100.需要说明的是,本技术实施例提供的消息处理装置,可以执行前述实施例的消息处理方法,该消息处理装置可以为消息处理节点,也可以被配置在消息处理节点中,以通过执行上述方法,降低机器成本消耗,提高机器配置资源的利用率,且实现快速处理消息,保证消息的时效性。
101.需要说明的是,前述消息处理方法实施例中的解释说明也适用于该实施例的消息处理装置,此处不再赘述。
102.本技术实施例的消息处理装置,通过获取消息处理节点所处理的第一消息主题中消息的处理状态信息,在确定处理状态信息满足第一预设条件的情况下,将第一消息主题中的消息转发至多个第二消息主题,并行对多个第二消息主题中的消息进行处理,可以在消息处理节点数量固定的情况下,高效利用机器配置资源,从而机器成本消耗低,机器配置资源的利用率高,且由于消息处理节点可以并行对多个第二消息主题中的消息进行处理,从而能够实现快速处理消息,保证消息的时效性。
103.图9为本技术实施例六所提供的消息处理装置的结构示意图。
104.如图9所示,该消息处理装置900可以包括:获取模块910、转发模块920和第一处理模块930。其中,图9中获取模块910、转发模块920和第一处理模块930,与图8中获取模块810、转发模块820和第一处理模块830具有相同功能和结构。
105.需要说明的是,本技术实施例提供的消息处理装置900,可以执行前述实施例的消息处理方法,该消息处理装置可以为消息处理节点,也可以被配置在消息处理节点中,以通过执行上述方法,降低机器成本消耗,提高机器配置资源的利用率,且实现快速处理消息,保证消息的时效性。
106.在本技术实施例的一种可能的实现方式中,处理状态信息,包括消息积压量;
107.转发模块920,包括:
108.转发单元,用于在确定消息积压量大于第一预设阈值的情况下,将第一消息主题
中的消息转发至多个第二消息主题。
109.在本技术实施例的另一种可能的实现方式中,转发单元,包括:
110.获取子单元,用于以预设时间间隔,从第一消息主题中获取预设数量的消息;
111.转发子单元,用于将每次获取的预设数量的消息,随机转发至多个第二消息主题中的任意一个第二消息主题。
112.在本技术实施例的另一种可能的实现方式中,第一处理模块930,包括:
113.拉取单元,用于通过各第二消息主题对应的拉取消息线程,并行从对应的第二消息主题中拉取消息;
114.第一处理单元,用于并行对从各第二消息主题中拉取的消息进行处理。
115.在本技术实施例的另一种可能的实现方式中,消息处理装置900还包括:
116.第二处理模块940,用于在确定处理状态信息满足第二预设条件的情况下,控制转发模块停止将第一消息主题中的消息转发至多个第二消息主题,并对第一消息主题中的消息进行处理。
117.在本技术实施例的另一种可能的实现方式中,处理状态信息,包括消息积压量以及预设时间段内的消息转发量;
118.第二处理模块940,包括:
119.第二处理单元,用于在确定消息积压量不大于第一预设阈值,且预设时间段内的消息转发量小于第二预设阈值的情况下,控制转发模块停止将第一消息主题中的消息转发至多个第二消息主题。
120.本技术实施例的消息处理装置,通过获取消息处理节点所处理的第一消息主题中消息的处理状态信息,在确定处理状态信息满足第一预设条件的情况下,将第一消息主题中的消息转发至多个第二消息主题,并行对多个第二消息主题中的消息进行处理,可以在消息处理节点数量固定的情况下,高效利用机器配置资源,从而机器成本消耗低,机器配置资源的利用率高,且由于消息处理节点可以并行对多个第二消息主题中的消息进行处理,从而能够实现快速处理消息,保证消息的时效性。
121.为了实现上述实施例,本技术还提出一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如本技术前述任一实施例提出的消息处理方法。
122.其中,电子设备可以为个人电脑(personal computer,简称pc)、云端设备、移动设备、服务器等,移动设备例如可以为手机、平板电脑、个人数字助理、穿戴式设备、车载设备等任意硬件设备,本技术对此不作限制。
123.为了实现上述实施例,本技术还提出一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行如本技术前述任一实施例提出的消息处理方法。
124.为了实现上述实施例,本技术还提出一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现如本技术前述任一实施例提出的消息处理方法。
125.图10示出了可以用来实施本公开的实施例的示例电子设备1000的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数
字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
126.如图10所示,该电子设备1000可以包括计算单元1001,其可以根据存储在只读存储器(rom)1002中的计算机程序或者从存储单元1008加载到随机访问存储器(ram)1003中的计算机程序,来执行各种适当的动作和处理。在ram 1003中,还可存储设备1000操作所需的各种程序和数据。计算单元1001、rom 1002以及ram 1003通过总线1004彼此相连。输入/输出(i/o)接口1005也连接至总线1004。
127.设备1000中的多个部件连接至i/o接口1005,包括:输入单元1006,例如键盘、鼠标等;输出单元1007,例如各种类型的显示器、扬声器等;存储单元1008,例如磁盘、光盘等;以及通信单元1009,例如网卡、调制解调器、无线通信收发机等。通信单元1009允许设备1000通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
128.计算单元1001可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元1001的一些示例包括但不限于中央处理单元(cpu)、图形处理单元(gpu)、各种专用的人工智能(ai)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(dsp)、以及任何适当的处理器、控制器、微控制器等。计算单元1001执行上文所描述的各个方法和处理,例如消息处理方法。例如,在一些实施例中,消息处理方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元1008。在一些实施例中,计算机程序的部分或者全部可以经由rom1002和/或通信单元1009而被载入和/或安装到设备1000上。当计算机程序加载到ram 1003并由计算单元1001执行时,可以执行上文描述的消息处理方法的一个或多个步骤。备选地,在其他实施例中,计算单元1001可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行消息处理方法。
129.本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、芯片上系统的系统(soc)、复杂可编程逻辑设备(cpld)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
130.用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
131.在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电
子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd-rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
132.为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,crt(阴极射线管)或者lcd(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
133.可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(lan)、广域网(wan)、互联网和区块链网络。
134.计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与vps服务("virtual private server",或简称"vps")中,存在的管理难度大,业务扩展性弱的缺陷。服务器可以是云服务器,也可以为分布式系统的服务器,或者是结合了区块链的服务器。
135.应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
136.上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1