CN114900550B - 一种通信方法以及相关装置 - Google Patents
一种通信方法以及相关装置 Download PDFInfo
- Publication number
- CN114900550B CN114900550B CN202210385640.3A CN202210385640A CN114900550B CN 114900550 B CN114900550 B CN 114900550B CN 202210385640 A CN202210385640 A CN 202210385640A CN 114900550 B CN114900550 B CN 114900550B
- Authority
- CN
- China
- Prior art keywords
- data packet
- proxy component
- service
- proxy
- communication protocol
- 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
- 230000006854 communication Effects 0.000 title claims abstract description 245
- 238000004891 communication Methods 0.000 title claims abstract description 244
- 238000000034 method Methods 0.000 title claims abstract description 64
- 238000004806 packaging method and process Methods 0.000 claims description 6
- 238000004590 computer program Methods 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 6
- 230000002159 abnormal effect Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000005538 encapsulation Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
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/08—Protocols for interworking; Protocol conversion
-
- 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/18—Multiprotocol handlers, e.g. single devices capable of handling multiple protocols
-
- 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/22—Parsing or analysis of headers
Abstract
本申请实施例提供了一种通信方法以及相关装置,第一代理组件获取第一数据包和目标微服务的标识,依据目标微服务的标识,获取第二代理组件的标识,使用预设的代理通信协议封装第一数据包,得到第二数据包,将第二数据包发送至第二代理组件。第二代理组件基于代理通信协议和第二数据包,得到原始数据包;使用第二通信协议封装原始数据包得到第三数据包;将第三数据包发送至目标微服务,以使目标微服务使用第二通信协议解包第三数据包,得到原始数据包。本方法通过第一代理组件和第二代理组件实现将第一微服务支持的通信协议转换为目标微服务支持的通信协议,由此实现支持不同通信协议的微服务间的通信,且提高通信系统的高可用性。
Description
技术领域
本申请涉及数据处理技术领域,尤其涉及一种通信方法以及相关装置。
背景技术
传统的通信方法中,微服务之间使用预先约定的通信协议进行通信,也即,微服务间通信的前提是支持相同的通信协议,图1示例了一种传统的微服务通信方法的示意图,如图1所示,由于微服务B支持Http协议,微服务C支持Dubbo协议,微服务D支持gRpc协议,因此,微服务A需使用Http协议与微服务B通信,使用Dubbo协议与微服务D通信,显然,若微服务需要实现与其他通信协议的微服务进行通信,该微服务必须支持多个通信协议。
发明内容
本申请提供了一种通信方法以及相关装置,如下:
一种通信方法,包括:
第一代理组件获取第一数据包和目标微服务的标识,依据所述目标微服务的标识,获取第二代理组件的标识,使用预设的代理通信协议封装所述第一数据包,得到第二数据包,将所述第二数据包发送至所述第二代理组件;
其中,所述第一数据包通过使用第一通信协议封装原始数据包得到,所述第一通信协议为第一微服务支持的通信协议,所述第一微服务为预先与所述第一代理组件唯一绑定的微服务,所述第二代理组件为预先与所述目标微服务唯一绑定的代理组件;
所述第二代理组件基于所述代理通信协议和所述第二数据包,得到所述原始数据包;使用第二通信协议封装所述原始数据包得到第三数据包;将所述第三数据包发送至所述目标微服务,以使所述目标微服务使用所述第二通信协议解包所述第三数据包,得到所述原始数据包;
其中,所述第二通信协议为所述目标微服务支持的通信协议。
可选地,本方法还包括:
所述第一微服务使用所述第一通信协议封装所述原始数据包,得到所述第一数据包,将所述第一数据包发送至第一回环地址;其中,所述第一回环地址为所述第一代理组件预设的内部接口的地址,所述第一数据包包括所述目标微服务的标识;
所述第一代理组件获取第一数据包和目标微服务的标识,包括:
所述第一代理组件通过内部接口接收所述第一数据包;
所述第一代理组件解析所述第一数据包,得到所述目标微服务的标识。
可选地,第一代理组件依据所述目标微服务的标识,获取第二代理组件的标识,包括:
所述第一代理组件依据预设的第一对应关系,获取所述第二代理组件的标识,所述第一对应关系包括预先配置于所述第一代理组件内的预先唯一绑定的代理组件和微服务的标识对应关系。
可选地,第一代理组件将所述第二数据包发送至所述第二代理组件,包括:
所述第一代理组件依据预设的第二对应关系,获取所述第二代理组件的预设的外部接口的地址,作为目标代理地址;通过外部接口发送所述第二数据包至所述目标代理地址,所述第二对应关系包括预先配置于所述第二代理组件内的代理组件的标识和外部接口的地址的对应关系。
可选地,第二代理组件基于所述代理通信协议和所述第二数据包,得到所述原始数据包,包括:
所述第二代理组件使用所述代理通信协议解包所述第二数据包得到所述第一数据包;
所述第二代理组件使用所述第一通信协议解包所述第一数据包,得到所述原始数据包。
可选地,第二代理组件将所述第三数据包发送至所述目标微服务,包括:
所述第二代理组件获取第二回环地址,并通过内部接口将所述第三数据包发送至所述第二回环地址,其中,所述第二回环地址为所述目标微服务的预设的内部接口的地址。
一种通信系统,包括第一代理组件和第二代理组件,所述第一代理组件用于:
获取第一数据包和目标微服务的标识,依据所述目标微服务的标识,获取第二代理组件的标识,使用预设的代理通信协议封装所述第一数据包,得到第二数据包,将所述第二数据包发送至所述第二代理组件;
其中,所述第一数据包通过使用第一通信协议封装原始数据包得到,所述第一通信协议为第一微服务支持的通信协议,所述第一微服务为预先与所述第一代理组件唯一绑定的微服务,所述第二代理组件为预先与所述目标微服务唯一绑定的代理组件;
所述第二代理组件用于:
接收所述第二数据包,基于所述代理通信协议和所述第二数据包,得到所述原始数据包;使用第二通信协议封装所述原始数据包得到第三数据包;将所述第三数据包发送至所述目标微服务,以使所述目标微服务使用所述第二通信协议解包所述第三数据包,得到所述原始数据包;
其中,所述第二通信协议为所述目标微服务支持的通信协议。
可选地,本系统还包括:所述第一微服务和所述目标微服务;
所述第一微服务用于使用所述第一通信协议封装所述原始数据包,得到所述第一数据包,并发送所述第一数据包至所述第一代理组件;
所述目标微服务用于接收所述第二代理组件发送的所述第三数据包,并使用所述第二通信协议解包所述第三数据包,得到原始数据包。
一种通信设备,包括:存储器和处理器;
所述存储器,用于存储程序;
所述处理器,用于执行所述程序,实现通信方法的各个步骤。
一种可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,实现通信方法的各个步骤。
由上述技术方案可以看出,本申请实施例提供的一种通信方法以及相关装置,第一代理组件获取第一数据包和目标微服务的标识,依据目标微服务的标识,获取第二代理组件的标识,使用预设的代理通信协议封装第一数据包,得到第二数据包,将第二数据包发送至第二代理组件。第二代理组件基于代理通信协议和第二数据包,得到原始数据包;使用第二通信协议封装原始数据包得到第三数据包;将第三数据包发送至目标微服务,以使目标微服务使用第二通信协议解包第三数据包,得到原始数据包。由于,第一数据包通过使用第一通信协议封装原始数据包得到,第一通信协议为第一微服务支持的通信协议,第二通信协议为目标微服务支持的通信协议,因此本方法通过第一代理组件和第二代理组件实现将第一微服务支持的通信协议转换为目标微服务支持的通信协议,由此实现支持不同通信协议的微服务间的通信。进一步由于,第一微服务为预先与第一代理组件唯一绑定的微服务,第二代理组件为预先与目标微服务唯一绑定的代理组件,也即代理组件与对应的微服务唯一绑定,因此实现通信系统的高可用性。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为一种传统通信方法的示意图;
图2为本申请实施例提供的一种通信系统的结构示意图;
图3为本申请实施例提供的一种通信方法的具体实施方式的流程示意图;
图4为本申请实施例提供的一种通信方法的流程示意图;
图5为本申请实施例提供的一种通信设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本实施例提供的一种通信方法应用于但不限于实现通信系统中各个微服务间的通信过程,其中,通信系统包括多个通信模块,每一通信模块包括预设于同一容器内的微服务和代理组件,预设于同一容器内的微服务和代理组件预先绑定。
图2为本申请实施例提供的一种通信系统的结构示意图,如图2所示,通信系统20包括通信模块201、通信模块202、以及通信模块203,其中,通信模块201包括预先唯一绑定的微服务A和第一代理组件,通信模块202包括预先唯一绑定的微服务B和第二代理组件,通信模块203包括预先唯一绑定的微服务C和第三代理组件。每一通信模块中的微服务通过代理组件与其他通信模块中的微服务进行通信。如图2所示,第一代理组件、第二代理组件、以及第三代理组件通信相连。可选地,通信系统中微服务属于同一微服务系统。
本实施例中,通信模块中的微服务和代理组件预先绑定且设置在同一容器中,代理组件被配置为通过绑定的微服务支持的通信协议与绑定的微服务通信。例如,第一代理组件被配置为通过微服务A支持的通信协议与微服务A通信,第二代理组件被配置为通过微服务B支持的通信协议与微服务B通信,第三代理组件被配置为通过微服务C支持的通信协议与微服务C通信。
每一代理组件被配置为通过预设的代理通信协议与其他至少一个代理组件通信,例如,第一代理组件被配置为通过代理通信协议分别与第二代理组件和第三代理组件通信,第二代理组件被配置为通过代理通信协议分别与第一代理组件和第三代理组件通信,第三代理组件被配置为通过代理通信协议分别与第一代理组件和第二代理组件通信。
需要说明的是,本申请还可以应用于其他可选的通信系统,例如,本申请不限定通信系统包括的通信模块的数量,再例如,本申请不限定通信系统中所有微服务均通过代理组件与其他微服务,在可选的一种实施例中,通信系统包括多个通信模块以及至少一个微服务模块,其中微服务模块仅包括微服务,且微服务模块中的微服务与通信系统中的至少一个其他微服务直接通信,如图2所示,通信系统21相比于通信系统20,还包括微服务模块204,微服务模块204包括微服务D,微服务D与微服务C通过约定的通信协议直接通信,微服务D与微服务A的通信方法参见现有技术。
以图2所示的通信系统中的通信模块201和通信模块202为例,微服务A支持第一通信协议(以http协议为例),微服务B支持第二通信协议(以Dubbo协议为例),每一通信模块中的代理组件和微服务的通信协议预先配置为微服务支持的通信协议。图3为本实施例提供的一种可选的通信方法的具体实现流程,如图3所示,本方法包括:
S301、微服务A使用第一通信协议封装原始数据包得到第一数据包,并将第一数据包发送至第一代理组件。
本实施例中,原始数据包包括调用参数。
本实施例中,第一数据包包括目标微服务的标识,可选地,目标微服务的标识可以为唯一指示目标微服务的名称或编号。
具体地,微服务A获取第一回环地址,将第一回环地址作为目标地址,发送第一数据数据包,实现将第一数据包发送至第一代理组件,其中,第一回环地址为第一代理组件预设的内部接口的地址。本实施例以目标微服务为微服务B为例,微服务A使用http协议封装原始数据包(包括第一调用参数),生成<header>标签中带有微服务B的标识的http数据包,也即第一数据包。微服务A向127.0.0.1(第一回环地址)发送http数据包。其中,127.0.0.1为预先配置的第一代理组件的内部接口的地址。
S302、第一代理组件通过内部接口接收第一数据包,解析第一数据包得到目标微服务的标识。
本实施例中,第一代理组件使用第一通信协议解析第一数据包,任意一个代理组件解析数据包并获取数据包携带的目标微服务的标识的具体方法参见现有技术。
S303、第一代理组件依据预设的第一对应关系和目标微服务的标识,获取第二代理组件的标识。
本实施例中,第二代理组件为预先与目标微服务绑定的代理组件,第一对应关系包括预先配置于第一代理组件内的预先唯一绑定的代理组件和微服务的标识对应关系。
需要说明的是,每一预先唯一绑定的代理组件和微服务的标识对应关系预先注册,第一代理组件从注册中心(独立于通信系统)或者微服务的配置文件(预设于通信系统中)中获取第一对应关系,对此,本申请不做限定。
本实施例中,第一代理组件将在第一对应关系中,与目标微服务的标识对应的代理组件的标识作为第二代理组件的标识。接上例,第一代理组件接收并解析http数据包,得到http数据包携带的微服务B的标识,并从第一对应关系中获取与微服务B的标识对应的代理组件的标识作为第二代理组件的标识。
S304、第一代理组件使用代理通信协议对第一数据包进行封装,得到第二数据包。
具体地,第一代理组件为第一数据包添加代理通信协议的包头,实现对第一数据包的封装,得到代理通信协议的数据包,也即第二数据包。
接上例,代理通信协议(称为sidecar(边车)协议)预先配置为代理组件间之间的通信协议,例如,将sidecar(边车)协议配置为gRpc协议。第一代理组件将http数据包转换成gRpc协议数据包,具体的,使用gRpc协议把http数据包进行封装,保留http数据包(包括协议头和协议体)为http数据包添加gRpc协议数据包头。
S305、第一代理组件依据预设的第二对应关系,获取第二代理组件的预设的外部接口的地址,作为目标代理地址,通过外部接口发送第二数据包至目标代理地址。
本实施例中,第二对应关系包括预先配置于第二代理组件内的代理组件和外部接口的地址的对应关系,需要说明的是,第二对应关系也预先注册,在此不做赘述。
具体地,第一代理组件以目标代理地址为目标地址,通过外部接口发送第二数据包,实现将第二数据包发送至目标微服务对应的代理组件,也即,微服务B对应的代理组件(第二代理组件)。
S306、第二代理组件通过外部接口接收第二数据包,使用代理通信协议解包第二数据包得到第一数据包。
S307、第二代理组件基于第一数据包,得到原始数据包。
本实施例中,第二代理组件使用第一通信协议对第一数据包进行解包得到原始数据包。
S308、第二代理组件使用第二通信协议对原始数据包进行封装,得到第三数据包。
接上例,一种可选地第三数据包的获取方法具体包括:
解析http数据包(第一数据包),得到包括调用参数(post或get请求的调用参数和接口名称)的原始数据包。
使用dubbo协议重新封装原始数据包,得到dubbo数据包,也即第三数据包。
S309、第二代理组件获取第二回环地址,通过内部接口将所述第三数据包发送至第二回环地址。
本实施例中,第二回环地址为目标微服务的预设的内部接口的地址,第二代理组件将第二回环地址作为目标地址,通过内部接口发送第三数据包,实现将第三数据包发送至绑定的微服务,也即微服务B。
S310、微服务B通过内部接口接收第三数据包,使用第二通信协议解包第三数据包得到原始数据包。
由上述技术方案可以看出,本申请实施例提供的一种通信方法,由于,第一数据包通过使用第一通信协议封装原始数据包得到,第一通信协议为第一微服务支持的通信协议,第二通信协议为目标微服务支持的通信协议,因此本方法通过第一代理组件和第二代理组件实现将第一微服务支持的通信协议转换为目标微服务支持的通信协议,由此实现支持不同通信协议的微服务间的通信。
进一步,由于第一微服务为预先与第一代理组件唯一绑定的微服务,第二代理组件为预先与目标微服务唯一绑定的代理组件,也即代理组件与对应的微服务唯一绑定,因此实现代理组件的分布式部署,实现通信系统的高可用性。例如,网关用于协议转换时的单点部署,当网关运行异常时,所有微服务之间的通信均异常,本申请中,由于代理组件与微服务唯一绑定实现分布式部署,当通信系统中的单个微服务或单个代理组件出现运行异常,不影响其他多个微服务间的通信。
进一步,当应用于原有微服务的改造场景下,实现原部署的微服务的无感知,无需更改微服务内部的数据处理功能(具体指的协议封装功能),当目标微服务是其他通信协议的微服务时,将微服务配置为将数据包发送至预先绑定的代理组件即可。
进一步,通信系统中预先绑定的微服务和代理组件设置于同一容器内,因此实现通信的低延时。
图3所示的流程仅示例了本申请实施例提供的一种可选的通信方法的具体实现方法,本申请实施例还包括其他可选的具体实现方法。例如,S303仅为一种可选的获取第二代理组件标识的方法,可选地,另一种可选的获取目标代理地址的方法包括:提交目标微服务的标识至服务器,以在线请求预先与目标微服务唯一绑定的代理组件的标识。再例如,S303仅为一种可选的获取目标代理地址的方法,可选地,另一种可选的获取目标代理地址的方法为基于第二代理组件的标识,向服务器在线请求第二代理组件的预设的外部接口的地址。再例如,第二代理组件基于第一数据包,得到原始数据包的方法还包括其他可选的多种,具体可以参见现有技术,在此不做赘述。
综上所述,将本申请实施例提供的一种可选的通信方法总结概括为图4所示的流程,图4所示的流程应用于包括第一代理组件和第二代理组件的通信系统中,如图4所示,本方法包括:
S401、第一代理组件获取第一数据包和目标微服务的标识。
本实施例中,第一数据包通过使用第一通信协议封装原始数据包得到,第一通信协议为第一微服务支持的通信协议,第一微服务为预先与第一代理组件唯一绑定的微服务,需要说明的是,每一代理组件被配置为使用预先绑定的微服务支持的通信协议与预先绑定的微服务通信。
需要说明的是,第一代理组件获取第一数据包和目标微服务的标识的方法包括多种,例如,解析第一数据包得到目标微服务的标识,或者分别接收目标微服务的标识和第一数据包。
S402、第一代理组件依据目标微服务的标识,获取第二代理组件的标识。
本实施例中,第二代理组件为预先与目标微服务唯一绑定的代理组件。
S403、第一代理组件使用预设的代理通信协议封装第一数据包,得到第二数据包。
需要说明的是,代理通信协议被预先配置为可选的一种通信协议,代理组件被配置为通过代理通信协议与其他代理组件通信。
S404、第一代理组件将第二数据包发送至第二代理组件。
S405、第二代理组件接收第二数据包,基于代理通信协议和第二数据包,得到原始数据包。
S406、第二代理组件使用第二通信协议封装原始数据包得到第三数据包。
本实施例中,第二通信协议为目标微服务支持的通信协议。
S407、第二代理组件将第三数据包发送至目标微服务。
本实施例中,目标微服务为原始数据包的预期接收方,因此,本实施例将第三数据包发送至目标微服务以使目标微服务使用第二通信协议解包第三数据包,得到原始数据包。
由上述技术方案可以看出,本实施例提供的一种通信方法,由于,第一数据包通过使用第一通信协议封装原始数据包得到,第一通信协议为第一微服务支持的通信协议,第二通信协议为目标微服务支持的通信协议,因此本方法通过第一代理组件和第二代理组件实现将第一微服务支持的通信协议转换为目标微服务支持的通信协议,由此实现支持不同通信协议的微服务间的通信。进一步,由于第一微服务为预先与第一代理组件唯一绑定的微服务,第二代理组件为预先与目标微服务唯一绑定的代理组件,也即代理组件与对应的微服务唯一绑定,因此实现代理组件的分布式部署,实现通信系统的高可用性。
例如,网关用于协议转换时的单点部署,当网关运行异常时,所有微服务之间的通信均异常,本申请中,由于代理组件与微服务唯一绑定实现分布式部署,当通信系统中的单个微服务或单个代理组件出现运行异常,不影响其他多个微服务间的通信。
图5示出了该通信设备的结构示意图,该设备可以包括:至少一个处理器501,至少一个通信接口502,至少一个存储器503和至少一个通信总线504;
在本申请实施例中,处理器501、通信接口502、存储器503、通信总线504的数量为至少一个,且处理器501、通信接口502、存储器503通过通信总线504完成相互间的通信;
处理器501可能是一个中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路等;
存储器503可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory)等,例如至少一个磁盘存储器;
其中,存储器存储有程序,处理器可执行存储器存储的程序,实现本申请实施例提供的一种通信方法的各个步骤,如下:
一种通信方法,包括:
第一代理组件获取第一数据包和目标微服务的标识,依据所述目标微服务的标识,获取第二代理组件的标识,使用预设的代理通信协议封装所述第一数据包,得到第二数据包,将所述第二数据包发送至所述第二代理组件;
其中,所述第一数据包通过使用第一通信协议封装原始数据包得到,所述第一通信协议为第一微服务支持的通信协议,所述第一微服务为预先与所述第一代理组件唯一绑定的微服务,所述第二代理组件为预先与所述目标微服务唯一绑定的代理组件;
所述第二代理组件基于所述代理通信协议和所述第二数据包,得到所述原始数据包;使用第二通信协议封装所述原始数据包得到第三数据包;将所述第三数据包发送至所述目标微服务,以使所述目标微服务使用所述第二通信协议解包所述第三数据包,得到所述原始数据包;
其中,所述第二通信协议为所述目标微服务支持的通信协议。
可选地,本方法还包括:
所述第一微服务使用所述第一通信协议封装所述原始数据包,得到所述第一数据包,将所述第一数据包发送至第一回环地址;其中,所述第一回环地址为所述第一代理组件预设的内部接口的地址,所述第一数据包包括所述目标微服务的标识;
所述第一代理组件获取第一数据包和目标微服务的标识,包括:
所述第一代理组件通过内部接口接收所述第一数据包;
所述第一代理组件解析所述第一数据包,得到所述目标微服务的标识。
可选地,第一代理组件依据所述目标微服务的标识,获取第二代理组件的标识,包括:
所述第一代理组件依据预设的第一对应关系,获取所述第二代理组件的标识,所述第一对应关系包括预先配置于所述第一代理组件内的预先唯一绑定的代理组件和微服务的标识对应关系。
可选地,第一代理组件将所述第二数据包发送至所述第二代理组件,包括:
所述第一代理组件依据预设的第二对应关系,获取所述第二代理组件的预设的外部接口的地址,作为目标代理地址;通过外部接口发送所述第二数据包至所述目标代理地址,所述第二对应关系包括预先配置于所述第二代理组件内的代理组件的标识和外部接口的地址的对应关系。
可选地,第二代理组件基于所述代理通信协议和所述第二数据包,得到所述原始数据包,包括:
所述第二代理组件使用所述代理通信协议解包所述第二数据包得到所述第一数据包;
所述第二代理组件使用所述第一通信协议解包所述第一数据包,得到所述原始数据包。
可选地,第二代理组件将所述第三数据包发送至所述目标微服务,包括:
所述第二代理组件获取第二回环地址,并通过内部接口将所述第三数据包发送至所述第二回环地址,其中,所述第二回环地址为所述目标微服务的预设的内部接口的地址。
本申请实施例还提供一种可读存储介质,该可读存储介质可存储有适于处理器执行的计算机程序,计算机程序被处理器执行时,实现本申请实施例提供的一种通信方法的各个步骤,如下:
一种通信方法,包括:
第一代理组件获取第一数据包和目标微服务的标识,依据所述目标微服务的标识,获取第二代理组件的标识,使用预设的代理通信协议封装所述第一数据包,得到第二数据包,将所述第二数据包发送至所述第二代理组件;
其中,所述第一数据包通过使用第一通信协议封装原始数据包得到,所述第一通信协议为第一微服务支持的通信协议,所述第一微服务为预先与所述第一代理组件唯一绑定的微服务,所述第二代理组件为预先与所述目标微服务唯一绑定的代理组件;
所述第二代理组件基于所述代理通信协议和所述第二数据包,得到所述原始数据包;使用第二通信协议封装所述原始数据包得到第三数据包;将所述第三数据包发送至所述目标微服务,以使所述目标微服务使用所述第二通信协议解包所述第三数据包,得到所述原始数据包;
其中,所述第二通信协议为所述目标微服务支持的通信协议。
可选地,本方法还包括:
所述第一微服务使用所述第一通信协议封装所述原始数据包,得到所述第一数据包,将所述第一数据包发送至第一回环地址;其中,所述第一回环地址为所述第一代理组件预设的内部接口的地址,所述第一数据包包括所述目标微服务的标识;
所述第一代理组件获取第一数据包和目标微服务的标识,包括:
所述第一代理组件通过内部接口接收所述第一数据包;
所述第一代理组件解析所述第一数据包,得到所述目标微服务的标识。
可选地,第一代理组件依据所述目标微服务的标识,获取第二代理组件的标识,包括:
所述第一代理组件依据预设的第一对应关系,获取所述第二代理组件的标识,所述第一对应关系包括预先配置于所述第一代理组件内的预先唯一绑定的代理组件和微服务的标识对应关系。
可选地,第一代理组件将所述第二数据包发送至所述第二代理组件,包括:
所述第一代理组件依据预设的第二对应关系,获取所述第二代理组件的预设的外部接口的地址,作为目标代理地址;通过外部接口发送所述第二数据包至所述目标代理地址,所述第二对应关系包括预先配置于所述第二代理组件内的代理组件的标识和外部接口的地址的对应关系。
可选地,第二代理组件基于所述代理通信协议和所述第二数据包,得到所述原始数据包,包括:
所述第二代理组件使用所述代理通信协议解包所述第二数据包得到所述第一数据包;
所述第二代理组件使用所述第一通信协议解包所述第一数据包,得到所述原始数据包。
可选地,第二代理组件将所述第三数据包发送至所述目标微服务,包括:
所述第二代理组件获取第二回环地址,并通过内部接口将所述第三数据包发送至所述第二回环地址,其中,所述第二回环地址为所述目标微服务的预设的内部接口的地址。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (9)
1.一种通信方法,其特征在于,包括:
第一代理组件获取第一数据包和目标微服务的标识,依据所述目标微服务的标识,获取第二代理组件的标识,使用预设的代理通信协议封装所述第一数据包,得到第二数据包,将所述第二数据包发送至所述第二代理组件;
其中,所述第一数据包通过使用第一通信协议封装原始数据包得到,所述第一通信协议为第一微服务支持的通信协议,所述第一微服务为预先与所述第一代理组件唯一绑定的微服务,所述第二代理组件为预先与所述目标微服务唯一绑定的代理组件,代理组件与对应的微服务唯一绑定,实现代理组件的分布式部署;
所述第二代理组件基于所述代理通信协议和所述第二数据包,得到所述原始数据包;使用第二通信协议封装所述原始数据包得到第三数据包;将所述第三数据包发送至所述目标微服务,以使所述目标微服务使用所述第二通信协议解包所述第三数据包,得到所述原始数据包;
其中,所述第二通信协议为所述目标微服务支持的通信协议;
每一代理组件被配置为通过预设的代理通信协议与其他至少一个代理组件通信;
所述第一代理组件将所述第二数据包发送至所述第二代理组件,包括:
所述第一代理组件依据预设的第二对应关系,获取所述第二代理组件的预设的外部接口的地址,作为目标代理地址;通过外部接口发送所述第二数据包至所述目标代理地址,所述第二对应关系包括预先配置于所述第二代理组件内的代理组件的标识和外部接口的地址的对应关系。
2.根据权利要求1所述的方法,其特征在于,还包括:
所述第一微服务使用所述第一通信协议封装所述原始数据包,得到所述第一数据包,将所述第一数据包发送至第一回环地址;其中,所述第一回环地址为所述第一代理组件预设的内部接口的地址,所述第一数据包包括所述目标微服务的标识;
所述第一代理组件获取第一数据包和目标微服务的标识,包括:
所述第一代理组件通过内部接口接收所述第一数据包;
所述第一代理组件解析所述第一数据包,得到所述目标微服务的标识。
3.根据权利要求1所述的方法,其特征在于,所述第一代理组件依据所述目标微服务的标识,获取第二代理组件的标识,包括:
所述第一代理组件依据预设的第一对应关系,获取所述第二代理组件的标识,所述第一对应关系包括预先配置于所述第一代理组件内的预先唯一绑定的代理组件和微服务的标识对应关系。
4.根据权利要求1所述的方法,其特征在于,所述第二代理组件基于所述代理通信协议和所述第二数据包,得到所述原始数据包,包括:
所述第二代理组件使用所述代理通信协议解包所述第二数据包得到所述第一数据包;
所述第二代理组件使用所述第一通信协议解包所述第一数据包,得到所述原始数据包。
5.根据权利要求1所述的方法,其特征在于,所述第二代理组件将所述第三数据包发送至所述目标微服务,包括:
所述第二代理组件获取第二回环地址,并通过内部接口将所述第三数据包发送至所述第二回环地址,其中,所述第二回环地址为所述目标微服务的预设的内部接口的地址。
6.一种通信系统,其特征在于,包括第一代理组件和第二代理组件,所述第一代理组件用于:
获取第一数据包和目标微服务的标识,依据所述目标微服务的标识,获取第二代理组件的标识,使用预设的代理通信协议封装所述第一数据包,得到第二数据包,将所述第二数据包发送至所述第二代理组件;
其中,所述第一数据包通过使用第一通信协议封装原始数据包得到,所述第一通信协议为第一微服务支持的通信协议,所述第一微服务为预先与所述第一代理组件唯一绑定的微服务,所述第二代理组件为预先与所述目标微服务唯一绑定的代理组件,代理组件与对应的微服务唯一绑定,实现代理组件的分布式部署;
所述第二代理组件用于:
接收所述第二数据包,基于所述代理通信协议和所述第二数据包,得到所述原始数据包;使用第二通信协议封装所述原始数据包得到第三数据包;将所述第三数据包发送至所述目标微服务,以使所述目标微服务使用所述第二通信协议解包所述第三数据包,得到所述原始数据包;
其中,所述第二通信协议为所述目标微服务支持的通信协议;
每一代理组件被配置为通过预设的代理通信协议与其他至少一个代理组件通信;
所述第一代理组件将所述第二数据包发送至所述第二代理组件,包括:
所述第一代理组件依据预设的第二对应关系,获取所述第二代理组件的预设的外部接口的地址,作为目标代理地址;通过外部接口发送所述第二数据包至所述目标代理地址,所述第二对应关系包括预先配置于所述第二代理组件内的代理组件的标识和外部接口的地址的对应关系。
7.根据权利要求6所述的系统,其特征在于,还包括:所述第一微服务和所述目标微服务;
所述第一微服务用于使用所述第一通信协议封装所述原始数据包,得到所述第一数据包,并发送所述第一数据包至所述第一代理组件;
所述目标微服务用于接收所述第二代理组件发送的所述第三数据包,并使用所述第二通信协议解包所述第三数据包,得到原始数据包。
8.一种通信设备,其特征在于,包括:存储器和处理器;
所述存储器,用于存储程序;
所述处理器,用于执行所述程序,实现如权利要求1~5中任一项所述的通信方法的各个步骤。
9.一种可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,实现如权利要求1~5中任一项所述的通信方法的各个步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210385640.3A CN114900550B (zh) | 2022-04-13 | 2022-04-13 | 一种通信方法以及相关装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210385640.3A CN114900550B (zh) | 2022-04-13 | 2022-04-13 | 一种通信方法以及相关装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114900550A CN114900550A (zh) | 2022-08-12 |
CN114900550B true CN114900550B (zh) | 2024-05-07 |
Family
ID=82716841
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210385640.3A Active CN114900550B (zh) | 2022-04-13 | 2022-04-13 | 一种通信方法以及相关装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114900550B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110049059A (zh) * | 2019-04-26 | 2019-07-23 | 深圳市网心科技有限公司 | 一种外网设备与内网设备间通信方法及相关装置 |
CN111131193A (zh) * | 2019-12-10 | 2020-05-08 | 四川新网银行股份有限公司 | 支持多协议异构非代码侵入的分布式服务治理的方法 |
US10764244B1 (en) * | 2019-06-12 | 2020-09-01 | Cisco Technology, Inc. | Systems and methods providing a multi-cloud microservices gateway using a sidecar proxy |
CN113301116A (zh) * | 2021-04-15 | 2021-08-24 | 阿里巴巴新加坡控股有限公司 | 微服务应用跨网络通信方法、装置、系统及设备 |
CN113301166A (zh) * | 2021-06-16 | 2021-08-24 | 杭州华橙软件技术有限公司 | 服务的调用方法及装置、存储介质、电子装置 |
-
2022
- 2022-04-13 CN CN202210385640.3A patent/CN114900550B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110049059A (zh) * | 2019-04-26 | 2019-07-23 | 深圳市网心科技有限公司 | 一种外网设备与内网设备间通信方法及相关装置 |
US10764244B1 (en) * | 2019-06-12 | 2020-09-01 | Cisco Technology, Inc. | Systems and methods providing a multi-cloud microservices gateway using a sidecar proxy |
CN111131193A (zh) * | 2019-12-10 | 2020-05-08 | 四川新网银行股份有限公司 | 支持多协议异构非代码侵入的分布式服务治理的方法 |
CN113301116A (zh) * | 2021-04-15 | 2021-08-24 | 阿里巴巴新加坡控股有限公司 | 微服务应用跨网络通信方法、装置、系统及设备 |
CN113301166A (zh) * | 2021-06-16 | 2021-08-24 | 杭州华橙软件技术有限公司 | 服务的调用方法及装置、存储介质、电子装置 |
Non-Patent Citations (2)
Title |
---|
MAMS: Multi-Agent MicroServices;Rem W Collier.etc;Companion The 2019 World Wide Web Conference;全文 * |
基于微服务的数据服务框架设计;欧阳荣彬;王倩宜;龙新征;;华中科技大学学报(自然科学版)(S1);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN114900550A (zh) | 2022-08-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109391500B (zh) | 一种配置管理方法、装置及设备 | |
US20040186918A1 (en) | Method and apparatus for dispatching incoming data in a multi-application terminal | |
CN101262478A (zh) | 穿越网络地址转换nat的方法和设备 | |
CN110769009B (zh) | 用户身份认证方法及系统 | |
JP2009519633A (ja) | Imsインスタント・メッセージを送信するための方法、システム及び装置 | |
US8954049B2 (en) | Method of operating a module for wireless communication or the like wireless communication terminal, module for wireless communication and device of an integrated circuit card and a system of a communication equipment for operating the module | |
WO2009086249A2 (en) | Interactive short messaging service | |
CN111818158B (zh) | 网关控制方法、装置、电子设备及存储介质 | |
CN103997539A (zh) | 基于web服务的雷达运行状态采集分发系统及其方法 | |
CN111093262A (zh) | 一种实现5g用户注册的方法、网元设备及存储介质 | |
CN113824795A (zh) | 车端与云端的通信方法、装置、系统 | |
CN110247926B (zh) | 一种交互方法和系统 | |
WO2009029701A1 (en) | Interactive short messaging service | |
CN114900550B (zh) | 一种通信方法以及相关装置 | |
CN113296986A (zh) | 消息的处理方法、装置、服务器及存储介质 | |
CN112653716B (zh) | 服务绑定的方法及装置 | |
CN101465783B (zh) | 异构家庭网络设备之间的连接方法、装置及连接网桥 | |
CN102325187A (zh) | 一种整合多种功能服务的系统及方法 | |
CN111371823B (zh) | 一种非web场景下客户端访问微服务的方法 | |
CN115174340B (zh) | 支持多种协议类型与物联网操作系统交互的通信方法 | |
Aijaz et al. | Enabling resource-oriented Mobile Web Server for short-lived services | |
CN116709265A (zh) | 车载通信方法、装置、设备和存储介质 | |
CN112887756B (zh) | 一种多媒体微服务的多输入多输出通信系统及方法 | |
CN116192933B (zh) | 一种基于微服务网关动态扩展非http协议的方法和系统 | |
CN115412588B (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 |