System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种多线程序列化数据传输处理方法及装置制造方法及图纸_技高网

一种多线程序列化数据传输处理方法及装置制造方法及图纸

技术编号:39999910 阅读:6 留言:0更新日期:2024-01-09 03:15
本说明书涉及数据传输技术领域,提供了一种多线程序列化数据传输处理方法及装置。该方法包括:获取目标对象;将所述目标对象拆分为多个第一子对象并确定每个第一子对象的定位信息;在所述每个第一子对象中添加各自的定位信息,得到对应的第二子对象;利用多线程对所述第二子对象进行并行序列化处理;将序列化处理结果传输至目标接收端。通过本发明专利技术实施例,可增大结构体对象的传输效率,提升远程调用服务和应用的性能。

【技术实现步骤摘要】

本说明书涉及数据传输,尤其是涉及一种多线程序列化数据传输处理方法及装置


技术介绍

1、分布式系统之间通信可以利用基于远程调用方式实现,远程过程调用(remoteprocedure call,rpc)是指不同机器上运行的进程之间的相互通信,不同于本地调用的是:

2、(1)本地调用属于进程内调用,程序直接通过函数名来调用函数,而函数名可以看成函数在内存中的地址,比如,调用函数f(),编译器会帮我们找到函数f()相应的内存地址;但在rpc中,由于不同进程内的地址空间不同,因此仅仅利用函数名来调用相应的服务是行不通的,所以所有函数需要有一个调用id以实现唯一标识,一个机器在远程过程调用时必须附上该调用id,此外还需要建立并维护函数与调用id的映射表。

3、(2)本地调用是通过内存来传递参数;而调用方调用rpc时,需要向被调用方传输调用id和对应的函数参数(统称为结构体对象),进程分布在不同的机器上,使用的是不同机器的内存,因此不能通过内存来传递参数,而网络协议传输的内容是二进制流,无法直接传输参数的类型,因此这就需要调用方把参数先转成一个二进制流,传到被调用方后,被调用方再把二进制流转换成自己能读取的格式。调用方将参数转换成二进制流,通常称作序列化,被调用方对二进制的转换通常称作反序列化。同理,被调用方将结果返回给调用方,也需要有序列化和反序列化的过程。也就是说,rpc与本地调用相比,参数的传递需要进行序列化和反序列化操作。现有技术使用的都是将一个或多个结构体对象进行整体序列化、反序列化处理,而且序列化、反序列化都是在一个线程上进行的,这种将对象转换成可存储与传输的二进制方式效率不够高效,资源利用率不够充分,当对象过大时,耗时会比较长,导致远程调用服务和应用的性能不够高效。


技术实现思路

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、确定模块,用于利用从第二子对象中提取出的定位信息,确定各第一子对象的拼接顺序;

37、合并模块,用于根据所述拼接顺序合并所述第一子对象,从而得到目标对象。

38、另一方面,本说明书的一些实施例还提供了一种计算机设备,包括存储器、处理器、以及存储在所述存储器上的计算机程序,所述计算机程序被所述处理器运行时,执行上述方法的指令。

39、另一方面,本说明书的一些实施例还提供了一种计算机存储介质,其上存储有计算机程序,所述计算机程序被计算机设备的处理器运行时,执行上述方法的指令。

40、另一方面,本说明书的一些实施例还提供了一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被计算机设备的处理器运行时,执行上述方法的指令。

41、本说明书的一些实施例提供的一个或者多个技术方案,至少具有如下的技术效果:

42、本说明书的实施例在自动获取到目标对象后将其拆分为多个第一子对象,将传输一个目标对象的问题转化为传输多个更小的子对象的问题,再在第一子对象中添加对应的定位信息得到对应的第二子对象,以确定后续合并拆分后的子对象的拼接顺序,还能提高传输安全性,并利用多线程并行序列化处理多个第二子对象,提高了将序列化处理本文档来自技高网...

【技术保护点】

1.一种多线程序列化数据传输处理方法,其特征在于,应用于调用方,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述将所述目标对象拆分为多个第一子对象并确定每个第一子对象的定位信息,包括:

3.根据权利要求1所述的方法,其特征在于,所述在所述每个第一子对象中添加各自的定位信息,包括,在所述每个第一子对象的第一位置和第二位置分别添加各自的定位信息中的第一定位标识和第二定位标识。

4.根据权利要求1所述的方法,其特征在于,所述将序列化处理结果传输至目标接收端后,进一步包括:

5.一种多线程序列化数据传输处理方法,其特征在于,应用于被调用方,所述方法包括:

6.一种多线程序列化数据传输处理装置,其特征在于,应用于调用方,所述装置包括:

7.一种多线程序列化数据传输处理装置,其特征在于,应用于被调用方,所述装置包括:

8.一种计算机设备,包括存储器、处理器、以及存储在所述存储器上的计算机程序,其特征在于,所述计算机程序被所述处理器运行时,执行根据权利要求1-5任意一项所述方法的指令。

>9.一种计算机存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被计算机设备的处理器运行时,执行根据权利要求1-5任意一项所述方法的指令。

10.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机程序,所述计算机程序被处理器运行时,执行根据权利要求1-5任意一项所述方法的指令。

...

【技术特征摘要】

1.一种多线程序列化数据传输处理方法,其特征在于,应用于调用方,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述将所述目标对象拆分为多个第一子对象并确定每个第一子对象的定位信息,包括:

3.根据权利要求1所述的方法,其特征在于,所述在所述每个第一子对象中添加各自的定位信息,包括,在所述每个第一子对象的第一位置和第二位置分别添加各自的定位信息中的第一定位标识和第二定位标识。

4.根据权利要求1所述的方法,其特征在于,所述将序列化处理结果传输至目标接收端后,进一步包括:

5.一种多线程序列化数据传输处理方法,其特征在于,应用于被调用方,所述方法包括:

6.一种多线程序列化数据...

【专利技术属性】
技术研发人员:李晓巍马融孙炎森徐晓剑李春兰李明
申请(专利权)人:中信银行股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1