CN113765926A - 一种消息重建方法及系统 - Google Patents
一种消息重建方法及系统 Download PDFInfo
- Publication number
- CN113765926A CN113765926A CN202111052225.8A CN202111052225A CN113765926A CN 113765926 A CN113765926 A CN 113765926A CN 202111052225 A CN202111052225 A CN 202111052225A CN 113765926 A CN113765926 A CN 113765926A
- Authority
- CN
- China
- Prior art keywords
- message
- offset information
- reconstruction
- unit
- metadata
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 54
- 238000012986 modification Methods 0.000 claims abstract description 24
- 230000004048 modification Effects 0.000 claims abstract description 24
- 238000012163 sequencing technique Methods 0.000 claims abstract description 10
- 238000013507 mapping Methods 0.000 claims description 19
- 238000012545 processing Methods 0.000 claims description 11
- 230000008569 process Effects 0.000 abstract description 17
- 238000010586 diagram Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 238000006243 chemical reaction Methods 0.000 description 3
- 238000005192 partition Methods 0.000 description 3
- 240000005546 Piper methysticum Species 0.000 description 2
- 235000016787 Piper methysticum Nutrition 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/03—Protocol definition or specification
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/06—Notations for structuring of protocol data, e.g. abstract syntax notation one [ASN.1]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请实施例公开了一种消息重建方法及系统。本申请实施例提供的技术方案,通过获取当前系统内存中消息集合的原始数据,原始数据包括多个批次的第一消息单元,第一消息单元用于批量存储消息和元数据,第一消息单元中的各个消息共用一个元数据;修改各个第一消息单元中元数据的基础偏移量信息,生成第二消息单元,基础偏移量信息用于供客户端计算第二消息单元中的各个消息的偏移量;根据基础偏移量信息排序各个第二消息单元,并依序拼接各个第二消息单元,生成消息集合的重建消息。采用上述技术手段,可以实现消息的批量修改,简化消息重建流程,解决消息重建流程繁琐耗时的技术问题,实现消息的快速、高效重建。
Description
技术领域
本申请实施例涉及计算机技术领域,尤其涉及一种消息重建方法及系统。
背景技术
目前,在数据分布式处理场景中,卡夫卡分布式消息系统框架是解决流量削峰、应用解耦等问题所不可或缺的组件。很多消息系统(如Pulsar消息系统)在存储消息时,会复用卡夫卡数据协议,将消息以卡夫卡消息格式写入系统中,以综合利用不同消息处理系统框架的优点。而在消息系统向卡夫卡客户端发送卡夫卡消息时,为了实现消息在不同系统之间的转换,需要对消息进行重建,确定消息在系统转换后的位置,使当前消息系统传输的卡夫卡消息适配卡夫卡客户端。在进行消息重建时,传统的做法是通过构造一个卡夫卡消息集合的构建器,利用构建器逐条指定卡夫卡消息的偏移量,并通过构建器将重建后卡夫卡消息传输至卡夫卡服务端,通过卡夫卡服务端进行消息排序,以此完成卡夫卡消息的重建。
但是,传统的消息重建流程繁琐耗时,对每条消息均需要进行迭代处理,其消息重建效率相对较低。
发明内容
本申请实施例提供一种消息重建方法及系统,能够实现消息的快速、批量重建,解决消息重建流程繁琐耗时的技术问题。
在第一方面,本申请实施例提供了一种消息重建方法,包括:
获取当前系统内存中消息集合的原始数据,所述原始数据包括多个批次的第一消息单元,所述第一消息单元用于批量存储消息和元数据,所述第一消息单元中的各个消息共用一个元数据;
修改各个所述第一消息单元中元数据的基础偏移量信息,生成第二消息单元,所述基础偏移量信息用于供客户端计算所述第二消息单元中的各个消息的偏移量;
根据所述基础偏移量信息排序各个所述第二消息单元,并依序拼接各个所述第二消息单元,生成所述消息集合的重建消息。
在第二方面,本申请实施例提供了一种消息重建系统,包括:
获取模块,用于获取当前系统内存中消息集合的原始数据,所述原始数据包括多个批次的第一消息单元,所述第一消息单元用于批量存储消息和元数据,所述第一消息单元中的各个消息共用一个元数据;
修改模块,用于修改各个所述第一消息单元中元数据的基础偏移量信息,生成第二消息单元,所述基础偏移量信息用于供客户端计算所述第二消息单元中的各个消息的偏移量;
重建模块,用于根据所述基础偏移量信息排序各个所述第二消息单元,并依序拼接各个所述第二消息单元,生成所述消息集合的重建消息。
在第三方面,本申请实施例提供了一种电子设备,包括:
存储器以及一个或多个处理器;
所述存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如第一方面所述的消息重建方法。
在第四方面,本申请实施例提供了一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行如第一方面所述的消息重建方法。
本申请实施例通过获取当前系统内存中消息集合的原始数据,原始数据包括多个批次的第一消息单元,第一消息单元用于批量存储消息和元数据,第一消息单元中的各个消息共用一个元数据;修改各个第一消息单元中元数据的基础偏移量信息,生成第二消息单元,基础偏移量信息用于供客户端计算第二消息单元中的各个消息的偏移量;根据基础偏移量信息排序各个第二消息单元,并依序拼接各个第二消息单元,生成消息集合的重建消息。采用上述技术手段,通过修改消息元数据的基础偏移量信息,可以实现消息的批量修改,简化消息重建流程,解决消息重建流程繁琐耗时的技术问题,实现消息的快速、高效重建。
附图说明
图1是本申请实施例提供的一种消息重建方法的流程图;
图2是本申请实施例中消息流转示意图;
图3是本申请实施例中元数据修改流程图;
图4是本申请实施例中元数据修改示意图;
图5是本申请实施例中字节数组拼接示意图;
图6是本申请实施例提供的一种消息重建系统的结构示意图;
图7是本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面结合附图对本申请具体实施例作进一步地详细描述。可以理解的是,此处所描述的具体实施例仅仅用于解释本申请,而非对本申请的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本申请相关的部分而非全部内容。在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作(或步骤)描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
本申请提供的消息重建方法,旨在通过批量修改消息元数据,实现消息的批量重建,以此来简化消息重建流程,提升消息重建效率。相对于传统的消息系统,其为了适配卡夫卡客户端,在向卡夫卡客户端传输消息时,需要通过构造一个卡夫卡消息集合的构建器,利用构建器逐条地添加消息内容、并显式或隐式地指定消息的偏移量。并通过构建器将重建后的卡夫卡消息传输至卡夫卡服务端,由卡夫卡服务端将消息顺序追加到数据文件中,以此完成消息重建,将完成消息重建的数据文件发送至卡夫卡客户端。由于构建器需要逐条消息指定偏移量信息,使得整个消息重建过程相对较为繁琐耗时,基于此,提供本申请实施例的一种消息重建方法,以解决现有消息系统的消息重建流程繁琐耗时的技术问题。
实施例:
图1给出了本申请实施例提供的一种消息重建方法的流程图,本实施例中提供的消息重建方法可以由消息重建设备执行,该消息重建设备可以通过软件和/或硬件的方式实现,该消息重建设备可以是两个或多个物理实体构成,也可以是一个物理实体构成。一般而言,该消息重建设备可以是电脑,服务器主机等各个消息系统的计算设备。
下述以该消息重建设备为执行消息重建方法的主体为例,进行描述。参照图1,该消息重建方法具体包括:
S110、获取当前系统内存中消息集合的原始数据,原始数据包括多个批次的第一消息单元,第一消息单元用于批量存储消息和元数据,第一消息单元中的各个消息共用一个元数据。
本申请在进行消息重建时,通过将当前系统内存中存储的原始数据进行卡夫卡消息的元数据批量修改,以实现消息的批量重建,提升消息重建效率。其中,在进行元数据批量修改时,对同一批次卡夫卡消息共用的元数据进行基础偏移量信息的修改,以指定该批次各个卡夫卡消息的偏移量,实现对卡夫卡消息的批量修改。并且,通过各个批量存储卡夫卡消息的消息单元并行进行卡夫卡消息的元数据修改操作,以进一步提升消息重建效率。最终,通过依序将各个完成元数据修改的消息单元拼接成消息集合,以此完成消息重建。将消息集合发送至卡夫卡客户端进行解码,卡夫卡客户端通过消息集合中各个消息单元的基础偏移量信息即可确定同单元内各个卡夫卡消息的偏移量。基于已确定的偏移量即可从消息集合中定位对应卡夫卡消息的位置,提取相应消息进行解码、消息处理等操作。
具体地,在消息系统向卡夫卡客户端传输卡夫卡消息的场景中,通过获取存储卡夫卡消息集合的原始数据,以便于对应原始数据进行卡夫卡消息重建操作。其中,卡夫卡消息集合包含了多个批次的消息单元,定义这些消息单元为第一消息单元。第一消息单元用于批量存储卡夫卡消息和一个元数据,该元数据用于描述同一个第一消息单元中的各个卡夫卡消息的相关属性信息,以支持诸如指示存储位置、历史数据、资源查找、文件记录等功能。各个第一消息单元中的卡夫卡消息共用一个元数据,则该元数据即标识了存储在同一第一消息单元中的各个卡夫卡消息的属性信息。后续在进行元数据修改时,通过修改一个第一消息单元的元数据,即可实现当前第一消息单元对应的批量卡夫卡消息的元数据修改。
示例性的,如图2所示,在消息系统的内存中,卡夫卡消息集合以字节数组的形式存储。当需要传输消息至卡夫卡客户端时,该消息重建设备通过从系统内存中提取对应的字节数组,即卡夫卡消息集合的原始数据。参照图2,每一个字节数组对应一个消息单元,消息单元包含一个元数据和批量存储的卡夫卡消息。通过对一个元数据进行适配卡夫卡客户端的修改,则该元数据所属消息单元中的所有卡夫卡消息均可完成消息重建。
S120、修改各个第一消息单元中元数据的基础偏移量信息,生成第二消息单元,基础偏移量信息用于供客户端计算第二消息单元中的各个消息的偏移量。
进一步地,基于获取到的卡夫卡消息集合的原始数据,对消息集合中各个第一消息单元中元数据的基础偏移量信息进行修改,以此来实现各个第一消息单元中的批量卡夫卡消息的重建操作。可以理解的是,为了适配卡夫卡客户端,需要将系统内存中的卡夫卡消息的偏移量进行修改,以重新指定卡夫卡消息的偏移量。偏移量唯一标识了一条消息在一个存储分区中的位置,也可以记录消费者在存储分区下的消费进度。当卡夫卡消息从系统内存传输至卡夫卡客户端时,需要重新确定卡夫卡消息在卡夫卡客户端的位置,以便于卡夫卡客户端定位和处理各个卡夫卡消息。则在传输卡夫卡消息之前,需要重新指定各个卡夫卡消息的偏移量。基于此,本申请实施例通过修改消息集合中各个第一消息单元中元数据的基础偏移量信息,以实现对各个卡夫卡消息的偏移量的重新指定。
其中,对于各个第一消息单元,消息重建设备采用并行修改元数据的方式进行卡夫卡消息的重建操作。消息重建设备并行对各个第一消息单元元数据的基础偏移量信息进行修改,生成各个对应的第二消息单元。通过并行进行消息单元的元数据修改,可以缩短整个卡夫卡消息集合的重建耗时,进一步提升卡夫卡消息重建的效率。
具体地,参照图3,元数据修改流程包括:
S1201、在各个第一消息单元的元数据中,确定基础偏移量信息的第一字段位置;
S1202、基于设定映射规则并行修改各个第一消息单元中,第一字段位置的内容,生成第二消息单元。
本申请实施例在对元数据进行修改时,通过定位元数据中基础偏移量信息在字节数组中的位置,定义该位置为第一字段位置。对第一字段位置存储的字节数据进行修改,即实现对元数据的基础偏移量信息的修改。
具体地,如图4所示,对应每一个第一消息单元,其在序列化之后,字节数组的编码格式相似。第一消息单元整个内存块由元数据和批量的卡夫卡消息组成,而元数据则由基础偏移量信息、长度、时间戳、版本号、CRC信息等多个字段组成,每个字段的长度和存储位置固定。可以理解的是,元数据用于描述消息内容的各类型属性信息,而卡夫卡消息则作为消息内容的构成主体。
在进行基础偏移量信息的修改时,首先确定基础偏移量信息对应的字段位置,定义该字段位置为第一字段位置。本申请实施例通过调整第一消息单元中字节数据的写索引,利用写索引定位基础偏移量信息的第一字段位置。可以理解的是,通过调整第一消息单元整个字节数组的写索引,到达目标字段(即基础偏移量信息的对应字段)的起始位置,以此来定位基础偏移量信息的第一字段位置。
进一步地,在对第一字段位置的内容进行修改时,本申请实施例采用设定的映射规则转换第一字段位置的字节内容,生成第二消息单元,以此完成一个消息单元的元数据修改。优选地,参照上述元数据修改方式,并行对各个第一消息单元的元数据进行修改,即可对应生成相应的第二消息单元,利用并行处理的方式,来进一步缩短消息重建耗时,提升消息重建效率。
其中,基于设定映射规则并行修改各个第一消息单元中,第一字段位置的内容,包括:基于设定映射规则将第一字段位置的初始内容转换为相同字节大小的重建内容,将重建内容覆盖至第一字段位置。可以理解的是,由于元数据中各个类型的信息对应的字段的长度和位置固定。则在进行基础偏移量信息修改时,需要将第一字段位置的字节内容按照设定的映射规则进行转换,得到相同字节大小的重建内容,然后将重建内容覆盖至第一字段位置,以此来实现对的卡夫卡消息元数据的定向修改。如图4所示,通过确定基础偏移量信息的第一字段位置,进而将第一字段位置的字节内容按照映射规则转换为重建内容“A”,进而将重建内容“A”覆盖至第一字段位置,以此完成基础偏移量信息的修改。需要说明的是,原始数据中的各个卡夫卡消息存入系统内存中时,会对应其批量存储的消息单元设置一个相应的基础偏移量信息,该基础偏移量信息即可用于确定同一消息单元中各个卡夫卡消息的存储位置。则根据实际需要,映射规则只需要确保在基础偏移量信息转换后,准确标识各个卡夫卡消息的存储位置即可。本申请实施例对具体的转换规则不做固定限制,在此不多赘述。
在一个实施例中,修改各个第一消息单元中元数据的基础偏移量信息,生成第二消息单元,还包括:在各个第一消息单元的元数据中,确定第一消息单元的版本号信息的第二字段位置,并修改第二字段位置的内容。由于卡夫卡客户端在进行卡夫卡消息解码时,需要根据版本号信息进行兼容性检查,以确定当前卡夫卡信息能否解码。因此,同样的,本申请实施例在进行元数据修改时,同样将写索引调整至版本号信息的字段位置,定义该字段位置为第二字段位置。进而按照设定的映射规则将第二字段位置的原始版本号信息转换成重建版本号,然后将重建版本号覆盖至第二字段位置,完成版本号的修改。示例性的,参照图4,通过确定版本号的第二字段位置,进而将第二字段位置的字节内容按照映射规则转换为重建内容“B”,进而将重建内容“B”覆盖至第二字段位置,以此完成版本号信息的修改。同样的,参照上述基础偏移量信息,修改版本号信息的映射规则根据实际需求设定,在此不多赘述。
S130、根据基础偏移量信息排序各个第二消息单元,并依序拼接各个第二消息单元,生成消息集合的重建消息。
基于上述步骤S120完成各个第一消息单元的元数据修改,生成第二消息单元之后,通过将各个第二消息单元依序拼接在一起,生成消息集合的重建信息,以此完成一个消息集合的卡夫卡消息重建。
示例性的,如图5所示,对应卡夫卡消息集合原始数据的各个字节数组(即第一消息单元),对其元数据中的基础偏移量信息和版本号信息进行修改。其中,字节数组1的基础偏移量信息“0”按照设定映射规则修改为“10010”,字节数组2的基础偏移量信息“0”按照设定映射规则修改为“10210”。同时,字节数组1的版本号信息“0”按照设定映射规则修改为“2”,字节数组2的版本号信息“0”按照设定映射规则修改为“2”。以此类推,消息重建设备通过从系统内存中(如Bookkeeper系统)读入多组字节数组,然后并行地对每一组数据进行定制化处理,修改其元数据的基础偏移量信息和版本号,得到以基础偏移量信息为键值的重建数据。最终,如图5所示,按照基础偏移量信息对各个元数据修改后的字节数组进行依序拼接,以此完成卡夫卡消息结合的重建操作。
进一步的,完成消息重建后,参照图2,消息重建设备通过协议服务器将重建消息发送至卡夫卡客户端,以通过卡夫卡客户端确定重建消息中各个第二消息单元的基础偏移量信息,根据基础偏移量信息以及同一第二消息单元中各个消息的批次偏移信息,计算同一第二消息单元中各个消息的偏移量。可以理解的是,由于基础偏移量信息用于确定同一消息单元中各个卡夫卡消息的偏移量。则对应卡夫卡客户端一端,在进行卡夫卡消息解码之前,首先会根据基础偏移量信息进行各个卡夫卡消息的偏移量计算,以根据卡夫卡消息的偏移量确定卡夫卡消息在存储分区的位置。在进行计算时,还结合各个卡夫卡消息的批次偏移信息来确定对应卡夫卡消息的偏移量。批次偏移信息标识了卡夫卡消息在一个消息单元的存储位置信息,各个卡夫卡消息的批次偏移信息唯一标识了其在消息单元中的位置。在根据批次偏移信息结合基础偏移量信息计算卡夫卡消息偏移量时,将当前消息的批次偏移信息以及当前消息对应的基础偏移量信息叠加,得到当前消息的偏移量。偏移量的计算公式为:
offset=RecordBatch.BaseOffset+Record.OffsetDelta
其中,offset表示偏移量,RecordBatch.BaseOffset表示同一第二消息单元的基础偏移量信息,Record.OffsetDelta表示同一第二消息单元中一个消息的批次偏移信息。
本申请实施例中,对于每条卡夫卡消息,其在同一个消息单元内部的批次偏移信息字段是严格逐一自增的。因此根据上述偏移量计算公式,即可根据一个消息单元的基础偏移量信息,结合各个卡夫卡消息的批次偏移信息,计算出唯一标识卡夫卡消息存储位置的偏移量。进而基于该偏移量,卡夫卡客户端即可定位提取卡夫卡消息,进行解码处理等操作。
上述,通过获取当前系统内存中消息集合的原始数据,原始数据包括多个批次的第一消息单元,第一消息单元用于批量存储消息和元数据,第一消息单元中的各个消息共用一个元数据;修改各个第一消息单元中元数据的基础偏移量信息,生成第二消息单元,基础偏移量信息用于供客户端计算第二消息单元中的各个消息的偏移量;根据基础偏移量信息排序各个第二消息单元,并依序拼接各个第二消息单元,生成消息集合的重建消息。采用上述技术手段,通过修改消息元数据的基础偏移量信息,可以实现消息的批量修改,简化消息重建流程,解决消息重建流程繁琐耗时的技术问题,实现消息的快速、高效重建。
在上述实施例的基础上,图6为本申请提供的一种消息重建系统的结构示意图。参考图6,本实施例提供的消息重建系统具体包括:获取模块21、修改模块22和重建模块23。
其中,获取模块21用于获取当前系统内存中消息集合的原始数据,所述原始数据包括多个批次的第一消息单元,所述第一消息单元用于批量存储消息和元数据,所述第一消息单元中的各个消息共用一个元数据;
修改模块22用于修改各个所述第一消息单元中元数据的基础偏移量信息,生成第二消息单元,所述基础偏移量信息用于供客户端计算所述第二消息单元中的各个消息的偏移量;
重建模块23用于根据所述基础偏移量信息排序各个所述第二消息单元,并依序拼接各个所述第二消息单元,生成所述消息集合的重建消息。
具体地,修改模块22包括:
定位单元,用于在各个所述第一消息单元的元数据中,确定所述基础偏移量信息的第一字段位置;
生成单元,用于基于设定映射规则并行修改各个所述第一消息单元中,所述第一字段位置的内容,生成所述第二消息单元。
具体地,定位单元包括:
调整所述第一消息单元中字节数据的写索引,通过所述写索引定位所述基础偏移量信息的第一字段位置。
生成单元包括:
基于所述设定映射规则将所述第一字段位置的初始内容转换为相同字节大小的重建内容,将所述重建内容覆盖至所述第一字段位置。
具体地,修改模块22还包括:
在各个所述第一消息单元的元数据中,确定所述第一消息单元的版本号信息的第二字段位置,并修改所述第二字段位置的内容。
具体地,消息重建系统还包括:
发送模块,用于将所述重建消息发送至客户端,以通过客户端确定所述重建消息中各个所述第二消息单元的所述基础偏移量信息,根据所述基础偏移量信息以及同一所述第二消息单元中各个消息的批次偏移信息,计算同一所述第二消息单元中各个消息的偏移量。
具体地,根据所述基础偏移量信息以及同一所述第二消息单元中各个消息的批次偏移信息,计算同一所述第二消息单元中各个消息的偏移量,包括:
将当前消息的批次偏移信息以及当前消息对应的所述基础偏移量信息叠加,得到当前消息的偏移量。
上述,通过获取当前系统内存中消息集合的原始数据,原始数据包括多个批次的第一消息单元,第一消息单元用于批量存储消息和元数据,第一消息单元中的各个消息共用一个元数据;修改各个第一消息单元中元数据的基础偏移量信息,生成第二消息单元,基础偏移量信息用于供客户端计算第二消息单元中的各个消息的偏移量;根据基础偏移量信息排序各个第二消息单元,并依序拼接各个第二消息单元,生成消息集合的重建消息。采用上述技术手段,通过修改消息元数据的基础偏移量信息,可以实现消息的批量修改,简化消息重建流程,解决消息重建流程繁琐耗时的技术问题,实现消息的快速、高效重建。
本申请实施例提供的消息重建系统可以用于执行上述实施例提供的消息重建方法,具备相应的功能和有益效果。
在上述实际上例的基础上,本申请实施例还提供了一种电子设备,参照图7,该电子设备包括:处理器31、存储器32、通信模块33、输入装置34及输出装置35。存储器作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本申请任意实施例所述的消息重建方法对应的程序指令/模块(例如,消息重建系统中的获取模块、修改模块和重建模块)。通信模块用于进行数据传输。处理器通过运行存储在存储器中的软件程序、指令以及模块,从而执行设备的各种功能应用以及数据处理,即实现上述的消息重建方法。输入装置可用于接收输入的数字或字符信息,以及产生与设备的用户设置以及功能控制有关的键信号输入。输出装置可包括显示屏等显示设备。上述提供的电子设备可用于执行上述实施例提供的消息重建方法,具备相应的功能和有益效果。
在上述实施例的基础上,本申请实施例还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种消息重建方法,存储介质可以是任何的各种类型的存储器设备或存储设备。当然,本申请实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的消息重建方法,还可以执行本申请任意实施例所提供的消息重建方法中的相关操作。
上述仅为本申请的较佳实施例及所运用的技术原理。本申请不限于这里所述的特定实施例,对本领域技术人员来说能够进行的各种明显变化、重新调整及替代均不会脱离本申请的保护范围。因此,虽然通过以上实施例对本申请进行了较为详细的说明,但是本申请不仅仅限于以上实施例,在不脱离本申请构思的情况下,还可以包括更多其他等效实施例,而本申请的范围由权利要求的范围决定。
Claims (10)
1.一种消息重建方法,其特征在于,包括:
获取当前系统内存中消息集合的原始数据,所述原始数据包括多个批次的第一消息单元,所述第一消息单元用于批量存储消息和元数据,所述第一消息单元中的各个消息共用一个元数据;
修改各个所述第一消息单元中元数据的基础偏移量信息,生成第二消息单元,所述基础偏移量信息用于供客户端计算所述第二消息单元中的各个消息的偏移量;
根据所述基础偏移量信息排序各个所述第二消息单元,并依序拼接各个所述第二消息单元,生成所述消息集合的重建消息。
2.根据权利要求1所述的消息重建方法,其特征在于,所述修改各个所述第一消息单元中元数据的基础偏移量信息,生成第二消息单元,包括:
在各个所述第一消息单元的元数据中,确定所述基础偏移量信息的第一字段位置;
基于设定映射规则并行修改各个所述第一消息单元中,所述第一字段位置的内容,生成所述第二消息单元。
3.根据权利要求2所述的消息重建方法,其特征在于,确定所述基础偏移量信息的第一字段位置,包括:
调整所述第一消息单元中字节数据的写索引,通过所述写索引定位所述基础偏移量信息的第一字段位置。
4.根据权利要求2所述的消息重建方法,其特征在于,所述基于设定映射规则并行修改各个所述第一消息单元中,所述第一字段位置的内容,包括:
基于所述设定映射规则将所述第一字段位置的初始内容转换为相同字节大小的重建内容,将所述重建内容覆盖至所述第一字段位置。
5.根据权利要求2所述的消息重建方法,其特征在于,所述修改各个所述第一消息单元中元数据的基础偏移量信息,生成第二消息单元,还包括:
在各个所述第一消息单元的元数据中,确定所述第一消息单元的版本号信息的第二字段位置,并修改所述第二字段位置的内容。
6.根据权利要求1所述的消息重建方法,其特征在于,在生成所述消息集合的重建消息之后,还包括:
将所述重建消息发送至客户端,以通过客户端确定所述重建消息中各个所述第二消息单元的所述基础偏移量信息,根据所述基础偏移量信息以及同一所述第二消息单元中各个消息的批次偏移信息,计算同一所述第二消息单元中各个消息的偏移量。
7.根据权利要求6所述的消息重建方法,其特征在于,根据所述基础偏移量信息以及同一所述第二消息单元中各个消息的批次偏移信息,计算同一所述第二消息单元中各个消息的偏移量,包括:
将当前消息的批次偏移信息以及当前消息对应的所述基础偏移量信息叠加,得到当前消息的偏移量。
8.一种消息重建系统,其特征在于,包括:
获取模块,用于获取当前系统内存中消息集合的原始数据,所述原始数据包括多个批次的第一消息单元,所述第一消息单元用于批量存储消息和元数据,所述第一消息单元中的各个消息共用一个元数据;
修改模块,用于修改各个所述第一消息单元中元数据的基础偏移量信息,生成第二消息单元,所述基础偏移量信息用于供客户端计算所述第二消息单元中的各个消息的偏移量;
重建模块,用于根据所述基础偏移量信息排序各个所述第二消息单元,并依序拼接各个所述第二消息单元,生成所述消息集合的重建消息。
9.一种电子设备,其特征在于,包括:
存储器以及一个或多个处理器;
所述存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-7任一所述的消息重建方法。
10.一种包含计算机可执行指令的存储介质,其特征在于,所述计算机可执行指令在由计算机处理器执行时用于执行如权利要求1-7任一所述的消息重建方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111052225.8A CN113765926B (zh) | 2021-09-08 | 2021-09-08 | 一种消息重建方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111052225.8A CN113765926B (zh) | 2021-09-08 | 2021-09-08 | 一种消息重建方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113765926A true CN113765926A (zh) | 2021-12-07 |
CN113765926B CN113765926B (zh) | 2023-06-13 |
Family
ID=78793995
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111052225.8A Active CN113765926B (zh) | 2021-09-08 | 2021-09-08 | 一种消息重建方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113765926B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101098497A (zh) * | 2006-06-28 | 2008-01-02 | 北京握奇数据系统有限公司 | 多级短消息发送与乱序接收存储并完整显示的装置和方法 |
CN104125283A (zh) * | 2014-07-30 | 2014-10-29 | 中国银行股份有限公司 | 一种用于集群的消息队列接收方法及系统 |
CN110278231A (zh) * | 2018-03-16 | 2019-09-24 | 中移(苏州)软件技术有限公司 | 一种数据订阅分发方法及系统 |
CN111897662A (zh) * | 2020-07-01 | 2020-11-06 | 中国建设银行股份有限公司 | 偏移量处理方法、装置、电子设备及计算机可读存储介质 |
CN112565405A (zh) * | 2020-12-01 | 2021-03-26 | 彩讯科技股份有限公司 | 消息统一推送方法、系统、设备和计算机可读存储介质 |
CN112882839A (zh) * | 2019-11-29 | 2021-06-01 | 中国移动通信集团设计院有限公司 | 基于kafka的消息处理方法及装置 |
-
2021
- 2021-09-08 CN CN202111052225.8A patent/CN113765926B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101098497A (zh) * | 2006-06-28 | 2008-01-02 | 北京握奇数据系统有限公司 | 多级短消息发送与乱序接收存储并完整显示的装置和方法 |
CN104125283A (zh) * | 2014-07-30 | 2014-10-29 | 中国银行股份有限公司 | 一种用于集群的消息队列接收方法及系统 |
CN110278231A (zh) * | 2018-03-16 | 2019-09-24 | 中移(苏州)软件技术有限公司 | 一种数据订阅分发方法及系统 |
CN112882839A (zh) * | 2019-11-29 | 2021-06-01 | 中国移动通信集团设计院有限公司 | 基于kafka的消息处理方法及装置 |
CN111897662A (zh) * | 2020-07-01 | 2020-11-06 | 中国建设银行股份有限公司 | 偏移量处理方法、装置、电子设备及计算机可读存储介质 |
CN112565405A (zh) * | 2020-12-01 | 2021-03-26 | 彩讯科技股份有限公司 | 消息统一推送方法、系统、设备和计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113765926B (zh) | 2023-06-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109308224B (zh) | 跨平台数据通信、跨平台数据处理的方法、装置及系统 | |
CN102413150B (zh) | 服务器、虚拟桌面控制方法以及虚拟桌面控制系统 | |
WO2017028514A1 (zh) | 一种数据存储、读取方法及装置 | |
CN111209202A (zh) | 终端应用测试方法和装置 | |
CN110489440B (zh) | 数据查询方法和装置 | |
CN109920056B (zh) | 建筑物渲染方法、装置、设备和介质 | |
CN111683066A (zh) | 异构系统集成方法、装置、计算机设备和存储介质 | |
CN110162387A (zh) | 线程调度方法、装置、计算机设备及计算机可读存储介质 | |
CN114510452B (zh) | 片上系统soc集成方法、装置及电子设备 | |
CN109063012A (zh) | 存储、查询时序数据的方法、装置、设备和计算机存储介质 | |
CN113051102A (zh) | 文件备份方法、装置、系统、存储介质和计算机设备 | |
CN108776665B (zh) | 一种数据处理方法及装置 | |
CN113467823A (zh) | 一种配置信息的获取方法、装置、系统及存储介质 | |
CN111552715A (zh) | 用户查询方法和装置 | |
CN113765926A (zh) | 一种消息重建方法及系统 | |
CN116108042A (zh) | 数据处理方法、装置、电子设备、存储介质及程序产品 | |
CN108564661B (zh) | 一种基于增强现实场景的记录方法 | |
CN111324470A (zh) | 用于生成信息的方法及装置 | |
CN114567571B (zh) | 性能测试方法、装置、电子设备和计算机可读存储介质 | |
CN113961471B (zh) | 测试方法、装置、测试设备、被测设备、系统及存储介质 | |
CN114095781B (zh) | 多媒体数据处理方法、装置、电子设备及存储介质 | |
CN111382379B (zh) | 一种导入带图片的配置数据的方法及终端 | |
CN110548285B (zh) | 游戏通信控制方法及装置、介质及电子设备 | |
CN114371982A (zh) | 一种模拟测试方法、装置、设备及可读存储介质 | |
CN112380828A (zh) | Pdf文档生成方法和装置、存储介质和电子设备 |
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 |