一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

消息处理系统及方法与流程

2022-10-26 07:03:30 来源:中国专利 TAG:


1.本说明书涉及计算机技术领域,特别涉及消息处理系统及方法。


背景技术:

2.kafka作为一种高吞吐量的分布式发布订阅消息系统,可以实现在处理消费者在网站中的所有动作流数据。这种动作流数据是网络上许多社交功能的关键因素,这部分数据通常是由于吞吐量的要求而需要通过处理日志和日志聚合的方式来解决。而kafka通过对磁盘的顺序读写、零拷贝,dma直接内存访问等方式加持了kafka的吞吐能力,实现kafka在此场景下具有较好的表现。但是,在kafka集群中,topic作为划分消息类别的基础,其一旦增多,会导致分区也会增多,随之而来的是顺序读写变为随机读写,同时topic过多也会导致吞吐量下降,因此亟需一种有效的方案以解决上述问题。


技术实现要素:

3.有鉴于此,本说明书实施例提供了一种消息处理系统。本说明书同时涉及一种消息处理方法,另一种消息处理系统,另一种消息处理方法,一种计算设备,以及一种计算机可读存储介质,以解决现有技术中存在的技术缺陷。
4.根据本说明书实施例的第一方面,提供了一种消息处理系统,包括生产者客户端和消费者客户端;
5.生产者客户端,用于采集目标业务主题对应的待处理消息,并按照已生效的配置信息对所述待处理消息进行处理,获得目标消息,将所述目标消息发送至kafka集群进行存储;其中,所述配置信息用于记录至少两个业务主题与消息存储路径的映射关系;
6.消费者客户端,用于在接收到关联所述目标业务主题的消息处理请求的情况下,按照所述配置信息订阅所述kafka集群中的目标分区,响应于所述消息处理请求在所述目标分区中拉取所述目标消息。
7.可选地,所述生产者客户端根据所述配置信息确定所述目标业务主题对应的消息模板,在所述消息模板的消息头中添加所述待处理消息,根据添加结果生成所述目标消息。
8.可选地,所述生产者客户端对所述目标消息进行解析,获得添加所述待处理消息的消息头中的目标消息存储路径,按照所述目标消息存储路径将所述目标消息发送至所述kafka集群;其中,所述kafka集群按照所述目标消息存储路径将所述目标消息存储至所述目标分区。
9.可选地,所述消费者客户端接收所述消息处理请求,对所述消息处理请求进行解析,根据解析结果确定所述目标业务主题,在所述配置信息中确定所述目标业务主题对应的分区信息,并按照所述分区信息订阅所述kafka集群中的所述目标分区。
10.可选地,所述消费者客户端响应于所述消息处理请求向所述kafka集群发送消息消费请求,接收所述kafka集群针对所述消息消费请求反馈的分区消息,并在所述分区消息中确定所述目标消息;其中,所述分区消息为所述目标分区中存储的全局消息。
11.可选地,还包括消息管理端;所述消息管理端确定所述kafka集群关联的类别信息,按照所述类别信息建立至少两个业务主题与消息存储路径的映射关系,根据所述映射关系创建配置信息,并将所述配置信息发送至所述生产者客户端和所述消费者客户端。
12.可选地,所述消息管理端接收消息录制请求,根据所述消息录制请求确定消息消费链路以及录制时间区间,在所述录制时间区间对所述消息消费链路进行录制,根据录制结果生成待回溯消息记录并存储;在接收到关联所述录制时间区间的回溯请求的情况下,响应于所述回溯请求执行所述待回溯消息记录。
13.可选地,所述生产者客户端接收所述配置信息,在所述配置信息生效的情况下,根据所述配置信息确定至少两个业务主题与消息存储路径的映射关系,创建所述映射关系对应的消息链接,并将所述消息链接作为所述目标业务主题对应的消息模板。
14.根据本说明书实施例的第二方面,提供了一种消息处理方法,包括:
15.生产者客户端采集目标业务主题对应的待处理消息,并按照已生效的配置信息对所述待处理消息进行处理,获得目标消息,将所述目标消息发送至kafka集群进行存储;其中,所述配置信息用于记录至少两个业务主题与消息存储路径的映射关系;
16.消费者客户端在接收到关联所述目标业务主题的消息处理请求的情况下,按照所述配置信息订阅所述kafka集群中的目标分区,响应于所述消息处理请求在所述目标分区中拉取所述目标消息。
17.根据本说明书实施例的第三方面,提供了另一种消息处理系统,包括:
18.消息管理端、生产者客户端和消费者客户端;
19.消息管理端,用于建立至少两个业务主题与消息存储路径的映射关系,根据所述映射关系创建配置信息,并发送至所述生产者客户端和所述消费者客户端;
20.所述产者客户端,用于在所述配置信息生效的情况下,采集目标业务主题对应的待处理消息,并按照已生效的所述配置信息对所述待处理消息进行处理,获得目标消息,将所述目标消息发送至kafka集群进行存储;
21.所述消费者客户端,用于在接收到关联所述目标业务主题的消息处理请求的情况下,按照所述配置信息订阅所述kafka集群中的目标分区,响应于所述消息处理请求在所述目标分区中拉取所述目标消息。
22.根据本说明书实施例的第四方面,提供了另一种消息处理方法,包括:
23.消息管理端建立至少两个业务主题与消息存储路径的映射关系,根据所述映射关系创建配置信息,并发送至生产者客户端和消费者客户端;
24.产者客户端在所述配置信息生效的情况下,采集目标业务主题对应的待处理消息,并按照已生效的所述配置信息对所述待处理消息进行处理,获得目标消息,将所述目标消息发送至kafka集群进行存储;
25.消费者客户端在接收到关联所述目标业务主题的消息处理请求的情况下,按照所述配置信息订阅所述kafka集群中的目标分区,响应于所述消息处理请求在所述目标分区中拉取所述目标消息。
26.根据本说明书实施例的第五方面,提供了一种计算设备,包括:
27.存储器和处理器;
28.所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行
指令时实现所述消息处理方法的步骤。
29.根据本说明书实施例的第六方面,提供了一种计算机可读存储介质,其存储有计算机可执行指令,该指令被处理器执行时实现所述消息处理方法的步骤。
30.本说明书提供的消息处理系统,在生产者客户端产生关联目标业务主题的待处理消息后,为了能够保证kafka集群在处理消息时不会出现吞吐量下降的问题,同时能够充分利用kafka集群的有限资源,可以按照已生效的配置信息对待处理消息进行处理,以得到目标消息,之后将目标消息发送到kafka集群,其中,配置信息记录至少两个业务主题与消息存储路径的映射关系。在此基础上,当消费者客户端进行消息消费时,可以按照配置信息确定kafka集群中的目标分区,实现响应于消息处理请求可以从目标分区中拉取目标消息进行消费。实现通过配置信息建立至少两个业务主题与消息存储路径的映射关系,以此为基础进行消息的存储和消费,可以有效的控制kafka集群的topic数量和分区数量,有效的保证了kafka集群的吞吐能力。
附图说明
31.图1是本说明书一实施例提供的一种消息处理系统的结构示意图;
32.图2是本说明书一实施例提供的一种消息消费处理的流程示意图;
33.图3是本说明书一实施例提供的一种消息处理系统的示意图;
34.图4是本说明书一实施例提供的一种消息处理方法的流程图;
35.图5是本说明书一实施例提供的另一种消息处理系统的结构示意图;
36.图6是本说明书一实施例提供的另一种消息处理方法的流程图;
37.图7是本说明书一实施例提供的一种消息处理系统的处理流程图;
38.图8是本说明书一实施例提供的一种计算设备的结构框图。
具体实施方式
39.在下面的描述中阐述了很多具体细节以便于充分理解本说明书。但是本说明书能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本说明书内涵的情况下做类似推广,因此本说明书不受下面公开的具体实施的限制。
40.在本说明书一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本说明书一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
41.应当理解,尽管在本说明书一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。取决于语境,如在此所使用的词语“如果”可以被解释成为“在
……
时”或“当
……
时”或“响应于确定”。
42.首先,对本说明书一个或多个实施例涉及的名词术语进行解释。
43.kafka:是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者在网站中
的所有动作流数据。这种动作(网页浏览,搜索和其他用户的行动)是在现代网络上的许多社会功能的一个关键因素。这些数据通常是由于吞吐量的要求而需要通过处理日志和日志聚合来解决。
44.topic:每条发布到kafka集群的消息都有一个类别,这个类别被称为topic。
45.partition:在kafka中表示分区,kafka中每个topic可以划分多个分区(每个topic至少有一个分区),同一个topic下的不同分区包含的消息是不同的。
46.dma(direct memory access,直接存储器访问):dma是主板上的一块独立芯片,在进行内存和io设备的数据传输时,不再通过cpu来控制数据传输,而直接通过dma控制器实现。
47.在本说明书中,提供了一种消息处理系统,本说明书同时涉及一种消息处理方法,另一种消息处理系统,另一种消息处理方法,一种计算设备,以及一种计算机可读存储介质,在下面的实施例中逐一进行详细说明。
48.参见图2所示,现有技术中,当生产者a或b发布消息后,如果消息属于同一类别,会将消息发送到同一topic中,之后再将消息分别写入该topic中的分区1、分区2或者分区3中,消息写入完成后;当消费者需要进行消息消费时,将订阅对应所需消息的分区,之后从分区中拉取消息进行消费。kafka虽然具有较高的吞吐能力,但是,一旦topic增多,分区数量也会随之增多,随之而来的是顺序读写变为随机读写,kafka使用的pagecache过大时,会大量触发磁盘i/o,此时会超过负载,占用各个应用自身的cpu时间,会对主流程产生影响,使得主流程变慢,因此实际应用中的kafka会大量的使用在日志中心、大数据计算等,对topic需求量较少且逻辑相对简单的场景下。如果能够解决kafka吞吐量下降的问题,其即可应用于复杂场景,因此需要解决分区数量过多的问题,则需要管控topic。
49.有鉴于此,本说明书提供的消息处理系统,在生产者客户端产生关联目标业务主题的待处理消息后,为了能够保证kafka集群在处理消息时不会出现吞吐量下降的问题,同时能够充分利用kafka集群的有限资源,可以按照已生效的配置信息对待处理消息进行处理,以得到目标消息,之后将目标消息发送到kafka集群,其中,配置信息记录至少两个业务主题与消息存储路径的映射关系。在此基础上,当消费者客户端进行消息消费时,可以按照配置信息确定kafka集群中的目标分区,实现响应于消息处理请求可以从目标分区中拉取目标消息进行消费。实现通过配置信息建立至少两个业务主题与消息存储路径的映射关系,以此为基础进行消息的存储和消费,可以有效的控制kafka集群的topic数量和分区数量,有效的保证了kafka集群的吞吐能力。
50.图1示出了根据本说明书一实施例提供的一种消息处理系统的结构示意图,消息处理系统100包括生产者客户端110和消费者客户端120,以及kafka集群130;
51.生产者客户端110,用于采集目标业务主题对应的待处理消息,并按照已生效的配置信息对所述待处理消息进行处理,获得目标消息,将所述目标消息发送至kafka集群130进行存储;其中,所述配置信息用于记录至少两个业务主题与消息存储路径的映射关系;
52.消费者客户端120,用于在接收到关联所述目标业务主题的消息处理请求的情况下,按照所述配置信息订阅所述kafka集群130中的目标分区,响应于所述消息处理请求在所述目标分区中拉取所述目标消息。
53.由于kafka具有更好的吞吐量、内置分区、冗余及容错性的优点,因此其可以应用
于不同的消息处理场景;如行为跟踪场景,kafka可以用于跟踪用户浏览页面、搜索及其他行为,通过发布-订阅模式实时记录到对应的topic中,通过后端大数据平台接入处理分析,即可实现实时监控。或者如日志收集场景,通过kafka可以实现日志聚合,实现从服务器上收集日志文件,然后再通过一个集中的平台进行处理。
54.本实施例以kafka应用于行为跟踪场景为例对所述消息处理系统进行说明,其他场景下的消息处理过程均可参见本实施例相同或相应的描述内容,本实施例在此不作过多赘述。
55.具体的,生产者客户端具体是指消息生产者对应的客户端,即向kafka集群发送消息的客户端;相应的,消费者客户端具体是指消息消费者对应的客户端,即向kafka集群取消息的客户端。
56.进一步的,目标业务主题具体是指待处理消息所属类别的主题,包括但不限于行情信息主题、权益类日志主题、组合消息变更主题、用户信息变更主题等,即携带有业务定义的主题。通过目标业务主题可以明确待处理消息在被处理完成后,需要写入kafka集群中的哪个topic中。相应的,待处理消息具体是指生产者客户端所发布的消息;相应的,目标消息具体是指按照配置信息处理后的消息,最后写入kafka集群的消息即为目标消息。其中,配置信息具体是指针对业务主题和消息存储路径进行规范的信息,由于生产者客户端发布的消息一定会属于一个业务主题,因此通过配置信息即可规范该消息的存储路径,用于明确该消息所需要写入的分区,实现在消息发布后,可以按照配置信息对该消息进行处理,用于得到记载路由信息的目标消息,并将其发送到kafka集群进行存储即可。
57.也就是说,配置消息能够将待处理消息处理为目标消息,并在目标消息中明确目标业务主题关联消息的消息存储路径,以实现通过配置信息可以针对不同业务主题的消息明确的指向topic,用于利用有效的topic对各业务主题关联的消息进行存储和消费。
58.相应的,消息处理请求具体是指消费者客户端需要进行消息消费处理的请求,该请求由kafka集群进行发送;相应的,目标分区具体是指kafka集群中关联目标业务主题的topic中的分区,用于存储生产者客户端写入kafka集群的目标消息。
59.基于此,当生产者客户端和消费者客户端均生效配置信息后,在采集到关联目标业务主题的待处理消息时,可以根据已经生效的配置信息对待处理消息进行处理,用于在待处理消息中写入具有存储指向性的相关信息,以得到目标消息。之后再将目标消息发送到kafka集群进行存储即可。由于配置信息中记录有至少两个业务主题与消息存储路径的映射关系,因此在kafka集群接收到目标消息后,可以按照目标消息中携带的具有存储指向性的相关信息,完成对目标消息到指定topic中目标分区的写入。
60.进一步的,在消费者客户端接收到关联目标业务主题的消息处理请求的情况下,即可按照已经生效的配置信息确定目标业务主题关联的topic下的目标分区,之后消费者客户端即可订阅kafka集群中的目标分区,实现后续可以响应于消息处理请求在目标分区中拉取目标消息进行消费。
61.需要说明的是,由于生产者客户端和消费者客户端均以生效配置信息,因此通过配置信息可以明确任意业务主题对应的消息存储路径,同时为了提高利用有效的topic完成对多种不同类型的业务主题关联的消息进行存储,可以建立至少两个业务主题与一个topic之间的映射关系,以达到可以将多种类型的业务主题写入同一topic中,同时由于写
入前会将待处理消息处理为目标消息,因此可以通过目标消息中携带的相关信息区分所属不同业务主题消息之间的区别,更加方便消费者客户端可以在同一topic中,准确的拉取到需要的目标消息进行消费。
62.举例说明,配置信息中记录业务a对应topica_1:sub1,业务b对应topica_2:sub1,其中业务a与业务b类别不同;当生产者客户端发布关联业务a的待处理消息后,可以按照配置信息对待处理消息进行处理,实现按照配置信息填充待处理消息的消息头topica_1:sub1,并在填充完成后,将得到的目标消息发送到kafka集群,由于目标消息的消息头中记录关联配置信息的信息,因此可以根据topica_1确定目标消息对应topica主题中的第一分区,因此可以向topica主题的第一分区发送目标消息并存储。进一步的,当消费者客户端需要消费该消息时,则根据配置信息确定消息存储在topica主题的第一分区,则可以订阅kafka集群中topica主题的第一分区,并从第一分区中拉取消息,过滤出目标消息后进行使用。
63.综上所述,在生产者客户端产生关联目标业务主题的待处理消息后,为了能够保证kafka集群在处理消息时不会出现吞吐量下降的问题,同时能够充分利用kafka集群的有限资源,可以按照已生效的配置信息对待处理消息进行处理,以得到目标消息,之后将目标消息发送到kafka集群,其中,配置信息记录至少两个业务主题与消息存储路径的映射关系。在此基础上,当消费者客户端进行消息消费时,可以按照配置信息确定kafka集群中的目标分区,实现响应于消息处理请求可以从目标分区中拉取目标消息进行消费。实现通过配置信息建立至少两个业务主题与消息存储路径的映射关系,以此为基础进行消息的存储和消费,可以有效的控制kafka集群的topic数量和分区数量,有效的保证了kafka集群的吞吐能力。
64.进一步的,由于配置信息明确了不同业务主题与topic之间的映射关系,而不同业务主题所对应的消息发布后,将根据该映射关系完成在kafka集群的存储,因此为了能够使得kafka集群可以明确不同业务主题的消息应该写入哪个topic中,可以根据配置信息创建业务主题与topic之间映射关系的消息模板,实现在得到关联目标业务主题的消息后,可以通过相应的消息模板完成目标消息的创建,本实施例中,所述生产者客户端,还用于根据所述配置信息确定所述目标业务主题对应的消息模板,在所述消息模板的消息头中添加所述待处理消息,根据添加结果生成所述目标消息。
65.具体的,消息模板具体是指根据已经生效的配置信息指定不同业务主题与不同topic之间映射关系的模板,在得到关联目标业务主题的待处理消息后,可以先确定目标业务主题对应的消息模板,之后在消息模板中添加待处理消息,即可得到记载有消息路由信息的目标消息,以方便后续kafka集群进行消息的存储,以及消费者客户端进行消息的拉取。
66.基于此,在生产者客户端需要发布关联目标业务主题的待处理消息时,可以先根据配置信息确定目标业务主题对应的消息模板,之后在消息模板的消息头中添加待处理消息,即可根据添加结果得到目标消息,以用于后续可以根据消息头中记录的信息进行消息的存储和拉取。
67.具体实施时,消息模板可以采用消息链接的方式存在,用于在消息存储阶段,可以在链接中写入相应的信息,本实施例中,所述生产者客户端,还用于接收所述配置信息,在
所述配置信息生效的情况下,根据所述配置信息确定至少两个业务主题与消息存储路径的映射关系,创建所述映射关系对应的消息链接,并将所述消息链接作为所述目标业务主题对应的消息模板。
68.其中,消息链接具体是指根据映射关系创建的链接,用于作为消息模板可以方便进行消息的插入和路由信息的记录。
69.综上,通过结合配置信息确定关联目标业务主题的消息模板,并以此为基础进行目标消息的确定,可以保证目标消息的消息头中记录关联消息的路由信息,以使得kafka集群可以明确存储位置,且在消费者客户端进行消费消息时,也可以根据消息头中的信息过滤出需要的消息。
70.更进一步的,在生产者客户端完成目标消息的确定后,还需要向kafka集群进行消息的发送,为了能够辅助kafka集群明确目标消息的存储位置,可以解析出目标消息,以得到目标消息存储路径,并按照路径进行消息的发送和存储,本实施例中,所述生产者客户端,还用于对所述目标消息进行解析,获得添加所述待处理消息的消息头中的目标消息存储路径,按照所述目标消息存储路径将所述目标消息发送至所述kafka集群;其中,所述kafka集群按照所述目标消息存储路径将所述目标消息存储至所述目标分区。
71.具体的,目标消息存储路径具体是指关联目标消息的逻辑主题,用于指定目标消息的存储分区。基于此,当在消息头中填充信息得到目标消息后,可以对目标消息进行解析,获得添加待处理消息的消息头中的目标消息存储路径,之后按照目标消息存储路径将目标消息发送到kafka集群,此时,kafka集群即可按照目标消息存储路径明确目标分区,并在目标分区中顺序写入目标消息。
72.沿用上例,生产者客户端发布关联业务a的待处理消息后,生产者客户端通过填充消息头topica_1:sub1得到目标消息,其中,消息头中填充了待处理消息的路由信息。当需要进行消息存储时,可以解析出消息头的第一级作为发送逻辑主题,即解析结果为topica_1,确定关联业务a的消息需要写入kafka集群中topica主题的第一分区,此时生产者客户端即可按照topica_1将目标消息发送到kafka集群,以在topica主题的第一分区写入目标消息。
73.综上,通过按照目标消息存储路径明确topic以及分区,可以实现kafka集群快速且准确的向目标分区写入目标消息,同时由于消息指定了分区,可以保证消息的顺序存储。
74.在此基础上,当消费者客户端进行消息消费处理时,由于配置信息中记录的是主题与topic之间的映射关系,因此为了能够准确的拉取关联目标业务主题的目标消息,需要先确定消息所属的分区,本实施例中,所述消费者客户端,还用于接收所述消息处理请求,对所述消息处理请求进行解析,根据解析结果确定所述目标业务主题,在所述配置信息中确定所述目标业务主题对应的分区信息,并按照所述分区信息订阅所述kafka集群中的所述目标分区。
75.具体的,分区信息具体是指配置信息中记录的,关联目标业务主题相关的消息写入目标分区的信息,用于明确需要拉取消息所属的分区。基于此,当消费者客户端接收到消息处理请求后,为了能够准确的拉取消息进行使用,可以先对消息处理请求进行解析,以根据解析结果确定目标业务主题,即明确需要消费的消息所属的类别,之后在配置信息中确定目标业务主题对应的分区信息,最后即可按照分区信息订阅kafka集群中的目标分区,即
关联目标业务主题的topic中的目标分区。
76.综上,为了能够保证消费者客户端可以准确的拉取消息,可以通过消息处理请求先确定目标业务主题,之后配合配置信息确定分区信息,此时可以按照分区信息订阅关联目标业务主题的分区,方便后续进行目标消息的拉取。
77.进一步的,在拉取目标消息的过程中,考虑到同一分区内不仅存在目标业务主题的相关消息,还存在其他业务主题的相关消息,因此在拉取目标消息时,需要从分区消息中确定目标消息,本实施例中,所述消费者客户端,还用于响应于所述消息处理请求向所述kafka集群发送消息消费请求,接收所述kafka集群针对所述消息消费请求反馈的分区消息,并在所述分区消息中确定所述目标消息;其中,所述分区消息为所述目标分区中存储的全局消息。
78.具体的,分区消息具体是指目标分区中存储的全部消息;基于此,在消费者客户端拉取消息的过程中,可以先响应于消息处理请求向kafka集群发送消息消费请求,此时kafka集群可以明确消费者客户端需要拉取目标业务主题的消息,因此可以先确定关联目标业务主题的topic,之后在topic中确定存储目标业务主题的目标分区,此后向消费者客户端反馈分区消息。消费者客户端最后即可根据kafka集群反馈的分区消息过滤出目标消息进行使用。
79.沿用上例,当确定消费者客户端需要使用业务a的消息时,可以向kafka集群发送消息消费请求,根据topica_1确定业务a的相关消息存储在topica的第一分区中。而由于第一分区中存储有大量的消息,因此可以按照消息头中的sub1过滤出关联业务a的目标消息。此过程中,消费者客户端会确定从topica的第一分区拉取的消息,再判断消息头信息是否与业务a映射的消息头sub1匹配,若不匹配则丢弃,直至拉取到与sub1匹配的目标消息进行使用即可。
80.综上,通过按照消息头匹配的方式确定目标消息,可以保证消费者客户端准确的拉取到目标消息进行使用。
81.此外,由于配置信息是规范业务主题与topic之间映射关系的基础,为了能够有效控制kafka集群中的topic和分区数量,可以由消息管理端设置配置信息,用于管控topic和分区数量的增长,实现利用有效的topic和分区数量,映射多个业务主题,本实施例中,所述消息处理系统还包括消息管理端;所述消息管理端,用于确定所述kafka集群关联的类别信息,按照所述类别信息建立至少两个业务主题与消息存储路径的映射关系,根据所述映射关系创建配置信息,并将所述配置信息发送至所述生产者客户端和所述消费者客户端。
82.具体的,消息管理端具体是指负责业务主题与kafka消息主题的映射管理端,实现在业务编码时,可以使用注解标识业务主题标识,同时可以将sdk(software development kit,软件开发工具包)转换为消息头,用于结合业务主题和消息头生成配置信息。
83.基于此,在配置阶段,消息管理端可以先确定kafka集群关联的类别信息,之后按照类别信息建立至少两个业务主题与消息存储路径的映射关系,此后再根据映射关系创建配置信息,并将配置信息发送至生产者客户端和消费者客户端即可。
84.也就是说,消息管理端可以在业务编码时,使用注解标识业务主题,同时将sdk转换为消息头,此后在进行消息存储时,可以从目标消息中拆出第一级作为kafka的消息主题,并且可以定制分区标识符,如topica_1发送到指定分区,用于实现顺序发送和顺序消
费。业务主题和消息头即可组成完整的消息配置,可以通过配置中心或者复用kafka下发给生产者客户端和消费者客户端。
85.具体实施时,在业务主题编码阶段,可以植入消息的业务消息标识,之后消息管理端可以编辑业务主题与消息头映射,实现业务a-topica_1:sub1,消息管理端通过配置中心或者复用kafka下发配置信息到生产者客户端和消费者客户端,生产者客户端和消费者客户端获取到配置信息后,可以进行生效确认,客户端将按照业务消息列表转换为真实主题列表topica,用于后续进行消息的发送和消费时,可以根据配置完成。
86.参见图3所示,生产者客户端在发布消息后,将在消息头中写入topica:sub1和topica:sub2,以及topicb:sub3和topicb:sub4,kafka集群可以按照消息头中写入的路由信息,将topica:sub1和topica:sub2对应的消息写入topica,以及将topicb:sub3和topicb:sub4对应的消息写入topicb,当消费者客户端进行消费数据时,即可从topica中拉取topica:sub1和topica:sub2对应的消息,以及在topicb中拉取topicb:sub3和topicb:sub4,以用于后续使用。
87.综上,通过消息管理端进行配置信息的创建和管理,可以实现对kafka集群中的有限资源进行管理和控制,实现利用有限的资源进行消息的发送和消费,可以保证kafka集群的吞吐量。
88.此外,为了能够实现对重要消息的生命周期进行监控,通过消息管理端还可以提供录制和回溯功能,本实施例中,所述消息管理端,还用于接收消息录制请求,根据所述消息录制请求确定消息消费链路以及录制时间区间,在所述录制时间区间对所述消息消费链路进行录制,根据录制结果生成待回溯消息记录并存储;在接收到关联所述录制时间区间的回溯请求的情况下,响应于所述回溯请求执行所述待回溯消息记录。
89.具体的,消息录制请求具体是指对消息的存储和消费过程进行记录的请求;相应的,消息消费链路具体是指从消息生成到消息存储,再到消息的消费过程所对应的链路,即为需要录制的消息对应的生命周期;相应的,录制时间区间具体是指录制消息整个生命周期的指定时间。相应的,回溯请求具体是指需要对录制时间区间消息的生命周期进行回放的请求。
90.基于此,当消息管理端接收到消息录制请求的情况下,说明需要针对某一消息的存储和消费过程进行记录,以方便在其他时间进行回溯,因此可以先根据消息录制请求确定消息消费链路以及录制时间区间,在录制时间区间对消息消费链路进行录制,根据录制结果生成待回溯消息记录并存储;在接收到关联录制时间区间的回溯请求的情况下,可以响应于回溯请求执行待回溯消息记录,实现对消息的存储和消费过程进行回放。也就是说,在指定时间可以开启对指定消息链路的消息录制,在需要时对录制内容,重新回传到消息服务器,实现对录制时间区间的业务场景重现。
91.例如,t1-t2时间区间,业务b对应的消息被写入kafka集群的topicb的第二分区,消费者客户端在进行消费时,通过订阅kafka集群的topicb的第二分区,实现在第二分区中拉取关联业务b的sub3的信息使用。当需要针对t1-t2时间区间业务b的消息进行回溯时,可以重新执行以此上述流程,用于辅助回溯阶段的问题定位等处理。
92.综上,通过消息管理端提供消息的录制和回溯功能,可以实现对关键时间区间的消息存储和消费过程进行监控,从而能够准确的定位问题所在,提高应用场景的规范性。
93.与上述系统实施例相对应,本说明书还提供了消息处理方法实施例,图4示出了本说明书一实施例提供的一种消息处理方法的流程图。如图4所示,该方法包括:
94.步骤s402,生产者客户端采集目标业务主题对应的待处理消息,并按照已生效的配置信息对所述待处理消息进行处理,获得目标消息,将所述目标消息发送至kafka集群进行存储;其中,所述配置信息用于记录至少两个业务主题与消息存储路径的映射关系;
95.步骤s404,消费者客户端在接收到关联所述目标业务主题的消息处理请求的情况下,按照所述配置信息订阅所述kafka集群中的目标分区,响应于所述消息处理请求在所述目标分区中拉取所述目标消息。
96.一个可选的实施例中,所述生产者客户端根据所述配置信息确定所述目标业务主题对应的消息模板,在所述消息模板的消息头中添加所述待处理消息,根据添加结果生成所述目标消息。
97.一个可选的实施例中,所述生产者客户端对所述目标消息进行解析,获得添加所述待处理消息的消息头中的目标消息存储路径,按照所述目标消息存储路径将所述目标消息发送至所述kafka集群;其中,所述kafka集群按照所述目标消息存储路径将所述目标消息存储至所述目标分区。
98.一个可选的实施例中,所述消费者客户端接收所述消息处理请求,对所述消息处理请求进行解析,根据解析结果确定所述目标业务主题,在所述配置信息中确定所述目标业务主题对应的分区信息,并按照所述分区信息订阅所述kafka集群中的所述目标分区。
99.一个可选的实施例中,所述消费者客户端响应于所述消息处理请求向所述kafka集群发送消息消费请求,接收所述kafka集群针对所述消息消费请求反馈的分区消息,并在所述分区消息中确定所述目标消息;其中,所述分区消息为所述目标分区中存储的全局消息。
100.一个可选的实施例中,还包括消息管理端;所述消息管理端确定所述kafka集群关联的类别信息,按照所述类别信息建立至少两个业务主题与消息存储路径的映射关系,根据所述映射关系创建配置信息,并将所述配置信息发送至所述生产者客户端和所述消费者客户端。
101.一个可选的实施例中,所述消息管理端接收消息录制请求,根据所述消息录制请求确定消息消费链路以及录制时间区间,在所述录制时间区间对所述消息消费链路进行录制,根据录制结果生成待回溯消息记录并存储;在接收到关联所述录制时间区间的回溯请求的情况下,响应于所述回溯请求执行所述待回溯消息记录。
102.一个可选的实施例中,所述生产者客户端接收所述配置信息,在所述配置信息生效的情况下,根据所述配置信息确定至少两个业务主题与消息存储路径的映射关系,创建所述映射关系对应的消息链接,并将所述消息链接作为所述目标业务主题对应的消息模板。
103.本说明书提供的消息处理方法,在生产者客户端产生关联目标业务主题的待处理消息后,为了能够保证kafka集群在处理消息时不会出现吞吐量下降的问题,同时能够充分利用kafka集群的有限资源,可以按照已生效的配置信息对待处理消息进行处理,以得到目标消息,之后将目标消息发送到kafka集群,其中,配置信息记录至少两个业务主题与消息存储路径的映射关系。在此基础上,当消费者客户端进行消息消费时,可以按照配置信息确
定kafka集群中的目标分区,实现响应于消息处理请求可以从目标分区中拉取目标消息进行消费。实现通过配置信息建立至少两个业务主题与消息存储路径的映射关系,以此为基础进行消息的存储和消费,可以有效的控制kafka集群的topic数量和分区数量,有效的保证了kafka集群的吞吐能力。
104.上述为本实施例的一种消息处理方法的示意性方案。需要说明的是,该消息处理方法的技术方案与上述的消息处理系统的技术方案属于同一构思,消息处理方法的技术方案未详细描述的细节内容,均可以参见上述消息处理系统的技术方案的描述。
105.与上述实施例相对应,本实施例还提供了另一种消息处理系统,图5示出了根据本说明书一实施例提供的另一种消息处理系统的结构示意图,消息处理系统500包括消息管理端510、生产者客户端520和消费者客户端530,以及kafka集群540;
106.消息管理端510,用于建立至少两个业务主题与消息存储路径的映射关系,根据所述映射关系创建配置信息,并发送至所述生产者客户端和所述消费者客户端;
107.所述产者客户端520,用于在所述配置信息生效的情况下,采集目标业务主题对应的待处理消息,并按照已生效的所述配置信息对所述待处理消息进行处理,获得目标消息,将所述目标消息发送至kafka集群540进行存储;
108.所述消费者客户端530,用于在接收到关联所述目标业务主题的消息处理请求的情况下,按照所述配置信息订阅所述kafka集群540中的目标分区,响应于所述消息处理请求在所述目标分区中拉取所述目标消息。
109.一个可选的实施例中,所述生产者客户端根据所述配置信息确定所述目标业务主题对应的消息模板,在所述消息模板的消息头中添加所述待处理消息,根据添加结果生成所述目标消息。
110.一个可选的实施例中,所述生产者客户端对所述目标消息进行解析,获得添加所述待处理消息的消息头中的目标消息存储路径,按照所述目标消息存储路径将所述目标消息发送至所述kafka集群;其中,所述kafka集群按照所述目标消息存储路径将所述目标消息存储至所述目标分区。
111.一个可选的实施例中,所述消费者客户端接收所述消息处理请求,对所述消息处理请求进行解析,根据解析结果确定所述目标业务主题,在所述配置信息中确定所述目标业务主题对应的分区信息,并按照所述分区信息订阅所述kafka集群中的所述目标分区。
112.一个可选的实施例中,所述消费者客户端响应于所述消息处理请求向所述kafka集群发送消息消费请求,接收所述kafka集群针对所述消息消费请求反馈的分区消息,并在所述分区消息中确定所述目标消息;其中,所述分区消息为所述目标分区中存储的全局消息。
113.一个可选的实施例中,还包括消息管理端;所述消息管理端确定所述kafka集群关联的类别信息,按照所述类别信息建立至少两个业务主题与消息存储路径的映射关系,根据所述映射关系创建配置信息,并将所述配置信息发送至所述生产者客户端和所述消费者客户端。
114.一个可选的实施例中,所述消息管理端接收消息录制请求,根据所述消息录制请求确定消息消费链路以及录制时间区间,在所述录制时间区间对所述消息消费链路进行录制,根据录制结果生成待回溯消息记录并存储;在接收到关联所述录制时间区间的回溯请
求的情况下,响应于所述回溯请求执行所述待回溯消息记录。
115.一个可选的实施例中,所述生产者客户端接收所述配置信息,在所述配置信息生效的情况下,根据所述配置信息确定至少两个业务主题与消息存储路径的映射关系,创建所述映射关系对应的消息链接,并将所述消息链接作为所述目标业务主题对应的消息模板。
116.本说明书提供的消息处理系统,通过消息管理端向生产者客户端和消费者客户端同步配置信息后,可以建立至少两个业务主题与消息存储路径的映射关系,从而实现在生产者客户端产生关联目标业务主题的待处理消息后,为了能够保证kafka集群在处理消息时不会出现吞吐量下降的问题,同时能够充分利用kafka集群的有限资源,可以按照已生效的配置信息对待处理消息进行处理,以得到目标消息,之后将目标消息发送到kafka集群,在此基础上,当消费者客户端进行消息消费时,可以按照配置信息确定kafka集群中的目标分区,实现响应于消息处理请求可以从目标分区中拉取目标消息进行消费。实现通过配置信息建立至少两个业务主题与消息存储路径的映射关系,以此为基础进行消息的存储和消费,可以有效的控制kafka集群的topic数量和分区数量,有效的保证了kafka集群的吞吐能力。
117.与上述系统实施例相对应,本说明书还提供了另一种消息处理方法实施例,图6示出了本说明书一实施例提供的另一种消息处理方法的流程图。如图6所示,该方法包括:
118.步骤s602,消息管理端建立至少两个业务主题与消息存储路径的映射关系,根据所述映射关系创建配置信息,并发送至生产者客户端和消费者客户端;
119.步骤s604,产者客户端在所述配置信息生效的情况下,采集目标业务主题对应的待处理消息,并按照已生效的所述配置信息对所述待处理消息进行处理,获得目标消息,将所述目标消息发送至kafka集群进行存储;
120.步骤s606,消费者客户端在接收到关联所述目标业务主题的消息处理请求的情况下,按照所述配置信息订阅所述kafka集群中的目标分区,响应于所述消息处理请求在所述目标分区中拉取所述目标消息。
121.一个可选的实施例中,所述生产者客户端根据所述配置信息确定所述目标业务主题对应的消息模板,在所述消息模板的消息头中添加所述待处理消息,根据添加结果生成所述目标消息。
122.一个可选的实施例中,所述生产者客户端对所述目标消息进行解析,获得添加所述待处理消息的消息头中的目标消息存储路径,按照所述目标消息存储路径将所述目标消息发送至所述kafka集群;其中,所述kafka集群按照所述目标消息存储路径将所述目标消息存储至所述目标分区。
123.一个可选的实施例中,所述消费者客户端接收所述消息处理请求,对所述消息处理请求进行解析,根据解析结果确定所述目标业务主题,在所述配置信息中确定所述目标业务主题对应的分区信息,并按照所述分区信息订阅所述kafka集群中的所述目标分区。
124.一个可选的实施例中,所述消费者客户端响应于所述消息处理请求向所述kafka集群发送消息消费请求,接收所述kafka集群针对所述消息消费请求反馈的分区消息,并在所述分区消息中确定所述目标消息;其中,所述分区消息为所述目标分区中存储的全局消息。
125.一个可选的实施例中,还包括消息管理端;所述消息管理端确定所述kafka集群关联的类别信息,按照所述类别信息建立至少两个业务主题与消息存储路径的映射关系,根据所述映射关系创建配置信息,并将所述配置信息发送至所述生产者客户端和所述消费者客户端。
126.一个可选的实施例中,所述消息管理端接收消息录制请求,根据所述消息录制请求确定消息消费链路以及录制时间区间,在所述录制时间区间对所述消息消费链路进行录制,根据录制结果生成待回溯消息记录并存储;在接收到关联所述录制时间区间的回溯请求的情况下,响应于所述回溯请求执行所述待回溯消息记录。
127.一个可选的实施例中,所述生产者客户端接收所述配置信息,在所述配置信息生效的情况下,根据所述配置信息确定至少两个业务主题与消息存储路径的映射关系,创建所述映射关系对应的消息链接,并将所述消息链接作为所述目标业务主题对应的消息模板。
128.本说明书提供的消息处理方法,通过消息管理端向生产者客户端和消费者客户端同步配置信息后,可以建立至少两个业务主题与消息存储路径的映射关系,从而实现在生产者客户端产生关联目标业务主题的待处理消息后,为了能够保证kafka集群在处理消息时不会出现吞吐量下降的问题,同时能够充分利用kafka集群的有限资源,可以按照已生效的配置信息对待处理消息进行处理,以得到目标消息,之后将目标消息发送到kafka集群,在此基础上,当消费者客户端进行消息消费时,可以按照配置信息确定kafka集群中的目标分区,实现响应于消息处理请求可以从目标分区中拉取目标消息进行消费。实现通过配置信息建立至少两个业务主题与消息存储路径的映射关系,以此为基础进行消息的存储和消费,可以有效的控制kafka集群的topic数量和分区数量,有效的保证了kafka集群的吞吐能力。
129.下述结合附图7,以本说明书提供的消息处理系统在日志处理场景中的应用为例,对所述消息处理系统进行进一步说明。其中,图7示出了本说明书一实施例提供的一种消息处理系统的处理流程图,具体包括以下步骤:
130.步骤s702,消息管理端确定kafka集群关联的类别信息,按照类别信息建立至少两个业务主题与消息存储路径的映射关系。
131.步骤s704,消息管理端根据映射关系创建配置信息,并将配置信息发送至生产者客户端和消费者客户端。
132.步骤s706,生产者客户端采集目标业务主题对应的待处理消息,根据配置信息确定目标业务主题对应的消息模板。
133.步骤s708,生产者客户端在消息模板的消息头中添加待处理消息,根据添加结果生成目标消息。
134.步骤s710,生产者客户端对目标消息进行解析,获得添加待处理消息的消息头中的目标消息存储路径,按照目标消息存储路径将目标消息发送至kafka集群。
135.其中,所述kafka集群按照所述目标消息存储路径将所述目标消息存储至所述目标分区,所述配置信息用于记录至少两个业务主题与消息存储路径的映射关系。
136.步骤s712,消费者客户端接收消息处理请求,对消息处理请求进行解析,根据解析结果确定目标业务主题。
137.步骤s714,消费者客户端在配置信息中确定目标业务主题对应的分区信息,并按照分区信息订阅kafka集群中的目标分区。
138.步骤s716,消费者客户端响应于消息处理请求向kafka集群发送消息消费请求,接收kafka集群针对消息消费请求反馈的分区消息。
139.步骤s718,消费者客户端在分区消息中确定目标消息。
140.其中,所述分区消息为所述目标分区中存储的全局消息。
141.综上所述,实现通过配置信息建立至少两个业务主题与消息存储路径的映射关系,以此为基础进行消息的存储和消费,可以有效的控制kafka集群的topic数量和分区数量,有效的保证了kafka集群的吞吐能力。
142.图8示出了根据本说明书一实施例提供的一种计算设备800的结构框图。该计算设备800的部件包括但不限于存储器810和处理器820。处理器820与存储器810通过总线830相连接,数据库850用于保存数据。
143.计算设备800还包括接入设备840,接入设备840使得计算设备800能够经由一个或多个网络860通信。这些网络的示例包括公用交换电话网(pstn)、局域网(lan)、广域网(wan)、个域网(pan)或诸如因特网的通信网络的组合。接入设备840可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(nic))中的一个或多个,诸如ieee802.11无线局域网(wlan)无线接口、全球微波互联接入(wi-max)接口、以太网接口、通用串行总线(usb)接口、蜂窝网络接口、蓝牙接口、近场通信(nfc)接口,等等。
144.在本说明书的一个实施例中,计算设备800的上述部件以及图8中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图8所示的计算设备结构框图仅仅是出于示例的目的,而不是对本说明书范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。
145.计算设备800可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或pc的静止计算设备。计算设备800还可以是移动式或静止式的服务器。
146.其中,处理器820用于执行如下计算机可执行指令时实现上述消息处理方法的步骤。
147.上述为本实施例的一种计算设备的示意性方案。需要说明的是,该计算设备的技术方案与上述的消息处理方法的技术方案属于同一构思,计算设备的技术方案未详细描述的细节内容,均可以参见上述消息处理方法的技术方案的描述。
148.本说明书一实施例还提供一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时实现上述消息处理方法的步骤。上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的消息处理方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述消息处理方法的技术方案的描述。
149.上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来
执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
150.需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本说明书并不受所描述的动作顺序的限制,因为依据本说明书,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本说明书所必须的。在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
151.以上公开的本说明书优选实施例只是用于帮助阐述本说明书。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本说明书的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本说明书。本说明书仅受权利要求书及其全部范围和等效物的限制。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献