CN114500647B - 一种数据传输方法及装置 - Google Patents
一种数据传输方法及装置 Download PDFInfo
- Publication number
- CN114500647B CN114500647B CN202210056017.3A CN202210056017A CN114500647B CN 114500647 B CN114500647 B CN 114500647B CN 202210056017 A CN202210056017 A CN 202210056017A CN 114500647 B CN114500647 B CN 114500647B
- Authority
- CN
- China
- Prior art keywords
- data
- micro
- service
- response
- request
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本申请实施例提供了一种数据传输方法及装置,涉及互联网技术领域,用以减少在微服务的调用过程中,数据转换消耗的时间,提高系统的响应速度。该方法中,首先第一微服务接收来自第二微服务的第一请求数据,并创建第一实体对象。第一微服务反序列化第一请求数据中的第一关心数据,得到第二关心数据,并将第二关心数据和第一扩展数据存储至第一实体对象。其中,第一扩展数据为第一请求数据中除第一关心数据以外的数据。第一微服务根据第二关心数据和第一扩展数据生成第一响应数据,向第二微服务发送第一响应数据。
Description
技术领域
本申请涉及互联网技术领域,特别涉及一种数据传输方法及装置。
背景技术
在微服务系统中,执行一次请求时,通常需要多个微服务参与。因此,执行一次请求时,会由多个不同的微服务依次执行,因此链路比较长。而且随着系统复杂度进一步提升,请求的链路长度也会随之增加。此时,微服务之间的相互调用并对接收到的数据进行转换和处理所消耗的时间对于整个链路所消耗的总时间来说,就变得尤为重要。
现有技术中,在请求链路中一个微服务在调用其他微服务后,为了在微服务内部方便的处理数据,会将获取到的便于传输的序列化的数据转换为实体对象,但由于随着链路长度的增加,数据量也随之增加,导致数据转换速度慢,将数据转换所消耗的时间反映到整个请求链路上,由于叠加效应,数据转换所消耗的时间过长。
因此现有技术中存在调用微服务时数据转换数据量大,所消耗的时间过长,从而使系统响应变的缓慢的问题。
发明内容
本申请实施例提供了一种数据传输方法及装置,用以减少在微服务的调用过程中,数据转换消耗的时间。
第一方面,本申请实施例提供了一种数据传输方法,包括:
第一微服务接收来自第二微服务的第一请求数据;所述第一微服务和所述第二微服务不相同;所述第一微服务创建第一实体对象;所述第一微服务反序列化所述第一请求数据中的第一关心数据,得到第二关心数据;所述第一微服务将所述第二关心数据和所述第一扩展数据存储至所述第一实体对象;所述第一扩展数据为所述第一请求数据中除第一关心数据以外的数据;所述第一微服务根据所述第二关心数据和所述第一扩展数据生成第一响应数据,向所述第二微服务发送所述第一响应数据。
基于上述方案,通过只对第一请求数据中的第一关心数据进行反序列化,可以快速的完成数据的反序列化,并且通过根据第二关心数据和第一扩展数据生成第一响应数据的方式,可以实现在保持数据完整性的基础上,将微服务之间相互调用时,数据反序列化对整个调用链路耗时影响大大降低,提高系统的响应速度,提升用户体验。
一种可能的实现方式中,所述第一微服务根据所述第二关心数据和所述第一扩展数据生成第一响应数据,具体包括:当所述第一微服务不需要调用第三微服务时,所述第一微服务对所述第二关心数据进行处理,得到第三关心数据;所述第三微服务与所述第一微服务和所述第二微服务不相同;所述第一微服务序列化所述第三关心数据;所述第一微服务将所述第一扩展数据和序列化后的所述第三关心数据合并,得到所述第一响应数据。
基于上述方案,在不需要调用第三微服务时,可以直接根据第三关心数据和第一扩展数据得到第一响应数据,可以实现在保持数据完整性的基础上,将微服务之间相互调用时,在很大程度上降低了数据反序列化对整个调用链路耗时影响,提高了系统的响应速度。
一种可能的实现方式中,所述第一微服务根据所述第二关心数据和所述第一扩展数据生成第一响应数据,具体包括:当所述第一微服务需要调用所述第三微服务时,所述第一微服务对所述第二关心数据进行处理,得到第四关心数据;所述第三微服务与所述第一微服务和所述第二微服务不相同;所述第一微服务序列化所述第四关心数据;所述第一微服务将所述第一扩展数据和序列化后的所述第四关心数据合并,得到第二请求数据;所述第一微服务向所述第三微服务发送所述第二请求数据,得到所述第一响应数据。
基于上述方案,在需要调用第三微服务时,可以根据序列化后的第四关心数据和第一扩展数据得到第二请求数据,实现对第三微服务的调用。由于调用第三微服务的过程中只对第四关心数据进行序列化,所以可以快速的完成实体对象的序列化操作,又由于减少了微服务调用时实体对象序列化的时间,因此可以提高系统的响应速度。
一种可能的实现方式中,所述第一微服务向所述第三微服务发送所述第二请求数据,得到所述第一响应数据,具体包括:所述第一微服务接收来自所述第三微服务的第二响应数据;所述第一微服务创建第二实体对象;所述第一微服务反序列化所述第二响应数据中的第五关心数据,得到第六关心数据;所述第一微服务将第二扩展数据和所述第六关心数据存储至所述第二实体对象;所述第二扩展数据为所述第二响应数据中除所述第五关心数据以外的数据;所述第一微服务对所述第六关心数据进行处理,得到第七关心数据;所述第一微服务序列化所述第七关心数据;所述第一微服务将所述第二扩展数据和序列化后的所述第七关心数据合并,得到所述第一响应数据。
基于上述方案,第一微服务接收来自第三微服务发送的第二响应数据后,只对第二响应数据中的第五关心数据进行反序列化以及处理,可以快速的完成数据的反序列化操作,从而提高微服务调用的效率。
一种可能的实现方式中,所述第一微服务向所述第二微服务发送第一响应数据之前,还包括:所述第一微服务按照预设规则将所述第一扩展数据和所述第二关心数据合并得到所述第一响应数据;其中,所述预设规则包括:当所述第一微服务提供的服务需要加密时,所述第一响应数据中数据的顺序与所述第一请求数据中数据的顺序相同。
基于上述方案,通过设置预设规则可以使得系统可以实现需要加密的业务,可以提高数据传输的安全性。
第二方面,本申请实施例提供了一种数据传输装置,应用于第一微服务,包括:
收发单元,被配置为用于,接收来自第二微服务的第一请求数据;所述第一微服务和所述第二微服务不相同;
处理单元,被配置为用于:创建第一实体对象;反序列化所述第一请求数据中的第一关心数据,得到第二关心数据;将所述第二关心数据和所述第一扩展数据存储至所述第一实体对象;所述第一扩展数据为所述第一请求数据中除第一关心数据以外的数据;根据所述第二关心数据和所述第一扩展数据生成第一响应数据。
所述收发单元,还被配置为用于,向所述第二微服务发送所述第一响应数据。
一种可能的实现方式中,所述处理单元配置为用于根据所述第二关心数据和所述第一扩展数据生成第一响应数据时,具体配置为用于:当所述第一微服务不需要调用第三微服务时,对所述第二关心数据进行处理,得到第三关心数据;所述第三微服务与所述第一微服务和所述第二微服务不相同;序列化所述第三关心数据;将所述第一扩展数据和序列化后的所述第三关心数据合并,得到所述第一响应数据。
一种可能的实现方式中,所述处理单元根据所述第二关心数据和所述第一扩展数据生成第一响应数据时,具体被配置为用于:当所述第一微服务需要调用所述第三微服务时,对所述第二关心数据进行处理,得到第四关心数据;所述第三微服务与所述第一微服务和所述第二微服务不相同;序列化所述第四关心数据;将所述第一扩展数据和序列化后的所述第四关心数据合并,得到第二请求数据;向所述第三微服务发送所述第二请求数据,得到所述第一响应数据。
一种可能的实现方式中,所述收发单元向所述第三微服务发送所述第二请求数据,得到所述第一响应数据时,具体被配置为用于:接收来自所述第三微服务的第二响应数据;所述处理单元具体用于创建第二实体对象;反序列化所述第二响应数据中的第五关心数据,得到第六关心数据;将第二扩展数据和所述第六关心数据存储至所述第二实体对象;所述第二扩展数据为所述第二响应数据中除所述第五关心数据以外的数据;对所述第六关心数据进行处理,得到第七关心数据;序列化所述第七关心数据;将所述第二扩展数据和序列化后的所述第七关心数据合并,得到所述第一响应数据。
一种可能的实现方式中,所述处理单元在所述收发单元向所述第二微服务发送第一响应数据之前,还被配置为用于:按照预设规则将所述第一扩展数据和所述第二关心数据合并得到所述第一响应数据;其中,所述预设规则包括:当所述第一微服务提供的服务需要加密时,所述第一响应数据中数据的顺序与所述第一请求数据中数据的顺序相同。
第三方面,本申请实施例提供了一种电子设备,包括:
存储器,用于存储计算机指令;
处理器,与所述存储器连接,用于执行所述存储器中的计算机指令,且在执行所述计算机指令时实现如第一方面或第二方面中所述的方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,包括:
所述计算机可读存储介质存储有计算机指令,当所述计算机指令在计算机上运行时,使得计算机执行如第一方面或第二方面中任一项所述的方法。
上述第二方面至第四方面中的各个方面以及各个方面可能达到的技术效果请参照上述针对第一方面或第一方面中的各种可能方案可以达到的技术效果说明,这里不再重复赘述。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例。
图1为本申请实施例提供的微服务系统结构示意图;
图2为本申请实施例提供的一种数据传输方法的示例性流程图之一;
图3为本申请实施例提供的一种数据传输方法的示例性流程图之一;
图4为本申请实施例提供的一种数据传输装置示意图;
图5为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
为了便于理解本申请实施例提供的技术方案,下面介绍本申请实施例涉及的专业术语。
(1)序列化,是将实体对象的状态信息转换为可以存储或传输的字节序列的过程。
(2)反序列化,把可以存储或传输的字节序列转换成实体对象的状态信息的过程。
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请技术方案的一部分实施例,而不是全部的实施例。基于本申请文件中记载的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请技术方案保护的范围。
本申请实施例中的术语“第一”和“第二”是用于区别不同对象,而非用于描述特定顺序。此外,术语“包括”以及它们任何变形,意图在于覆盖不排他的保护。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。本申请中的“多个”可以表示至少两个,例如可以是两个、三个或者更多个,本申请实施例不做限制。
另外,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,在不做特别说明的情况下,一般表示前后关联对象是一种“或”的关系。
目前,在请求链路中一个微服务在调用其他微服务后,为了在微服务内部方便的处理数据,会将获取到的便于传输的序列化的数据转换为实体对象。现有技术中,如果定义的实体对象只包含微服务关心的数据,则在将便于传输的序列化的数据转换为实体对象后,会丢失获取到的数据中的其他数据。如果定义的实体对象包括全部数据,则会出现由于数据量过大导致的数据转换速度慢的问题,并且随着链路长度的增加,数据量也随之增加,将数据转换所消耗的时间反映到整个请求链路上,由于叠加效应,数据转换所消耗的时间就会过长。因此在微服务的调用过程中,现有技术存在时数据转换数据量大,所消耗的时间过长,从而使系统响应变的缓慢,影响用户体验的问题亟待解决。
有鉴于此,本申请提供了一种数据传输方法及装置。该方法中:在第一微服务接收到来自第二微服务的请求数据之后,将请求数据分为关心数据和扩展数据,并将关心数据反序列化后进行处理,来实现对请求数据的处理。然后返回包括处理后的关心数据和扩展数据的响应数据,完成调用。通过本申请提供的数据传输方法可以减少在微服务的调用过程中,数据转换消耗的时间,提高系统的响应速度,提升用户体验。
参见图1为本申请实施例提供的微服务系统结构示意图。微服务系统100中可以包括微服务1、微服务2……微服务n等n个微服务,不同的微服务用于执行微服务系统100中不同的业务,n为大于或等于1的整数。在一个示例中,n个微服务之间可以根据业务需求以及实际情况进行相互调用,例如微服务1可以调用微服务2至微服务n中的任一个微服务,微服务2也可以调用微服务1以及微服务3至微服务n的任一个微服务,以此类推。另一个示例中,n个微服务之间可以根据业务需求以及实际情况依次调用,例如微服务1调用微服务2,微服务2调用微服务3,以此类推。图1中以n个微服务之间依次调用为例。
参阅图2为本申请实施例提供的一种数据传输方法的示例性流程图之一,可包括以下流程:
S201,第一微服务接收来自第二微服务的第一请求数据。
其中,第一微服务和第二微服务为图1中的微服务系统中任意不相同的两个微服务。当第二微服务需要调用第一微服务时,第二微服务可以向第一微服务发送第一请求数据,第一微服务则可以接收来自第二微服务的第一请求数据。可选的,第一请求数据可以是json格式的数据,本申请对此不作限定。
第一请求数据中可以包括第一关心数据以及第一扩展数据。其中,第一关心数据为第一请求数据中第一微服务关心的数据,第一扩展数据为第一请求数据中除第一关心数据以外的数据。应理解,第一微服务关心的数据是根据第一微服务能够提供的服务确定的。
举例来说,当微服务系统执行查询用户信息的操作时,假设第一微服务用于查询用户标识和用户名称,则第一微服务确定第一请求数据中的用户标识数据和用户名称数据为第一关心数据,第一请求数据中除用户标识数据和用户名称数据以外的其他数据则为第一扩展数据。
S202,第一微服务创建第一实体对象。
为了在微服务内部方便的进行数据处理,第一微服务可以创建实体对象,如第一实体对象。第一微服务可以通过创建的实体对象,对第一请求数据进行处理。
一种可能的实现方式中,可以预定义第一实体对象,在预定义第一实体对象时,可以将第一微服务关心的字段定义在第一实体对象中,同时增加一个扩展字段用于保存第一请求数据中的第一扩展数据。也就是说第一实体对象可以被定义为包括关心字段和扩展字段的实体对象。
S203,第一微服务反序列化第一请求数据中的第一关心数据,得到第二关心数据。
在S203中,第一微服务需要将待处理的数据转换成实体对象的状态信息,并对其进行处理。因此,在S203中第一微服务可以将在S201接收到的第一请求数据进行反序列化,将第一请求数据转换成第一实体对象的状态信息。
在一种可能的实现方式中,由于第一微服务会对第一请求数据中的第一微服务关心的数据进行处理,因此只需要将第一请求数据中的第一关心数据进行反序列化,得到第二关心数据即可。举例来说,在S201中第一微服务在接收到第一请求数据之后,可以确定第一请求数据中的第一关心数据。例如,第一微服务可以根据自身能够提供的服务,从第一请求数据中确定第一关心数据。在S203中,第一微服务可以将第一关心数据进行反序列化,得到第二关心数据。
S204,第一微服务将第二关心数据和第一扩展数据存储至第一实体对象。
第一微服务可以将第二关心数据和第一扩展数据存储至S202创建的第一实体对象中。
一种可能的实现方式中,第一微服务可以将第二关心数据存储至第一实体对象中预定义的关心字段中,将第一扩展数据存储至第一实体对象中预定义的扩展字段的中。
S205,第一微服务根据第二关心数据和第一扩展数据生成第一响应数据,向第二微服务发送第一响应数据。
第一微服务可以根据第一实体对象中的第二关心数据和第一扩展数据生成第一响应数据,并将第一响应数据发送给第二微服务,完成第二微服务对第一微服务的调用。
基于上述方案,通过只对第一请求数据中的第一关心数据进行反序列化,可以快速的完成数据的反序列化,并且通过在数据处理完成后根据第二关心数据和第一扩展数据生成第一响应数据的方式,可以实现在保持数据完整性的基础上,将微服务之间相互调用时,数据反序列化对整个调用链路耗时影响大大降低,提高系统的响应速度,提升用户体验。
以下,介绍S203中第一微服务生成第一响应数据的方法。其中,第一微服务生成第一响应数据的方法,会根据第一微服务是否需要调用第三微服务分为以下方法1和方法2。
示例性的,第一微服务在生成第一响应数据时可以根据第一请求数据和第一微服务提供的服务确定是否需要调用第三微服务。例如,如果第一微服务可以完成第一请求数据请求的服务,那么第一微服务不需要调用第三微服务。反之,如果第一微服务无法完成第一请求数据请求的服务,那么第一微服务需要调用第三微服务完成第一请求数据请求的服务。这里的第三微服务为微服务系统中任意一个与第一微服务和第二微服务不同的微服务。例如,假设第一微服务是如图1所示的微服务2,第二微服务是如图1所示的微服务1,那么第三微服务可以是微服务3至微服务n中的任一个微服务。当第一微服务不需要调用第三微服务时,第一微服务可以执行方法1。当第一微服务需要调用第三微服务时,第一微服务可以执行方法2。
方法1:第一微服务对第一实体对象中的第二关心数据进行处理,得到第三关心数据,用以执行微服务系统中第一微服务需要提供的服务。第一微服务在得到第三关心数据后,继续将得到的第三关心数据进行序列化,并与第一扩展数据进行合并,生成第一响应数据,最后将第一响应数据发送给第二微服务,完成第一微服务的调用。其中,对第三关心数据进行序列化,可以是将第三关心数据转换成可以传输的格式的数据,如json格式的数据,本申请对此不作限定。应理解,序列化后的第三关心数据的格式与第一扩展数据是相同的。
可选的,对第二关心数据进行处理可以包括对第二关心数据进行拼接或者提取等操作,本申请对此不作限定。举例来说,当微服务系统执行查询用户信息的操作时,第一微服务用于查询用户标识和用户信息,则第一微服务可以将第二关心数据的用户标识数据和用户信息数据进行拼接,得到第三关心数据,从而完成对第二关心数据的处理,执行微服务系统中第一微服务需要提供的服务。
示例性的,第一微服务可以按照预设规则对第一扩展数据和第二关心数据进行合并得到第一响应数据。其中,预设规则可以包括当第一微服务提供的服务需要加密时,第一响应数据中数据的顺序需要与第一请求数据中数据的顺序相同。举例来说,当第一微服务需要签名时,假设在第一请求数据中第一关心数据在第一扩展数据之前,则在返回第一响应数据时,第一响应数据中第二关心数据也应在第一扩展数据之前。
方法2:第一微服务对第一实体对象中的第二关心数据进行处理,得到第四关心数据,用以执行微服务系统中第一微服务需要提供的服务。第一微服务对第四关心数据进行序列化,然后将序列化后的第四关心数据和第一扩展数据进行合并,得到第二请求数据。其中,对第四关心数据进行序列化,可以是将第四关心数据转换成可以传输的格式的数据,如json格式的数据,本申请对此不作限定。
第一微服务得到第二请求数据之后,将第二请求数据发送至第三微服务。第三微服务可以对第二请求数据进行处理,得到第二响应数据。需要说明的是,第三微服务对第二请求数据进行处理的操作,可以参照上述第一微服务对第一请求数据进行处理得到第二响应数据的操作,此处不再赘述。换句话说,在第三微服务对第二请求数据进行处理时,可以认为第三微服务为图2中示出的第一微服务,第二请求数据为第一请求数据执行如图2所示的操作。具体的,第三微服务对第二请求数据进行处理时,如果不需要调用第四微服务,则第三微服务可以执行上述方法1,如果需要调用第四微服务,则第三微服务可以执行方法2。这里的第四微服务不同于第一微服务、第二微服务和第三微服务。
第三微服务在得到第二响应数据时,可以向第一微服务发送该第二响应数据。第一微服务则可以接收来自第三微服务的第二响应数据。通过上述操作,第一微服务实现对第三微服务的调用。以下,介绍第一微服务对第二响应数据的处理方式。可以理解的是,上述第三微服务对调用第四微服务得到的相应数据进行处理的方式也可以应用该处理方式。
第一微服务在接收到第二响应数据后,可以创建第二实体对象。第一微服务反序列化第二响应数据中的第五关心数据,得到第六关心数据,然后将第六关心数据和第二扩展数据存储至第二实体对象。需要说明的是,针对关心数据和扩展数据以及创建实体对象的相关描述,可以参见如图2所示的方法实施例,此处不再赘述。
第一微服务对第二实体对象中的第六关心数据进行处理,得到第七关心数据,用以执行微服务系统中第一微服务需要提供的服务。第一微服务在得到第七关心数据后,继续对得到的第七关心数据进行序列化,并与第二扩展数据进行合并,生成第一响应数据,最后将第一响应数据发送给第二微服务,从而完成第二微服务对第一微服务的调用。其中,对第七关心数据进行序列化,可以是将第七关心数据转换成可以传输的格式的数据,如json格式的数据,本申请对此不作限定。应理解,第一微服务根据序列化后的第七关心数据得到第二扩展数据的方式,可以参照前述通第一微服务通过第二关心数据和第一扩展数据得到第一响应数据实施。
下面,为了能够更加清晰地理解本申请实施例提出的方案,将结合具体地实施例对本申请提供的一种数据传输方法进行介绍。
参阅图3,为本申请实施例提供的一种数据传输方法的示例性流程图之一,在图3所示的实施例中,以第一微服务为微服务a、第二微服务为微服务a-1以及第三微服务为微服务a+1为例进行说明,可以包括以下操作。
S301,微服务a获取预定义的接收请求实体对象。
其中,接收请求实体对象用于处理微服务a-1发送的请求数据,接收请求实体对象中包括关心字段和扩展字段。S301中的接收请求实体对象是图2所示的实施例中第一实体对象的一种实现方式。
S302,微服务a获取预定义的微服务a+1请求实体对象。
其中,微服务a+1请求实体对象用于存储调用微服务a+1时,向微服务a+1发送的请求数据。微服务a+1请求实体对象中包括关心字段和扩展字段。S302中的请求实体对象是图2所示的实施例中第一实体对象的实现方式,具体的是第三微服务创建的第一实体对象。
S303,微服务a获取预定义的微服务a+1响应实体对象。
其中,微服务a+1响应实体对象用于处理微服务a+1返回的响应数据,微服务a+1响应实体对象中包括关心字段和扩展字段。S303中的响应实体对象是图2所示的实施例中第二实体对象的一种实现方式。
S304,微服务a-1调用微服务a。
微服务a-1通过向微服务a发送请求数据来调用微服务a接口,其中请求数据中包括关心数据和扩展数据,扩展数据是指请求数据中除微服务a关心数据以外的数据。
S305,微服务a反序列化请求数据。
微服务a将请求数据中的关心数据进行反序列化,转换成接收请求实体对象的状态信息。其中,反序列化请求数据的方法可以参见图2所示实施例中的相关描述,在此不再赘述。
S306,微服务a创建接收请求实体对象并将反序列化后的请求数据赋值给接收请求实体对象。
微服务a根据S301中获取的预定义的接收请求实体对象,创建接收请求实体对象。并将S305得到的接收请求实体对象的状态信息赋值给接收请求实体对象的关心字段,将请求数据中的扩展数据直接赋值给接收请求实体对象的扩展字段。应了解,赋值给实体对象为存储到实体对象的一种实现方式。
S307,微服务a创建微服务a+1请求实体对象。
微服务a可以根据S302中获取的预定义的微服务a+1请求实体对象创建微服务a+1请求实体对象。
S308,微服务a进行数据处理并赋值给微服务a+1请求实体对象。
微服务a对S305得到的接收请求实体对象中的关心字段的数据进行处理并赋值给S306创建的微服务a+1请求实体对象中的关心字段中,然后将接收请求实体对象中的扩展字段的数据赋值给微服务a+1请求实体对象中的扩展字段。其中,数据处理的方法可以参见图2所示方法实施例中的相关描述,在此不再赘述。
S309,微服务a序列化微服务a+1请求实体对象。
微服务a对微服务a+1请求实体对象中的关心字段的数据进行序列化,得到序列化后的关心字段的数据。其中,序列化微服务a+1请求实体对象的方法可以参见图2所示实施例中的相关描述,在此不再赘述。
S310,微服务a生成微服务a+1请求数据。
微服务a将微服务a+1请求实体对象中的扩展字段的数据取出,并与S308得到的序列化后的关心字段的数据进行合并得到生成微服务a+1请求数据。其中,生成微服务a+1请求数据的方法可以参见图2所示方法实施例中的相关描述,在此不再赘述。
S311,微服务a调用微服务a+1。
微服务a通过向微服务a+1发送微服务a+1请求数据,用以调用微服务a+1。
S312,微服务a接收微服务a+1返回的响应数据。
其中,微服务a+1返回的响应数据包括关心数据和扩展数据,应了解,响应数据包括的关心数据与S304中请求数据中包括关心数据可以相同也可以不同。
S313,微服务a反序列化响应数据。
微服务a将响应数据中的关心数据反序列化,转换成微服务a+1响应实体对象的状态信息。其中,反序列化响应数据的方法可以参见图2所示方法实施例中的相关描述,在此不再赘述。
S314,创建微服务a+1响应实体对象并将反序列化后的响应数据赋值给微服务a+1响应实体对象。
微服务a根据S303中获取的预定义的微服务a+1响应实体对象,并将微服务a+1响应实体对象的状态信息赋值给微服务a+1响应实体对象中的关心字段,将响应数据中的扩展数据赋值给微服务a+1实体对象中的扩展字段。
S315,微服务a处理数据。
微服务a对微服务a+1响应实体对象中的关心字段的数据进行处理,其中,数据处理的方法可以参见图2所示方法实施例中的相关描述,在此不再赘述。
S316,微服务a序列化微服务a+1响应实体对象。
微服务a对S313中处理后的关心字段的数据进行序列化。其中,序列化微服务a+1响应实体对象的方法可以参见图2所示方法实施例中的相关描述,在此不再赘述。
S317,微服务a生成微服务a响应数据。
微服务a将S314中序列化后的关心字段的数据和微服务a+1响应实体对象中的扩展字段的数据进行合并生成微服务a响应数据。生成微服务a响应数据的方法可以参见如图2所示的方法实施例中的相关描述,在此不再赘述。
S318,微服务a发送微服务a响应数据。
微服务a向微服务a-1发送微服务a响应数据,从而完成微服务a-1对微服务a的调用。
基于上述方法的同一构思,参见图4,为本申请实施例提供的一种数据传输装置400,装置400能够执行上述方法中的各个步骤,为了避免重复,此处不再详述。该装置400包括收发单元401和处理单元402,应用于第一微服务。
在一种场景下:
收发单元401,被配置为用于,接收来自第二微服务的第一请求数据;所述第一微服务和所述第二微服务不相同;
处理单元402,被配置为用于:创建第一实体对象;反序列化所述第一请求数据中的第一关心数据,得到第二关心数据;将所述第二关心数据和所述第一扩展数据存储至所述第一实体对象;所述第一扩展数据为所述第一请求数据中除第一关心数据以外的数据;根据所述第二关心数据和所述第一扩展数据生成第一响应数据。
所述收发单元401,还被配置为用于,向所述第二微服务发送所述第一响应数据。
一种可能的实现方式中,所述处理单元402根据所述第二关心数据和所述第一扩展数据生成第一响应数据时,具体被配置为用于:当所述第一微服务不需要调用第三微服务时,对所述第二关心数据进行处理,得到第三关心数据;所述第三微服务与所述第一微服务和所述第二微服务不相同;序列化所述第三关心数据;将所述第一扩展数据和序列化后的所述第三关心数据合并,得到所述第一响应数据。
一种可能的实现方式中,所述处理单元402根据所述第二关心数据和所述第一扩展数据生成第一响应数据时,具体被配置为用于:当所述第一微服务需要调用所述第三微服务时,对所述第二关心数据进行处理,得到第四关心数据;所述第三微服务与所述第一微服务和所述第二微服务不相同;序列化所述第四关心数据;将所述第一扩展数据和序列化后的所述第四关心数据合并,得到第二请求数据;向所述第三微服务发送所述第二请求数据,得到所述第一响应数据。
一种可能的实现方式中,所述收发单元401向所述第三微服务发送所述第二请求数据,得到所述第一响应数据时,具体被配置为用于接收来自所述第三微服务的第二响应数据;所述处理单元402具体被配置为用于创建第二实体对象;反序列化所述第二响应数据中的第五关心数据,得到第六关心数据;将第二扩展数据和所述第六关心数据存储至所述第二实体对象;所述第二扩展数据为所述第二响应数据中除所述第五关心数据以外的数据;对所述第六关心数据进行处理,得到第七关心数据;序列化所述第七关心数据;将所述第二扩展数据和序列化后的所述第七关心数据合并,得到所述第一响应数据。
一种可能的实现方式中,所述处理单元402在所述收发单元401向所述第二微服务发送第一响应数据之前,还被配置为用于:按照预设规则将所述第一扩展数据和所述第二关心数据合并得到所述第一响应数据;其中,所述预设规则包括:当所述第一微服务提供的服务需要加密时,所述第一响应数据中数据的顺序与所述第一请求数据中数据的顺序相同。
基于上述方法的同一构思,参见图5,为本申请实施例提供电子设备,该电子设备包括处理器501和存储器502。存储器502,用于存储计算机指令,处理器501,与所述存储器连接,用于执行所述存储器中的计算机指令,且在执行所述计算机指令时实现上述任一方法的步骤。
本申请实施例还提供了一种计算机可读存储介质,其上存储有计算机指令,当所述计算机指令在计算机上运行时,使得计算机执行上述任一方法的步骤。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
虽然以上描述了本申请的具体实施方式,但是本领域的技术人员应当理解,这些仅是举例说明,本申请的保护范围是由所附权利要求书限定的。本领域的技术人员在不背离本申请的原理和实质的前提下,可以对这些实施方式做出多种变更或修改,但这些变更和修改均落入本申请的保护范围。尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (8)
1.一种数据传输方法,其特征在于,包括:
第一微服务接收来自第二微服务的第一请求数据;所述第一微服务和所述第二微服务不相同;
所述第一微服务创建第一实体对象;
所述第一微服务反序列化所述第一请求数据中的第一关心数据,得到第二关心数据;
所述第一微服务将所述第二关心数据和第一扩展数据存储至所述第一实体对象;所述第一扩展数据为所述第一请求数据中除第一关心数据以外的数据;
当所述第一微服务不需要调用第三微服务时,所述第一微服务对所述第二关心数据进行处理,得到第三关心数据;所述第三微服务与所述第一微服务和所述第二微服务不相同;
所述第一微服务序列化所述第三关心数据;
所述第一微服务将所述第一扩展数据和序列化后的所述第三关心数据合并得到第一响应数据,向所述第二微服务发送所述第一响应数据。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当所述第一微服务需要调用所述第三微服务时,所述第一微服务对所述第二关心数据进行处理,得到第四关心数据;所述第三微服务与所述第一微服务和所述第二微服务不相同;
所述第一微服务序列化所述第四关心数据;
所述第一微服务将所述第一扩展数据和序列化后的所述第四关心数据合并,得到第二请求数据;
所述第一微服务向所述第三微服务发送所述第二请求数据,得到所述第一响应数据。
3.根据权利要求2所述的方法,其特征在于,所述第一微服务向所述第三微服务发送所述第二请求数据,得到所述第一响应数据时,具体包括:
所述第一微服务接收来自所述第三微服务的第二响应数据;
所述第一微服务创建第二实体对象;
所述第一微服务反序列化所述第二响应数据中的第五关心数据,得到第六关心数据;
所述第一微服务将第二扩展数据和所述第六关心数据存储至所述第二实体对象;所述第二扩展数据为所述第二响应数据中除所述第五关心数据以外的数据;
所述第一微服务对所述第六关心数据进行处理,得到第七关心数据;
所述第一微服务序列化所述第七关心数据;
所述第一微服务将所述第二扩展数据和序列化后的所述第七关心数据合并,得到所述第一响应数据。
4.根据权利要求1所述的方法,其特征在于,所述第一微服务向所述第二微服务发送第一响应数据之前,还包括:
所述第一微服务按照预设规则将所述第一扩展数据和所述第二关心数据合并得到所述第一响应数据;
其中,所述预设规则包括:当所述第一微服务提供的服务需要加密时,所述第一响应数据中数据的顺序与所述第一请求数据中数据的顺序相同。
5.一种数据传输装置,其特征在于,应用于第一微服务,包括:
收发单元,被配置为用于,接收来自第二微服务的第一请求数据;所述第一微服务和所述第二微服务不相同;
处理单元,被配置为用于:创建第一实体对象;
反序列化所述第一请求数据中的第一关心数据,得到第二关心数据;
将所述第二关心数据和第一扩展数据存储至所述第一实体对象;所述第一扩展数据为所述第一请求数据中除第一关心数据以外的数据;
当所述第一微服务不需要调用第三微服务时,对所述第二关心数据进行处理,得到第三关心数据;所述第三微服务与所述第一微服务和所述第二微服务不相同;
序列化所述第三关心数据;
将所述第一扩展数据和序列化后的所述第三关心数据合并,得到第一响应数据;
所述收发单元,还被配置为用于,向所述第二微服务发送所述第一响应数据。
6.根据权利要求5所述的装置,其特征在于,所述处理单元还被配置为:
当所述第一微服务需要调用所述第三微服务时,对所述第二关心数据进行处理,得到第四关心数据;所述第三微服务与所述第一微服务和所述第二微服务不相同;
序列化所述第四关心数据;
将所述第一扩展数据和序列化后的所述第四关心数据合并,得到第二请求数据;
向所述第三微服务发送所述第二请求数据,得到所述第一响应数据。
7.根据权利要求6所述的装置,其特征在于,所述收发单元向所述第三微服务发送所述第二请求数据,得到所述第一响应数据时,具体被配置为用于:
接收来自所述第三微服务的第二响应数据;
所述处理单元被配置为用于:创建第二实体对象;
反序列化所述第二响应数据中的第五关心数据,得到第六关心数据;
将第二扩展数据和所述第六关心数据存储至所述第二实体对象;所述第二扩展数据为所述第二响应数据中除所述第五关心数据以外的数据;
对所述第六关心数据进行处理,得到第七关心数据;
序列化所述第七关心数据;
将所述第二扩展数据和序列化后的所述第七关心数据合并,得到所述第一响应数据。
8.根据权利要求5所述的装置,其特征在于,所述处理单元在所述收发单元向所述第二微服务发送第一响应数据之前,还被配置为用于:
按照预设规则将所述第一扩展数据和所述第二关心数据合并得到所述第一响应数据;
其中,所述预设规则包括:当所述第一微服务提供的服务需要加密时,所述第一响应数据中数据的顺序与所述第一请求数据中数据的顺序相同。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210056017.3A CN114500647B (zh) | 2022-01-18 | 2022-01-18 | 一种数据传输方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210056017.3A CN114500647B (zh) | 2022-01-18 | 2022-01-18 | 一种数据传输方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114500647A CN114500647A (zh) | 2022-05-13 |
CN114500647B true CN114500647B (zh) | 2023-07-11 |
Family
ID=81472015
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210056017.3A Active CN114500647B (zh) | 2022-01-18 | 2022-01-18 | 一种数据传输方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114500647B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109040152A (zh) * | 2017-06-08 | 2018-12-18 | 阿里巴巴集团控股有限公司 | 一种基于服务编排的服务请求和提供方法、装置以及电子设备 |
CN109271180A (zh) * | 2017-07-12 | 2019-01-25 | 北京国双科技有限公司 | 一种数据处理方法及装置 |
CN111049878A (zh) * | 2019-10-23 | 2020-04-21 | 平安科技(深圳)有限公司 | 微服务调用链具象化的方法、装置、电子装置及存储介质 |
CN111641710A (zh) * | 2020-05-29 | 2020-09-08 | 深圳壹账通智能科技有限公司 | 基于微服务的数据处理方法、装置、终端及存储介质 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104360865B (zh) * | 2014-11-28 | 2018-05-18 | 中国建设银行股份有限公司 | 一种序列化方法、反序列化方法及相关设备 |
US10891176B1 (en) * | 2019-08-09 | 2021-01-12 | Ciena Corporation | Optimizing messaging flows in a microservice architecture |
US11169862B2 (en) * | 2019-08-09 | 2021-11-09 | Ciena Corporation | Normalizing messaging flows in a microservice architecture |
CN112214516A (zh) * | 2020-10-29 | 2021-01-12 | 株洲中车时代电气股份有限公司 | 数据序列化和反序列化的方法及装置 |
CN112468585B (zh) * | 2020-11-26 | 2022-09-13 | 五八同城信息技术有限公司 | 数据传输方法、装置、电子设备及存储介质 |
CN113312344B (zh) * | 2021-07-28 | 2022-01-04 | 阿里云计算有限公司 | 数据序列化、反序列化方法、设备、系统、介质及产品 |
CN113626869B (zh) * | 2021-08-17 | 2024-09-24 | 池州市贵鸿信息技术有限公司 | 数据处理方法、系统、电子设备以及存储介质 |
CN113704216A (zh) * | 2021-08-20 | 2021-11-26 | 太平金融科技服务(上海)有限公司 | 系统日志处理方法、装置、计算机设备和存储介质 |
CN113704002A (zh) * | 2021-08-30 | 2021-11-26 | 成都长城开发科技有限公司 | 一种基于私有协议的rpc组件的实现方法及rpc组件 |
-
2022
- 2022-01-18 CN CN202210056017.3A patent/CN114500647B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109040152A (zh) * | 2017-06-08 | 2018-12-18 | 阿里巴巴集团控股有限公司 | 一种基于服务编排的服务请求和提供方法、装置以及电子设备 |
CN109271180A (zh) * | 2017-07-12 | 2019-01-25 | 北京国双科技有限公司 | 一种数据处理方法及装置 |
CN111049878A (zh) * | 2019-10-23 | 2020-04-21 | 平安科技(深圳)有限公司 | 微服务调用链具象化的方法、装置、电子装置及存储介质 |
CN111641710A (zh) * | 2020-05-29 | 2020-09-08 | 深圳壹账通智能科技有限公司 | 基于微服务的数据处理方法、装置、终端及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN114500647A (zh) | 2022-05-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112269603B (zh) | 一种在Linux上兼容运行Android应用的图形显示方法与装置 | |
US10402119B2 (en) | Data format conversion apparatus and method and buffer chip | |
CN114564509B (zh) | 序列化方法、反序列化方法、设备、芯片以及介质 | |
US8375399B2 (en) | Method, apparatus and computer program to perform dynamic selection of serialization processing schemes | |
CN112788104A (zh) | 一种远程过程调用方法及装置 | |
CN114331416A (zh) | 数据处理的方法、装置、电子设备及存储介质 | |
US10313230B1 (en) | System and method for unmarshalled routing | |
CN114374703B (zh) | 云手机信息的获取方法、装置、设备以及存储介质 | |
CN109388388B (zh) | 功能模块间的信息交互方法、装置、设备及存储介质 | |
CN114500647B (zh) | 一种数据传输方法及装置 | |
CN112100121B (zh) | 计算装置、计算设备以及可编程调度方法 | |
CN112948129A (zh) | 基于联邦学习的数据传输优化方法、设备及可读存储介质 | |
US20190095405A1 (en) | Text message displaying method and system, and text message providing system | |
WO2018121376A1 (zh) | 一种随机接入方法、发送端及接收端 | |
CN111522536A (zh) | 一种编程语言调用的方法及其相关设备 | |
CN111638979A (zh) | 调用请求的处理方法、装置、电子设备及可读存储介质 | |
CN109218371B (zh) | 一种调用数据的方法和设备 | |
CN108563492B (zh) | 数据获取方法、虚拟机以及电子设备 | |
CN111111175A (zh) | 一种游戏画面生成方法、装置和移动终端 | |
CN112398870B (zh) | 跨平台协议生成方法、装置、系统、设备及存储介质 | |
CN112235411B (zh) | 基于ai的rpa流程控制端的服务器通信方法、装置、设备及介质 | |
CN110880974B (zh) | 一种基于区块链网络的数据通信方法和装置 | |
CN109981251B (zh) | 随机数序列压缩方法、装置及电子设备 | |
CN111786965A (zh) | Rpc报文的处理方法、装置、电子设备及可读存储介质 | |
CN118113185B (zh) | 元宇宙交互方法、装置、设备、存储介质及程序产品 |
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 |