1.本技术实施例涉及计算机领域,尤其涉及一种消息数据处理方法、装置、设备和存储介质。
背景技术:
2.随着计算机和网络通信技术的发展,设备之间的数据交互也越来越频繁。如数据发送端依据设置的格式标准生成消息数据后,将消息数据发送至数据接收端,数据接收端对接收到的消息数据进行解析后进行后续的功能处理。为了提升数据传输效率,数据发送端生成的消息数据可同时被多个不同的数据接收端进行接收和处理。
3.现有技术中,由于数据发送端是按照自身定义的格式标准生成的消息数据,而各个数据接收端中集成的业务系统定义的数据格式通常不同,数据接收端为了实现对数据发送端发出的消息数据进行处理,采用格式转换的方式将接收到的消息数据按照自身定义的数据格式进行转换,该种消息数据的处理方式效率低下,需要改进。
技术实现要素:
4.本发明实施例提供了一种消息数据处理方法、装置、设备和存储介质,优化了消息数据的处理机制,提高了消息数据的处理效率。
5.第一方面,本发明实施例提供了一种消息数据处理方法,该方法包括:
6.获取第一消息数据,所述第一消息数据包括至少一个字段以及和所述至少一个字段对应的字段值;
7.根据所述第一消息数据中每个字段的位置顺序、预设索引长度以及所述每个字段对应的字段值占用的字节大小生成索引信息,所述索引信息包括所述第一消息数据中每个字段值的位置数据以及占用的字节大小;
8.将所述索引信息与所述第一消息数据中的字段值进行合并生成第二消息数据,发送所述第二消息数据。
9.第二方面,本发明实施例还提供了另一种消息数据处理方法,包括:
10.接收第二消息数据,所述第二消息数据包括索引信息和至少一个字段值,所述索引信息包括每个字段值的位置数据以及占用的字节大小;
11.确定待读取字段在消息数据中的位置顺序,根据所述位置顺序查询所述索引信息,得到对应的字段值的位置数据以及占用的字节大小;
12.根据查询得到的字段值的位置数据以及占用的字节大小在所述第二消息数据中读取对应的字段值确定为所述待读取字段的字段值。
13.第三方面,本发明实施例还提供了另一种消息数据处理方法,包括:
14.接收第一消息数据,所述第一消息数据包括至少一个字段以及和所述至少一个字段对应的字段值;
15.根据所述第一消息数据中每个字段的位置顺序、预设索引长度以及所述每个字段
对应的字段值占用的字节大小生成索引信息,所述索引信息包括所述第一消息数据中每个字段值的位置数据以及占用的字节大小;
16.将所述索引信息与所述第一消息数据中的字段值进行合并生成第二消息数据。
17.第四方面,本发明实施例还提供了一种消息数据处理装置,该装置包括:
18.消息数据获取模块,用于获取第一消息数据,所述第一消息数据包括至少一个字段以及和所述至少一个字段对应的字段值;
19.索引信息生成模块,用于根据所述第一消息数据中每个字段的位置顺序、预设索引长度以及所述每个字段对应的字段值占用的字节大小生成索引信息,所述索引信息包括所述第一消息数据中每个字段值的位置数据以及占用的字节大小;
20.信息合并模块,用于将所述索引信息与所述第一消息数据中的字段值进行合并生成第二消息数据;
21.消息数据发送模块,用于发送所述第二消息数据。
22.第五方面,本发明实施例还提供了一种消息数据处理装置,该装置包括:
23.消息数据接收模块,用于接收第二消息数据,所述第二消息数据包括索引信息和至少一个字段值,所述索引信息包括每个字段值的位置数据以及占用的字节大小;
24.索引信息查询模块,用于确定待读取字段在消息数据中的位置顺序,根据所述位置顺序查询所述索引信息,得到对应的字段值的位置数据以及占用的字节大小;
25.字段值读取模块,用于根据查询得到的字段值的位置数据以及占用的字节大小在所述第二消息数据中读取对应的字段值确定为所述待读取字段的字段值。
26.第六方面,本发明实施例还提供了一种消息数据处理装置,该装置包括:
27.消息数据接收模块,用于接收第一消息数据,所述第一消息数据包括至少一个字段以及和所述至少一个字段对应的字段值;
28.索引信息生成模块,用于根据所述第一消息数据中每个字段的位置顺序、预设索引长度以及所述每个字段对应的字段值占用的字节大小生成索引信息,所述索引信息包括所述第一消息数据中每个字段值的位置数据以及占用的字节大小;
29.信息合并模块,用于将所述索引信息与所述第一消息数据中的字段值进行合并生成第二消息数据。
30.第七方面,本发明实施例还提供了一种消息数据处理设备,该设备包括:
31.一个或多个处理器;
32.存储装置,用于存储一个或多个程序,
33.当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明实施例所述的消息数据处理方法。
34.第八方面,本发明实施例还提供了一种存储计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行本发明实施例所述的消息数据处理方法。
35.本发明实施例中,通过获取第一消息数据,该第一消息数据包括至少一个字段以及和所述至少一个字段对应的字段值,根据第一消息数据中每个字段的位置顺序、预设索引长度以及每个字段对应的字段值占用的字节大小生成索引信息,其中,索引信息包括第一消息数据中每个字段值的位置数据以及占用的字节大小,再将索引信息与第一消息数据
中的字段值进行合并生成第二消息数据后进行发送。本方案中,对原始的第一消息数据进行转换,转化为包含索引信息的消息数据后进行发送,该消息数据的处理机制使得在后续的消息数据的解析过程中,可以通过查询索引信息直接确定字段的字段值,无需字段转换,减少了额外的字段解析流程,同时在数据发送过程中仅需存储索引信息和字段值,无需对字段进行存储,显著提高了数据传输和存储效率。
附图说明
36.图1为本发明实施例提供的一种消息数据处理方法的流程图;
37.图2为本发明实施例提供的另一种消息数据处理方法的流程图;
38.图2a为本发明实施例提供的确定索引信息的方法的流程图;
39.图2b为本发明实施例提供的一种索引信息与字段值合并得到的第二消息数据的示意图;
40.图3为本发明实施例提供的另一种消息数据处理方法的流程图;
41.图3a为本发明实施例提供的另一种索引信息与字段值合并得到的第二消息数据的示意图;
42.图4为本发明实施例提供的另一种消息数据处理方法的流程图;
43.图5为本发明实施例提供的另一种消息数据处理方法的流程图;
44.图6为本发明实施例提供的一种消息数据处理装置的结构框图;
45.图7为本发明实施例提供的另一种消息数据处理装置的结构框图;
46.图8为本发明实施例提供的另一种消息数据处理装置的结构框图;
47.图9为本发明实施例提供的一种设备的结构示意图。
具体实施方式
48.下面结合附图和实施例对本发明实施例作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明实施例,而非对本发明实施例的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明实施例相关的部分而非全部结构。
49.本技术的说明书和权利要求书中的术语“第一”、“第二”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便本技术的实施例能够以除了在这里图示或描述的那些以外的顺序实施,且“第一”、“第二”等所区分的对象通常为一类,并不限定对象的个数,例如第一对象可以是一个,也可以是多个。此外,说明书以及权利要求中“和/或”表示所连接对象的至少其中之一,字符“/”,一般表示前后关联对象是一种“或”的关系。
50.图1为本发明实施例提供的一种消息数据处理方法的流程图,可应用于数据发送端,该方法可以由计算设备如台式机、笔记本、服务器、平板电脑和手机终端等设备来执行,具体包括如下步骤:
51.步骤s101、获取第一消息数据,所述第一消息数据包括至少一个字段以及和所述至少一个字段对应的字段值。
52.其中,该第一消息数据为需要发送的数据,如发送至数据接收端以使数据接收端接收后对其进行响应并处理的数据。该第一消息数据包括至少一个字段以及每个字段对应
的字段值。示例性的,以该消息数据包括两个字段和对应的字段值为例,可表示为{“amount”:“2”,“name”:“hehe”},其中“amount”表示字段1,“name”表示字段2,字段1“amount”对应的字段值为“2”,字段2“name”对应的字段值为“hehe”。
53.步骤s102、根据所述第一消息数据中每个字段的位置顺序、预设索引长度以及所述每个字段对应的字段值占用的字节大小生成索引信息。
54.在一个实施例中,对待发送的第一消息数据进行索引信息的添加。该索引信息用于表征第一消息数据中每个字段对应字段值的位置和占用字节的大小。
55.其中,每个字段的位置顺序可以是第一消息数据中依次记录的字段的位置对应的顺序,以前述示例性的第一消息数据为例,字段1“amount”对应位置顺序为位置1,字段2“name”对应的位置顺序为位置2。需要说明的是,该种示例为第一消息数据中由前至后依次记录的字段的排序顺序,还可以是由后至前依次记录的字段的倒序排序顺序,具体的排序方式不做限定。
56.其中,预设索引长度指每个字段值对应的索引的长度。示例性的,该预设索引长度可以是8个字节。当然,该预设索引长度可根据不同类型的第一消息数据进行适应性调整如调整为4个字节或16个字节等,本技术不做限定。其中,该索引信息包括第一消息数据中每个字段值的位置数据以及占用的字节大小。位置数据用于表征字段值的具体位置,占用的字节大小表征该字段值进行表示时占用的字节的大小。
57.其中,每个字段对应有一字段值,如前述示例中的字段1“amount”对应的字段值为“2”,字段2“name”对应的字段值为“hehe”,不同的字段值由于具体内容的不同导致其占用字节的大小存在差异,字段值越复杂对其进行表征时其占用的字节相应的越大,如表征字段值中的一个数字占用1个字节,一个英文字符占用1个字节,一个汉字占用2个字节等。
58.在一个实施例中,根据第一消息数据中每个字段的位置顺序、预设索引长度以及每个字段对应的字段值占用的字节大小来生成索引信息以用于数据接收段接收时,根据该索引信息直接查询到对应的字段值进行相应处理。
59.具体的,生成索引信息的方式可以是:对第一消息数据进行遍历,确定第一消息数据中包含的字段总数,根据预设索引长度以及字段总数确定索引总长度,再根据索引总长度以及每个字段的位置顺序和字段值占用的字节大小依次确定每个字段值对应的索引信息。以第一消息数据为两个字段为例,也可以是:根据预设索引长度确定第一字段对应的字段值的起始位置,根据第一字段对应的字段值占用的字节大小确定索引信息中所述字段值占用的字节大小,根据第一字段对应的字段值的起始位置、占用的字节大小以及预设索引长度确定第二字段对应的字段值的起始位置,进一步的,根据第二字段对应的字段值占用的字节大小确定索引信息中该第二字段对应字段值占用的字节大小。
60.在一个实施例中,第一消息数据中每个字段的位置顺序可以在第一消息数据生成时,通过对每个字段进行顺序的标记来表征。以字段{“amount”:“2”,“name”:“hehe”}为例,字段“amount”可标记为序号1,字段“name”可标记为序号2,该标记的具体实现可以是通过java注解或者以xml文件的方式处理。
61.步骤s103、将所述索引信息与所述第一消息数据中的字段值进行合并生成第二消息数据,发送所述第二消息数据。
62.在一个实施例中,将确定出的第一消息数据每个字段值对应的索引信息与第一消
息数据中的字段值进行合并以生成第二消息数据,对该第二消息数据进行发送。具体的合并方式可以是将所有字段值对应的总的索引信息作为整体与每个字段值进行合并,也可以是将每个字段值对应的索引信息和相应的字段值依次进行合并以得到第二消息数据。其中,该第二消息数据仅包含有字段值和索引信息,无需包含字段值对应的字段,以减少数据存储量即数据传输的数据量。
63.在一个实施例中,可以是直接发送第二消息数据至不同的数据接收端,也可以是将该第二消息数据发送至消息队列,以用于数据接收端从该消息队列中获取第二消息数据。
64.由上述方案可知,在需要发送第一消息数据时,确定第一消息数据中字段值对应的索引信息,将索引信息和字段值组合为第二消息数据进行发送,即将原有的包含字段和字段值的第一消息数据转换为包含索引信息和字段值的第二消息数据,该种消息数据的处理机制,可以是使数据接收端根据该第二消息中的索引信息来确定对应的字段值,无需数据接收端对消息字段进行转换,减少了额外的字段解析流程,同时在数据发送过程中仅需存储索引信息和字段值,无需对字段进行存储,显著提高了数据传输和存储效率。
65.图2为本发明实施例提供的另一种消息数据处理方法的流程图,给出了一种具体的生成索引信息的方案。如图2所示,技术方案具体如下:
66.步骤s201、获取第一消息数据,所述第一消息数据包括至少一个字段以及和所述至少一个字段对应的字段值。
67.步骤s202、对所述第一消息数据进行遍历,确定所述第一消息数据中包含的字段总数,根据所述预设索引长度以及所述字段总数确定索引总长度。
68.在一个实施例中,确定第一消息数据中字段值的索引信息时,对该第一消息数据进行遍历以确定第一消息数据中包含的字段总数,以第一消息数据包含5个字段,预设索引长度为8个字节为例,其对应的索引总长度为字段总数与预设索引长度的乘积,即40个字节。
69.步骤s203、根据所述索引总长度以及每个字段的位置顺序和字段值占用的字节大小依次确定每个字段值对应的索引信息。
70.具体的,该步骤s203可包括如下步骤,以图2a所示,图2a为本发明实施例提供的确定索引信息的方法的流程图:
71.步骤s2031、根据所述索引总长度确定第一字段对应的字段值的起始位置。
72.其中,以索引总长度为40个字节为例,在顺序的对每个字段的字段值进行存储时,第一字段对应的起始位置为第41个字节。即第一字段对应的字段值的起始位置为索引总长度之后的一个字节。当然,需要说明的是该种确定第一字段对应的字段值的起始位置的方式为索引信息作为一个整体,紧邻添加至字段值之前的合并方式,该种紧邻添加的方式可以节省数据存储空间,当然在其它特殊情况下也可采用非紧邻添加的方式,对于是否紧邻添加不做限定。
73.步骤s2032、根据所述第一字段对应的字段值占该用的字节大小确定所述索引信息中所述字段值占用的字节大小。
74.其中,索引信息中除了包含每个字段值对应的起始位置以外,还包含由每个字段值所占用的字节大小,以用于数据接收端在获取到该索引信息后,根据索引信息中记录的
字段值的起始位置以及该字段值占用的字节大小来读取该具体的字段值内容。
75.其中,索引信息中记录的字段值占用的字节大小根据当前读取到的字段值占用字节的大小来确定,如以第一消息数据包含两个字段为例,字段1对应字段值占用的字节大小示例性的为7个字节,字段2对应字段值占用的字节大小示例性的为15个字节。在一个实施例中,以预设索引长度即每个字段值对应的索引长度为8个字节为例,其中的前4个字节用以记录字段值的起始位置,后4个字节用以记录字段值占用的字节大小。
76.步骤s2033、根据所述第一字段对应的字段值的起始位置以及占用的字节大小确定第二字段对应的字段值的起始位置。
77.在一个实施例中,确定第一字段对应字段值的索引信息后,相应的确定第二字段对应字段值的索引信息,依次类推知道确定完毕第一消息数据中包含的所有字段值的索引信息。具体的,以第一消息数据包含5个字段,索引总长度为40个字节为例,在确定出第一字段对应字段值的索引信息中,其起始位置为第41个字节,占用字节大小为7个字节为例,第二字段对应字段值的起始位置为41 7即48,同理第二对应字段值的占用字节大小为当前读取到的该字段值占用字节的大小,如15个字节。即确定出的第二字段对应字段值的索引信息中其记录的起始位置为41,占用字节大小为15。以此类推求取剩余字段对应字段值的索引信息。
78.步骤s204、将所述索引信息与所述第一消息数据中的字段值进行合并生成第二消息数据,发送所述第二消息数据。
79.在一个实施例中,以索引消息与字段值的合并方式为将索引信息整体与第一消息数据中的字段值进行合并为例,如图2b所示,图2b为本发明实施例提供的一种索引信息与字段值合并得到的第二消息数据的示意图。以第一消息数据包括两个字段为例,将得到的字段值的索引信息与字段值合并生成的第二消息数据如图2b所示。
80.由上述方案可知,该种将第一消息数据进行转换得到的第二消息数据,在数据接收端对其进行处理时,无需数据接收端对消息字段进行转换,减少了额外的字段解析流程,同时在数据发送过程中仅需存储索引信息和字段值,无需对字段进行存储,显著提高了数据传输和存储效率。
81.图3为本发明实施例提供的另一种消息数据处理方法的流程图,给出了另一种生成索引信息的方案。如图3所示,技术方案具体如下:
82.步骤s301、获取第一消息数据,所述第一消息数据包括至少一个字段以及和所述至少一个字段对应的字段值。
83.步骤s302、根据预设索引长度确定第一字段对应的字段值的起始位置。
84.在一个实施例中,以预设索引长度为8个字节为例,其中前4个字节表征字段值的起始位置,后4个字节表征字段值的占用字节大小。该第一字段对应的字段值的起始位置为第9个字节,即预设索引长度加1个字节位置为该字段值的起始位置。
85.步骤s303、根据所述第一字段对应的字段值占用的字节大小确定所述索引信息中所述字段值占用的字节大小。
86.示例性的,该第一字段对应的字段值占用的字节大小为7个字节。
87.步骤s304、根据所述第一字段对应的字段值的起始位置、占用的字节大小以及预设索引长度确定第二字段对应的字段值的起始位置。
88.在一个实施例中,确定完毕第一字段对应字段值的索引信息后,相应的依次确认第二字段、第三字段直至最后一个字段对应的索引消息。其中,第二字段对应的字段值的起始位置以前述示例为例,其为第一字段对应的字段值的起始位置、占用的字节大小以及预设索引长度之后,即9 7 8=24。示例性的,该该第二字段对应的字段值占用的字节大小为15个字节。依次类推,确定剩余字段对应字段值的索引信息。
89.步骤s305、将所述索引信息与所述第一消息数据中的字段值进行合并生成第二消息数据,发送所述第二消息数据。
90.在一个实施例中,以索引消息与字段值的合并方式为将所述索引信息中每个字段值的起始位置以及占用的字节大小与对应的字段值进行合并为例,如图3a所示,图3a为本发明实施例提供的另一种索引信息与字段值合并得到的第二消息数据的示意图。以第一消息数据包括两个字段为例,将得到的字段值的索引信息与字段值合并生成的第二消息数据如图3a所示。
91.由上述方案可知,该种将第一消息数据进行转换得到的第二消息数据,在数据接收端对其进行处理时,无需数据接收端对消息字段进行转换,减少了额外的字段解析流程,同时在数据发送过程中仅需存储索引信息和字段值,无需对字段进行存储,显著提高了数据传输和存储效率。
92.图4为本发明实施例提供的另一种消息数据处理方法的流程图,可应用于数据接收端,该方法可以由计算设备如台式机、笔记本、服务器、平板电脑和手机终端等设备来执行。如图4所示,技术方案具体如下:
93.步骤s401、接收第二消息数据,所述第二消息数据包括索引信息和至少一个字段值,所述索引信息包括每个字段值的位置数据以及占用的字节大小。
94.步骤s402、确定待读取字段在消息数据中的位置顺序,根据所述位置顺序查询所述索引信息,得到对应的字段值的位置数据以及占用的字节大小。
95.现有技术中,为了提高数据发送效率,数据发送端发送的消息数据可以同时被多个数据接收端进行处理,但是由于不同数据接收端可能对应不同的业务系统,其对于同一字段具体表征内容存在差异,如订单系统发送了一条消息数据为{"orderamount":"5.00"},对账系统在处理该条消息数据时,需要将字段"orderamount"转化字段"amount",之后进行对账处理,而消息通知系统需要将字段"orderamount"转化字段"notifyamount",之后进行消息通知。其需要额外的解析开销。
96.在一个实施例中,接收到的第二消息数据包括索引信息和至少一个字段值,其中,索引信息包括每个字段值的位置数据以及占用的字节大小。在需要获取对应字段的字段值时,确定待读取字段在消息数据中的位置顺序。其中,该待读取字段即为需要确定字段值的字段,其在消息数据中的位置顺序为数据接收端中存储的固定格式标准下,待读取字段在消息数据中所有字段的位置顺序。以消息数据包括2个字段为例,其分为"notifyamount"和"notifyname",当需要读取"notifyname"字段的字段值时,其作为待读取字段,相应的其位置顺序为位置2(以消息数据中记录的字段的记录顺序为例顺序的进行标识)。在确定出位置顺序后,基于该确定出的位置顺序在第二消息数据中查询对应位置的索引信息。需要说明的时,第二消息数据中每个字段的顺序位置和数据接收端定义的字段的位置顺序保持一致。
97.步骤s403、根据查询得到的字段值的位置数据以及占用的字节大小在所述第二消息数据中读取对应的字段值确定为所述待读取字段的字段值。
98.其中,在确定出待读取字段的位置顺序后,在第二消息数据的索引信息中查询对应位置顺序的索引信息,如查询位置2的索引信息,根据该索引信息中记录的字段值的起始位置和占用字节大小进行对应字段值具体内容的读取,以确定为该待读取字段所对应的字段值。
99.由上述方案可知,在接收到第二消息数据后,通过对该序列化的第二消息数据中的索引信息进行查询得到需要读取的待读取字段的字段值,无需进行字段的不同形式下的转换,减少了额外的字段解析流程,同时在数据发送过程中仅需存储索引信息和字段值,无需对字段进行存储,显著提高了数据传输和存储效率。
100.图5为本发明实施例提供的另一种消息数据处理方法的流程图,可应用于消息数据的中转处理环节,该方法可以由计算设备如服务器来执行。如图5所示,技术方案具体如下:
101.步骤s501、接收第一消息数据,所述第一消息数据包括至少一个字段以及和所述至少一个字段对应的字段值。
102.步骤s502、根据所述第一消息数据中每个字段的位置顺序、预设索引长度以及所述每个字段对应的字段值占用的字节大小生成索引信息。
103.步骤s503、将所述索引信息与所述第一消息数据中的字段值进行合并生成第二消息数据。
104.其中,该第一消息数据可以是数据发送端发送的消息数据。在一个实施例中,对第一消息数据的转换通过消息数据的中转处理环节进行转换,转换为第二消息数据。具体的,第一消息数据转换为包含索引信息和字段值的第二消息数据的方式如前述示例所述,此处不在赘述。
105.示例性的,可以对接收到的第一消息数据依次进行转换后以消息队列的形式保存转换后得到的第二消息数据,以用于数据接收端进行获取并相应处理。
106.由上述方案可知,通过对接收到的原始的第一消息数据进行转换,转化为包含索引信息的消息数据后用于数据接收端进行消费,该消息数据的处理机制使得数据接收端可以通过查询索引信息直接确定字段的字段值,无需字段转换,减少了额外的字段解析流程,同时在数据发送过程中仅需存储索引信息和字段值,无需对字段进行存储,显著提高了数据传输和存储效率。
107.图6为本发明实施例提供的一种消息数据处理装置的结构框图,该装置用于执行上述图1至图3实施例提供的消息数据处理方法,具备执行方法相应的功能模块和有益效果。如图6所示,该装置具体包括:消息数据获取模块101、索引信息生成模块102、信息合并模块103和消息数据发送模块104,其中,
108.消息数据获取模块101,用于获取第一消息数据,所述第一消息数据包括至少一个字段以及和所述至少一个字段对应的字段值;
109.索引信息生成模块102,用于根据所述第一消息数据中每个字段的位置顺序、预设索引长度以及所述每个字段对应的字段值占用的字节大小生成索引信息,所述索引信息包括所述第一消息数据中每个字段值的位置数据以及占用的字节大小;
110.信息合并模块103,用于将所述索引信息与所述第一消息数据中的字段值进行合并生成第二消息数据;
111.消息数据发送模块104,用于发送所述第二消息数据。
112.由上述方案可知,通过对原始的第一消息数据进行转换,转化为包含索引信息的消息数据后进行发送,该消息数据的处理机制使得在后续的消息数据的解析过程中,可以通过查询索引信息直接确定字段的字段值,无需字段转换,减少了额外的字段解析流程,同时在数据发送过程中仅需存储索引信息和字段值,无需对字段进行存储,显著提高了数据传输和存储效率。
113.在一个可能的实施例中,所述索引信息生成模块102具体用于:
114.对所述第一消息数据进行遍历,确定所述第一消息数据中包含的字段总数,根据所述预设索引长度以及所述字段总数确定索引总长度;
115.根据所述索引总长度以及每个字段的位置顺序和字段值占用的字节大小依次确定每个字段值对应的索引信息。
116.在一个可能的实施例中,所述索引信息生成模块102具体用于:
117.根据所述索引总长度确定第一字段对应的字段值的起始位置;
118.根据所述第一字段对应的字段值占用的字节大小确定所述索引信息中所述字段值占用的字节大小;
119.根据所述第一字段对应的字段值的起始位置以及占用的字节大小确定第二字段对应的字段值的起始位置。
120.在一个可能的实施例中,所述信息合并模块103具体用于:
121.将所述索引信息整体与所述第一消息数据中的字段值进行合并。
122.在一个可能的实施例中,所述索引信息生成模块102具体用于:
123.根据预设索引长度确定第一字段对应的字段值的起始位置;
124.根据所述第一字段对应的字段值占用的字节大小确定所述索引信息中所述字段值占用的字节大小;
125.根据所述第一字段对应的字段值的起始位置、占用的字节大小以及预设索引长度确定第二字段对应的字段值的起始位置。
126.在一个可能的实施例中,所述信息合并模块103具体用于:
127.将所述索引信息中每个字段值的起始位置以及占用的字节大小与对应的字段值进行合并。
128.图7为本发明实施例提供的另一种消息数据处理装置的结构框图,该装置用于执行上述图4实施例提供的消息数据处理方法,具备执行方法相应的功能模块和有益效果。如图7所示,该装置具体包括:消息数据接收模块201、索引信息查询模块202和字段值读取模块203,其中,
129.消息数据接收模块201,用于接收第二消息数据,所述第二消息数据包括索引信息和至少一个字段值,所述索引信息包括每个字段值的位置数据以及占用的字节大小;
130.索引信息查询模块202,用于确定待读取字段在消息数据中的位置顺序,根据所述位置顺序查询所述索引信息,得到对应的字段值的位置数据以及占用的字节大小;
131.字段值读取模块203,用于根据查询得到的字段值的位置数据以及占用的字节大
小在所述第二消息数据中读取对应的字段值确定为所述待读取字段的字段值。
132.由上述方案可知,在接收到第二消息数据后,通过对该序列化的第二消息数据中的索引信息进行查询得到需要读取的待读取字段的字段值,无需进行字段的不同形式下的转换,减少了额外的字段解析流程,同时在数据发送过程中仅需存储索引信息和字段值,无需对字段进行存储,显著提高了数据传输和存储效率。
133.图8为本发明实施例提供的另一种消息数据处理装置的结构框图,该装置用于执行上述图5实施例提供的消息数据处理方法,具备执行方法相应的功能模块和有益效果。如图8所示,该装置具体包括:消息数据接收模块301、索引信息生成模块302和信息合并模块303,其中,
134.消息数据接收模块301,用于接收第一消息数据,所述第一消息数据包括至少一个字段以及和所述至少一个字段对应的字段值;
135.索引信息生成模块302,用于根据所述第一消息数据中每个字段的位置顺序、预设索引长度以及所述每个字段对应的字段值占用的字节大小生成索引信息,所述索引信息包括所述第一消息数据中每个字段值的位置数据以及占用的字节大小;
136.信息合并模块303,用于将所述索引信息与所述第一消息数据中的字段值进行合并生成第二消息数据。
137.由上述方案可知,通过对接收到的原始的第一消息数据进行转换,转化为包含索引信息的消息数据后用于数据接收端进行消费,该消息数据的处理机制使得数据接收端可以通过查询索引信息直接确定字段的字段值,无需字段转换,减少了额外的字段解析流程,同时在数据发送过程中仅需存储索引信息和字段值,无需对字段进行存储,显著提高了数据传输和存储效率。
138.图9为本发明实施例提供的一种消息数据处理设备的结构示意图,如图9所示,该设备包括处理器401、存储器402、输入装置403和输出装置404;设备中处理器401的数量可以是一个或多个,图9中以一个处理器401为例;设备中的处理器401、存储器402、输入装置403和输出装置404可以通过总线或其他方式连接,图9中以通过总线连接为例。存储器402作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的消息数据处理方法对应的程序指令/模块。处理器401通过运行存储在存储器402中的软件程序、指令以及模块,从而执行设备的各种功能应用以及数据处理,即实现上述的消息数据处理方法。输入装置403可用于接收输入的数字或字符信息,以及产生与设备的用户设置以及功能控制有关的键信号输入。输出装置404可包括显示屏等显示设备。
139.本发明实施例还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种上述实施例描述的消息数据处理方法。
140.值得注意的是,上述消息数据处理装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明实施例的保护范围。
141.注意,上述仅为本发明实施例的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明实施例不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明实施例的保护范围。因此,虽然通过以上
实施例对本发明实施例进行了较为详细的说明,但是本发明实施例不仅仅限于以上实施例,在不脱离本发明实施例构思的情况下,还可以包括更多其他等效实施例,而本发明实施例的范围由所附的权利要求范围决定。
转载请注明原文地址:https://doc.8miu.com/index.php/read-1722473.html