CN115866088A - 协议转换方法、装置、电子设备和计算机可读存储介质 - Google Patents

协议转换方法、装置、电子设备和计算机可读存储介质 Download PDF

Info

Publication number
CN115866088A
CN115866088A CN202211529550.3A CN202211529550A CN115866088A CN 115866088 A CN115866088 A CN 115866088A CN 202211529550 A CN202211529550 A CN 202211529550A CN 115866088 A CN115866088 A CN 115866088A
Authority
CN
China
Prior art keywords
service
protocol
traffic
component
connection
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.)
Pending
Application number
CN202211529550.3A
Other languages
English (en)
Inventor
陈志国
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Jingdong Technology Information Technology Co Ltd
Original Assignee
Jingdong Technology Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Jingdong Technology Information Technology Co Ltd filed Critical Jingdong Technology Information Technology Co Ltd
Priority to CN202211529550.3A priority Critical patent/CN115866088A/zh
Publication of CN115866088A publication Critical patent/CN115866088A/zh
Pending legal-status Critical Current

Links

Images

Abstract

本公开提供一种协议转换方法、装置以及电子设备和计算机可读存储介质,涉及计算机与互联网技术领域。协议转换方法包括:第一服务的第一边车组件通过第一协议接收第一流量,第一边车组件用于将第一服务的业务应用逻辑与协议转换逻辑进行分离;第一边车组件对第一协议下的第一流量进行解码,以获得第二流量;第一边车组件通过第一服务的服务接口的原生协议,将第二流量转发给第一服务的业务应用接口,以便第一服务的业务应用组件对第二流量进行处理。本公开实施例可以在将第一协议下的第一流量灵活的转换为第一服务的原生协议下的第二流量。

Description

协议转换方法、装置、电子设备和计算机可读存储介质
技术领域
本公开涉及计算机与互联网技术领域,尤其涉及一种协议转换方法、装置、电子设备和计算机可读存储介质。
背景技术
传统的协议转换方案主要包括:基于网关的协议转换和基于SDK(软件开发工具包)增强的协议转换。
其中,基于网关的协议转换有以下缺点:网关易引发单点故障,导致所有内部服务不可访问;另外网关的协议扩展成本高,需要专门人员进行协议扩展开发工作,且升级过程还会影响所有内部服务。
其中,基于SDK增强的协议转换具有以下缺点:SDK的开发与其对应的应用本身紧密绑定;另外SDK增强协议转换升级替换困难、维护成本高;而且SDK通过暴露更多端口支持协议转换(即一种协议转换模式需要定制一个端口),用户体验欠佳。
因此,相关技术中的协议转换存在转换不灵活、转换成本高、协议转换升级困难、用户体验不好等问题。
发明内容
本公开的目的在于提供一种协议转换方法、装置、电子设备以及计算机可读存储介质,能够在每个应用服务上单独部署协议转换,同时该协议转换容易升级更新,便于维护。
本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。
本公开实施例提供了一种协议转换方法,包括:第一服务的第一边车组件通过第一协议接收第一流量,所述第一边车组件用于将所述第一服务的业务应用逻辑与协议转换逻辑进行分离;所述第一边车组件对所述第一协议下的第一流量进行解码,以获得第二流量;所述第一边车组件通过所述第一服务的服务接口的原生协议,将所述第二流量转发给所述第一服务的业务应用接口,以便所述第一服务的业务应用组件对所述第二流量进行处理。
在一些实施例中,第一服务的第一边车组件通过第一协议接收第一流量,包括:所述第一服务的第一边车组件通过第一连接接收所述第一流量,所述第一连接是基于所述第一协议建立的;其中,所述第一边车组件对所述第一协议下的第一流量进行解码,以获得第二流量,包括:所述第一边车组件的报文处理器通过所述第一协议对应的解码器对所述第一流量进行解码,以获得第二流量;其中,所述第一边车组件通过所述第一服务的服务接口的原生协议,将所述第二流量转发给所述第一服务的业务应用接口,包括:所述报文处理器通过所述第一服务的服务接口的原生协议,将所述第二流量转发给所述第一服务的业务应用接口。
在一些实施例中,所述第一连接是所述第一边车组件与网关或者负载均衡组件之间的连接;其中,在所述第一服务的第一边车组件通过第一连接接收所述第一流量之前,所述方法还包括:所述第一服务的第一边车组件接收来自网关或者负载均衡组件的建立连接的请求报文;所述第一边车组件根据所述请求报文与所述网关或者所述负载均衡组件进行协商;在协商过程中,确定通过所述第一协议在所述第一边车组件与所述网关或者所述负载均衡组件之间建立所述第一连接。
在一些实施例中,所述第一连接是所述第一边车组件与第二服务的第二边车组件之间的连接;其中,在所述第一服务的第一边车组件通过第一连接接收所述第一流量之前,所述方法还包括:所述第二服务的第二边车组件拦截所述第二服务发往所述第一服务的连接请求报文,所述连接请求报文中携带所述第一协议;所述第二边车组件将所述连接请求报文发送至所述第一服务的所述第一边车组件进行协议推断,并协商所述连接请求报文中的所述第一协议是否可以建立连接;若通过协商确定所述连接请求报文中的所述第一协议被支持,则通过所述连接请求中的所述第一协议在所述第一边车组件和所述第二边车组件之间建立所述第一连接。
在一些实施例中,所述方法还包括:所述第一服务的业务应用组件响应于所述第二流量生成响应流量;所述第一服务的业务应用组件通过所述服务接口的原生协议对所述响应流量进行编码,并将编码后响应流量发送给所述第一边车组件;所述第一边车组件对所述原生协议下的响应流量进行解码,并使用所述第一协议对所述响应流量进行编码;所述第一边车组件将编码后的响应流量通过所述第一协议转发给第二服务或者客户端。
在一些实施例中,所述第一流量是第二服务调用所述第一服务的调用流量;其中,在第一服务的第一边车组件通过第一协议接收第一流量之前,所述方法还包括:所述第二服务确定通过所述第一流量向所述第一服务发起服务调用;所述第二服务的第二边车组件根据所述第一流量确定开启协议转换功能;所述第二边车组件通过所述第二边车组件的协议转换接口,将所述第一流量转发给所述第一服务的所述第一边车组件的协议转换接口,以便所述第一边车组件对所述第一流量进行协议转换。
在一些实施例中,所述第一流量是客户端调用所述第一服务的调用流量;其中,在第一服务的第一边车组件通过第一协议接收第一流量之前,所述方法还包括:所述客户端通过第三协议向所述第一服务对应的网关或者负载均衡组件发送所述第一流量;所述第一服务对应的网关或者负载均衡组件通过所述第三协议接收所述第一流量;所述网关或者负载均衡组件通过所述第一协议将所述第一流量转发给所述第一服务的所述第一边车组件。
本公开实施例提供了一种协议转换装置,包括:第一流量接收模块、协议转换模块和流量转发模块。
其中,所述第一流量接收模块用于第一服务的第一边车组件通过第一协议接收第一流量,所述第一边车组件用于将所述第一服务的业务应用逻辑与协议转换逻辑进行分离;所述协议转换模块可以用于所述第一边车组件对所述第一协议下的第一流量进行解码,以获得第二流量;所述流量转发模块可以用于所述第一边车组件通过所述第一服务的服务接口的原生协议,将所述第二流量转发给所述第一服务的业务应用接口,以便所述第一服务的业务应用组件对所述第二流量进行处理。
本公开实施例提出一种电子设备,该电子设备包括:存储器和处理器;所述存储器用于存储程序指令;所述处理器调用所述存储器存储的所述程序指令,用于实现上述任一项所述的协议转换方法。
本公开实施例提出一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如上述任一项所述的协议转换方法。
本公开实施例提出一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述协议转换方法。
本公开实施例提供的协议转换方法、装置及电子设备和计算机可读存储介质,通过与第一服务的业务应用逻辑分离的第一边车组件讲第一流量进行协议转换,一方面避免了集中式协议转换导致的单点故障;另一方面,通过将协议转换逻辑和业务应用逻辑进行分离,可以使得将协议转换与应用逻辑隔离,避免协议转换的添加和更新等对应用逻辑的影响,也使得协议转换的添加和更新不受应用的影响,提高了协议转换添加和更新的灵活性,便于后期维护。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据相关技术示出的一种南北向流量协议转换架构的示意图。
图2是根据相关技术示出的一种东西向流量协议转换架构的示意图。
图3是根据一示例性实施例示出的一种协议转换方法的流程图。
图4是根本申请实施例示出的一种协议转换架构的示意图。
图5是根据一示例性实施例示出的一种协议转换方法的流程图。
图6是根据一示例性实施例示出的第一连接建立方法的流程图。
图7是根据一示例性实施例示出的一种连接建立方法的流程图。
图8是根据一示例性实施例示出的一种服务响应方法的流程图。
图9是根据一示例性实施例示出的一种协议转换方法的流程图。
图10是根据一示例性实施例示出的一种协议转换方法的流程图。
图11是根据一示例性实施例示出的一种边车组件的结构示意图。
图12是根据一示例性实施例示出的一种协议转换装置的框图。
图13示出了适于用来实现本公开实施例的的电子设备的结构示意图。
具体实施方式
现在将参考附图更全面地描述示例实施例。然而,示例实施例能够以多种形式实施,且不应被理解为限于在此阐述的实施例;相反,提供这些实施例使得本公开将全面和完整,并将示例实施例的构思全面地传达给本领域的技术人员。在图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。
本公开所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。在下面的描述中,提供许多具体细节从而给出对本公开的实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而省略特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本公开的各方面。
附图仅为本公开的示意性图解,图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和步骤,也不是必须按所描述的顺序执行。例如,有的步骤还可以分解,而有的步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
在本申请的描述中,除非另有说明,“/”表示“或”的意思,例如,A/B可以表示A或B。本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。此外,“至少一个”是指一个或多个,“多个”是指两个或两个以上。“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同;用语“包含”、“包括”和“具有”用以表示开放式的包括在内的意思并且是指除了列出的要素/组成部分/等之外还可存在另外的要素/组成部分/等。
为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施方式对本发明进行进一步的详细描述,需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。
协议转换指将一个设备的标准或协议转换成适用于另一设备的协议的过程,目的是为了使得不同协议之间实现互操作。协议通常是以软件的形式出现。比如路由器将一个网络中的数据格式、数据速率等转换成适用于另一个网络的协议。例如,在RPC(RemoteProcedure Call Protocol,远程调用协议)领域网络中有很多种协议,分别来源于不同的RPC框架,它们之间需要做相互兼容的转换。
在本申请中,协议转换的发生点可以在上游服务或者叫Provider端(数据提供方),也可以在下游服务或者叫Consumer端(数据调用方),常规的协议转换功能会集成在网关中,用来实现外部请求通过http协议转内部私有rpc(远程调用服务)协议服务(一般来说应用不同,RPC协议可以不同),常见于南北向流量(客户端到服务器之间的流量)。但随着云原生架构的普及,系统实现方式的多样性正在成为常态化,编程语言,RPC乃至通讯协议也不再局限于某一种。这就催生出东西向流量协议转换的强烈需求。
在传统的协议转换方案中,大体以两种方案为主:一种是基于网关模式的协议转换,一种是基于SDK(软件开发工具包)增强的协议转换。下面将会针对这两类协议转换方式,分别阐述他们各自的优缺点。
网关模式协议转换,如图1所示,以部署API网关为主要方式,将协议转换能力实现放置在网关应用中,通过约定的服务描述与方法调用方式进行内部服务调用。图1中的spring cloud是微服务框架,Dubbo是服务框架,应用容器即APP容器(App container)。
该种协议转换方式常见于外部流量调用内部服务的场景,网关作为内部接口的统一出口提供给外部用户进行服务接口调用,通常网关会提供一个统一的域名,根据前端不同的请求将请求映射到后端不同协议(如图1所示的服务A对应的协议,如图1所示的服务B对应的协议,再如图1所示的服务N对应的协议,N为大于或者等于1的证书)的服务。常见如Web(World Wide Web,全球广域网)站点,移动App,边缘计算等请求。网关作为内部服务的唯一出口可以对内部服务进行很好的安全保护与统一管理。该种协议转换方式具有如下优点:资源利用率高,统一管理接口资源,为比较常见的协议转换方式。但是同样拥有其缺点,例如集中部署可能会引发的单点故障,运维开发人员为负责网关的专属研发人员,业务人员与服务人员可能不是同一批人员,业务研发人员想要针对自己的服务接口去定制或修改网关会因为能力不够导致修改失败,或者需要求助于运维人员,导致通过网关进行协议转换灵活且成本较高。
网关是一种产品或者应用,有专门的研发人员,和业务研发人员不同,业务研发人员不能直接修改别人的系统。
SDK协议扩展方式通常是在内部异构或者不同RPC协议的服务之间互相访问场景使用的,这类场景流量通常称之为东西向流量。SDK协议扩展增强方式,如图2所示,当流量通过网关从外部进入内网后会调用相关服务(如服务A),但是如果该服务不能提供完整服务时,会继续调用其他的服务(如图2中的服务B或者服务N)。在服务调度过程中,可以通过服务对应的SDK完成协议转换。如图2所示,可以在服务A调用服务B时,通过服务B对应的SDK接口实现协议的转换。
通常RPC的SDK在提供给业务研发使用时是不允许随意修改SDK(有专门的人员开发好,提供给业务研发人员的是打包好的产品,业务研发只能用,不能改)的,当然某些RPC的SDK提供了很好的扩展方式,例如Dubbo。优点是,性能好,资源利用率高。但是Dubbo的SDK针对不同协议的适配采取了不同端口进行区别,也就是不同协议请求需要访问应用的不同端口,体验较差。
为了解决上述问题,本申请提供了一种协议转换方法,具体可以通过以下实施例进行说明。
图3是根据一示例性实施例示出的一种协议转换方法的流程图。
参照图3,本公开实施例提供的协议转换方法可以包括以下步骤。
步骤S302,第一服务的第一边车组件通过第一协议接收第一流量,第一边车组件用于将第一服务的业务应用逻辑与协议转换逻辑进行分离。
SideCar(边车组件),可以将本属于应用程序(如提供第一服务的应用程序)的功能拆分成单独的进程。在微服务体系内,可以将集成在应用内的微服务功能剥离到边车组件内,例如可以将应用的协议转换功能剥离到边车组件内。
SideCar为独立部署的进程,可以降低应用程序代码与底层代码的耦合度,帮助异构服务通过SideCar快速接入微服务体系。
本实施例,可以通过云原生服务网格的方式,将业务应用本身与协议转换逻辑本身通过SideCar方式分离,协议转换SideCar依据业务应用自身部署实例的多少进行等量注入(如一个应用可以部署多个实例,一个实例可以部署一个SideCar)。
本实施例可以通过采用服务网格的SideCar模式,将协议转换能力从网关或者应用的SDK中剥离到SideCar的数据平面中去实现。
通过上述部署方式,使得网关无需采用集中式部署,可以采取K8s中Ingress或Service等轻量级实现,域名也可以根据业务需求自由设置,流量出入口可多样化配置。
在一些实施例中,第一服务的第一边车组件可以通过第一协议接收第一流量,其中第一协议可以是一些公共服务协议,例如HTTP协议,HTTP1协议等,本申请对此不做限制。
如图4所示,第一服务(如服务B)的第一边车组件可以通过HTTP协议从网关处接收第一流量(即第一流量可以是来自于外网的南北向流量),还可以通过HTTP协议从其他服务(如服务A或者服务N等)处接收第一流量(即第一力量可以是来自于其他服务的东西向流量),本申请对此不做限制。
步骤S304,第一边车组件对第一协议下的第一流量进行解码,以获得第二流量。
在一些实施例中,第一边车组件在接收到第一流量后,会确定第一流量所对应的第一协议的协议类型,然后通过第一协议对应的协议类型对第一流量进行解码处理,以获得解码后的第二流量。
步骤S306,第一边车组件通过第一服务的服务接口的原生协议,将第二流量转发给第一服务的业务应用接口,以便第一服务的业务应用组件对第二流量进行处理。
在一些实施例中,第一边车组件可以使用第一服务的服务接口的原生协议,对第二流量进行编码,然后将第二流量通过该原生协议转发给第一服务的应用接口。
其中,第一服务的原生协议可以例如是第一服务对应的私有协议,不同的服务可以对应不同的私有协议,本申请对此不做限制。
一般来说,不同的服务对应的公有协议可以是公知的,例如HTTP协议或者HTTP1协议等,不同的服务是清楚如何使用公有协议进行编解码的;而不同的服务对应的私有协议可以是不同的,而不同的服务之间可以协议可能需要转换。
上述原生协议可以是第一服务对应的私有协议。
在一些实施例中,第一边车组件是已知第一服务的服务接口的原生协议的编解码方法的。
上述实施例,通过抽象RPC调用流程,采用插件化机制,将协议扩展门槛降低。通过上述第一组件对协议转换过程进行升级优化过程,可以降低应用本身的影响。另外,通过第一服务的统一端口适配第一服务中的多协议,可以提升用户体验。且通过SideCar方式部署可保留原应用协议端口入口,对原RPC框架无任何影响,可通过从控制面下发对应控制规则来控制SideCar做到动态开关协议扩展功能。同时,采用云原生方式如K8s的Service,Ingress等方式可动态控制服务的南北向流量请求。
对比SDK协议转换方式模式,本实施例采用新型技术(云原生服务网格模式)将协议转换与应用分离,做到避免协议转换模块升级所带来的对应用的影响,且不在与服务的实现语言相绑定,通过SideCar热更新可做到升级对应用本身无影响,无需重启应用容器等优点。对比多端口协议支持的方式,单端口是适应保温处理的协议推断有效的降低客户端连接访问门槛,提升用户体验。对比网关协议转换方式,除了上述创新点外,分布式部署做到了跟随服务部署,避免了多服务场景下的单点故障。
总而言之,上述实施例可以获得以下技术效果。
1.利用服务网格模式(SideCar),降低协议转换模块对应用的侵入性,减少协议更新升级对应用的影响。
2.通过分布式部署协议转换模块,避免网关式协议转换所带来的集中式影响,单点故障风险。真正做到按需部署,有效利用资源。
3.通过单端口自适应协议报文处理,极大的降低了使用者的复杂度,提升用户体验。
图5是根据一示例性实施例示出的一种协议转换方法的流程图。
参考图5,上述协议转换方法可以包括以下步骤。
步骤S502,第一服务的第一边车组件通过第一连接接收第一流量,第一连接是基于第一协议建立的。
其中,上述第一连接可以指的是第一边车组件与网关之间的连接,也可以指的是第一边车组件与其他服务的边车组件之间的连接,本申请对此不做限制。
在一些实施例中,上述第一连接可以是通过第一协议建立的。
步骤S504,第一边车组件的报文处理器通过第一协议对应的解码器对第一流量进行解码,以获得第二流量。
在一些实施例中,第一边车组件中可以包括第一协议对应的编解码器。
在一些实施例中,第一边车组件的报文处理器可以通过第一协议对应的解码器对第一流量进行解码,以获得第二流量。
步骤S506,报文处理器通过第一服务的服务接口的原生协议,将第二流量转发给第一服务的业务应用接口。
在一些实施例中,当报文处理器通过第一协议对应的解码器对第一流量进行解码获得第二流量后,还可以通过第一服务的服务接口的原生协议将第二流量转发给第一服务的业务应用接口。
本实施例,通过上述第一连接收发流量,可以很容易的确定流量所在协议,便于协议转换。
下面将通过图7实施例或图8实施例,解释上述第一连接是如何建立的。
图6是根据一示例性实施例示出的第一连接建立方法的流程图。
在一些实施例中,第一连接是第一边车组件与网关或者负载均衡组件之间的连接。
参考图6,上述第一连接建立方法可以包括以下步骤。
步骤S602,第一服务的第一边车组件接收来自网关或者负载均衡组件的建立连接的请求报文。
步骤S604,第一边车组件根据请求报文与网关或者负载均衡组件进行协商。
步骤S606,在协商过程中,确定通过第一协议在第一边车组件与网关或者负载均衡组件之间建立第一连接。
步骤S608,第一服务的第一边车组件通过第一连接接收第一流量,第一连接是基于第一协议建立的。
其中,上述第一连接可以指的是第一边车组件与网关之间的连接,也可以指的是第一边车组件与其他服务的边车组件之间的连接,本申请对此不做限制。
在一些实施例中,上述第一连接可以是通过第一协议建立的。
步骤S610,第一边车组件的报文处理器通过第一协议对应的解码器对第一流量进行解码,以获得第二流量。
在一些实施例中,第一边车组件中可以包括第一协议对应的编解码器。
在一些实施例中,第一边车组件的报文处理器可以通过第一协议对应的解码器对第一流量进行解码,以获得第二流量。
步骤S612,报文处理器通过第一服务的服务接口的原生协议,将第二流量转发给第一服务的业务应用接口。
在一些实施例中,当报文处理器通过第一协议对应的解码器对第一流量进行解码获得第二流量后,还可以通过第一服务的服务接口的原生协议将第二流量转发给第一服务的业务应用接口。
在本实施例中,第一服务的第一组件SideCar在处理南北向流量的协议转换时,可以根据来自网关或者负载均衡组件LB的请求建立连接的请求报文进行协议协商,协商过程中判断该链接的建立是基于HTTP1,HTTP2,还是其他的公共协议。在连接建立完成后(TCP连接),后续的网络请求二进制报文将会被该公共协议的编码器Encoder或者解码器Decoder进行编解码为具体的协议模型。注意,此连接的建立是在网关或LB与服务的SideCar暴露的端口之间建立的,当请求报文经过SideCar解析后,SideCar中的报文处理器会将请求通过应用接口的原生协议进行转发至应用(例如第一服务的应用)暴露的端口,应用处理后结果会经过SideCar返回到客户端。
图7是根据一示例性实施例示出的一种连接建立方法的流程图。
在一些实施例中,第一连接是第一边车组件与第二服务的第二边车组件之间的连接。
其中,第二服务可以是区别于第一服务的其他服务。
参考图7,上述连接建立方法可以包括以下步骤。
步骤S702,第二服务的第二边车组件拦截第二服务发往第一服务的连接请求报文,连接请求报文中携带第一协议。
步骤S704,第二边车组件将连接请求报文发送至第一服务的第一边车组件进行协议推断,并协商连接请求报文中的第一协议是否可以建立连接。
步骤S706,若通过协商确定连接请求报文中的第一协议被支持,则通过连接请求中的第一协议在第一边车组件和第二边车组件之间建立第一连接。
步骤S708,第一服务的第一边车组件通过第一连接接收第一流量,第一连接是基于第一协议建立的。
其中,上述第一连接可以指的是第一边车组件与网关之间的连接,也可以指的是第一边车组件与其他服务的边车组件之间的连接,本申请对此不做限制。
在一些实施例中,上述第一连接可以是通过第一协议建立的。
步骤S710,第一边车组件的报文处理器通过第一协议对应的解码器对第一流量进行解码,以获得第二流量。
在一些实施例中,第一边车组件中可以包括第一协议对应的编解码器。
在一些实施例中,第一边车组件的报文处理器可以通过第一协议对应的解码器对第一流量进行解码,以获得第二流量。
步骤S712,报文处理器通过第一服务的服务接口的原生协议,将第二流量转发给第一服务的业务应用接口。
在一些实施例中,当报文处理器通过第一协议对应的解码器对第一流量进行解码获得第二流量后,还可以通过第一服务的服务接口的原生协议将第二流量转发给第一服务的业务应用接口。
在本实施例中,第一服务的第一组件SideCar在处理东西向流量的协议转换时,根据来自其他服务(如第二服务)的连接请求报文与该第二服务进行协议协商,协商过程中判断该链接的建立是基于HTTP1、HTTP2,还是其他的公共协议。在建立完连接后(TCP连接),后续的网络请求二进制报文将会被该公共协议的编码器Encoder或者解码器Decoder进行编解码为具体的协议模型。注意,此连接的建立是在第一服务的SideCar暴露的端口与第二服务的SideCar暴露的接口之间建立的,当请求报文经过第一服务的第一边车组件SideCar解析后,报文处理器会将请求通过应用接口的原生协议进行转发至应用暴露的端口,应用处理后结果会经过SideCar返回到客户端。
图8是根据一示例性实施例示出的一种服务响应方法的流程图。
参考图8,上述服务响应方法可以包括以下步骤。
步骤S802,第一服务的业务应用组件响应于第二流量生成响应流量。
在一些实施例中,第一服务的业务应用组价可以业务需求响应于第二流量生成响应流量。
步骤S804,第一服务的业务应用组件通过服务接口的原生协议对响应流量进行编码,并将编码后响应流量发送给第一边车组件。
步骤S806,第一边车组件对原生协议下的响应流量进行解码,并使用第一协议对响应流量进行编码。
步骤S808第一边车组件将编码后的响应流量通过第一协议转发给第二服务或者客户端。
在一些实施例中,如果第一流量是南北向流量,则第一边车组件可以通过第一协议将编码后的响应流量转发给客户端;如果第一流量是东西向流量,则第一边车组件可以通过第一协议将编码后的响应流量转发给其他服务(如发起第一流量的第二服务)。
图9是根据一示例性实施例示出的一种协议转换方法的流程图。
在一些实施例中,第一流量是客户端调用第一服务的调用流量。
参考图9,上述协议转换方法可以包括以下步骤。
步骤S902,客户端通过第三协议向第一服务对应的网关或者负载均衡组件发送第一流量。
上述第三协议可以与第一协议相同,也可以与第一协议不同,本申请对此不做限制。
如果第三协议与第一协议不同,那么网关或者负载均衡组件可以在第三协议和第一协议之间进行协议转换,本实施例对此不做赘述。
步骤S904,第一服务对应的网关或者负载均衡组件通过第三协议接收第一流量。
步骤S906,网关或者负载均衡组件通过第一协议将第一流量转发给第一服务的第一边车组件。
步骤S908,第一服务的第一边车组件通过第一协议接收第一流量,第一边车组件用于将第一服务的业务应用逻辑与协议转换逻辑进行分离。
步骤S910,第一边车组件对第一协议下的第一流量进行解码,以获得第二流量。
步骤S912,第一边车组件通过第一服务的服务接口的原生协议,将第二流量转发给第一服务的业务应用接口,以便第一服务的业务应用组件对第二流量进行处理。
图10是根据一示例性实施例示出的一种协议转换方法的流程图。
在一些实施例中,第一流量是第二服务调用第一服务的调用流量。
步骤S1002,第二服务确定通过第一流量向第一服务发起服务调用。
步骤S1006,第二服务的第二边车组件根据第一流量确定开启协议转换功能。
在一些实施例中,第二服务的第二边车组件可以根据控制面下发的配置信息,确定是否要为第一流量开启协议转换功能。
步骤S1008,第二边车组件通过第二边车组件的协议转换接口,将第一流量转发给第一服务的第一边车组件的协议转换接口,以便第一边车组件对第一流量进行协议转换。
如果第二边车根据配置信息确定不要为第一流量开启协议转换功能的话,第二边车组件会通过通用接口将第一流量转给第一服务;如果第二边车组件根据配置信息确定要为第一流量开启协议转换功能,第二边车组件会通过第二边车的协议转换接口将第一流量转发给第一服务的第一边车组件的协议转换接口。
当第一服务的第一边车组件通过协议转换接口接收到第一流量时,就知道需要对第一流量进行协议转换,进而使用第一边车组件对第一流量进行协议转换。
步骤S1011,第一服务的第一边车组件通过第一协议接收第一流量,第一边车组件用于将第一服务的业务应用逻辑与协议转换逻辑进行分离。
步骤S1012,第一边车组件对第一协议下的第一流量进行解码,以获得第二流量。
步骤S1014,第一边车组件通过第一服务的服务接口的原生协议,将第二流量转发给第一服务的业务应用接口,以便第一服务的业务应用组件对第二流量进行处理。
在一些实施例中,SideCar处理东西向流量的协议转换时,请求的发起方在内部应用我们称之为Consumer端。请求接受方我们称之为Provider端,Consumer与Provider端都会部署SideCar,也被称之为数据平面,SideCar内运行的程序是相同的,只是在不同的角色下发挥的作用不同。图11示出了Consumer和Provider端的边车组件的具体结构,但是图11中为了省略重复内容,Consumer端的SideCar没有描绘具体细节,大体与Provider相同,不同之处后后面会指出。
在一些实施例中,东西向流量用户请求从网关或负载均衡组件LB进入Consumer端对应的服务后,如果Consumer端对应的服务无法提供完整的服务,Consumer端的服务会发起其他服务的RPC调用。在发起其他服务的RPC调用时,Consumer端的SideCar会根据控制面下发的配置信息,判断是否开启SideCar流量拦截以及协议转换能力。如果开启该功能,则会通过创建iptables路由规则,将Consumer端发往Provider端的流量拦截转发至Consumer的SideCar的端口中。首先处理的连接报文,Consumer的SideCar会将连接报文发送至Provider的SideCar中进行协议推断,并协商该类型协议是否可以建立连接。若请求连接的协议被支持,则连接成功。否则,该连接建立失败。连接建立成功后,服务请求报文会经由Consumer的SideCar端发往Provider的SideCar。此时,不再需要对协议进行推断,而是进行必要的微服务治理操作。
如图11所示,Consumer端的微服务治理包括了规则路由,负载均衡,熔断降级等,而Provider端则进行访问鉴权,访问限流等服务治理功能的处理。因为该发明与上述服务治理特性无关,因此不再赘述。该发明中重点在协议推断,协议编解码等IO处理流程阶段,因此重点在此细述。
在一些实施例中,上述第一边车组件中的协议转换功能可以新增或者更新优化。具体原理可以参考以下说明。
如图10所示,报文在经由Consumer端发送至Provider端后,SideCar将会由连接创建阶段的协议协商选定的协议类型所对应的编解码器进行解码。而对于协议转换最重要的部分就是多种协议的扩展支持。而做到同端口的多协议支持则离不开上述的重点功能-协议推断。协议推断功能会抽象一个接口方法,例如可以命名为“ProtocolMatcher(协议匹配器)”。不同的协议在去做扩展实现时可重写此方法,并制定具体协议的识别方法。例如常规做法为提取报文中某段特殊字符定义为MagicCode。该特殊字符在该协议的连接请求时是固定不变或者是有规律可循的,依据MagicCode可推断该链接属于支持的协议列表中的哪类协议。同样在协议扩展时,同样依据此方式,将新增的支持协议通过插件式扩展的方式增加至SideCar运行时即可。如图中所示协议扩展除了包括上述的“ProtocolMatcher”,还包括“Encoder”,“Decoder”等与协议编解码相关的接口方法。
在进行完协议推断后,由具体的协议“Decoder”解码器将二进制流报文翻译为具体的协议模型数据,然后经过一系列报文附加处理功能,如主题报文数据的解密,解压缩,多路复用处理等。再由报文类型推断器推断该报文输出该协议中的哪类报文类型,识别原理类似于上述的“ProtocolMatcher”,同样是有固定的可识别码进行报文类型推断。识别报文类型之后,将报文数据交由该协议具体的某类报文处理器处理。同样,报文类型也可扩展实现。报文类型处理器是最终的协议报文处理逻辑实现区域,用于处理不同的协议下不同的报文类型,比如请求报文会将该报文进行处理,等待结果产生后,再将结果数据经由上述一系列的扩展功能进行压缩,加密,编码等生成二进制流报文,再由连接通道发送给Consumer端。比如心跳报文,则会解析心跳发起方的各项数据修改自身维护的心跳模型数据,将心跳回应返回给心跳发起方。
基于同一发明构思,本公开实施例中还提供了一种协议转换装置,如下面的实施例。由于该装置实施例解决问题的原理与上述方法实施例相似,因此该装置实施例的实施可以参见上述方法实施例的实施,重复之处不再赘述。
图12是根据一示例性实施例示出的一种协议转换装置的框图。参照图12,本公开实施例提供的协议转换装置1200可以包括:第一流量接收模块1201、协议转换模块1202、流量转发模块1203。
其中,第一流量接收模块1201可以用于第一服务的第一边车组件通过第一协议接收第一流量,第一边车组件用于将第一服务的业务应用逻辑与协议转换逻辑进行分离;协议转换模块1202可以用于第一边车组件对第一协议下的第一流量进行解码,以获得第二流量;流量转发模块1203可以用于第一边车组件通过第一服务的服务接口的原生协议,将第二流量转发给第一服务的业务应用接口,以便第一服务的业务应用组件对第二流量进行处理。
此处需要说明的是,上述第一流量接收模块1201、协议转换模块1202、流量转发模块1203对应于方法实施例中的S302~S306,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述方法实施例所公开的内容。需要说明的是,上述模块作为装置的一部分可以在诸如一组计算机可执行指令的计算机系统中执行。
在一些实施例中,第一流量接收模块1201可以包括:第一连接接收子模块;协议转换模块1202可以包括:第一解码子模块;流量转发模块1203可以包括:流量转发子模块。
其中,第一连接接收子模块可以用于第一服务的第一边车组件通过第一连接接收第一流量,第一连接是基于第一协议建立的;第一解码子模块可以用于第一边车组件的报文处理器通过第一协议对应的解码器对第一流量进行解码,以获得第二流量;流量转发子模块可以用于报文处理器通过第一服务的服务接口的原生协议,将第二流量转发给第一服务的业务应用接口。
在一些实施例中,第一连接是第一边车组件与网关或者负载均衡组件之间的连接;其中,协议转换装置可以包括:请求报文第一接收模块、第一协商模块和第一连接建立模块。
其中,请求报文第一接收模块可以用于在第一服务的第一边车组件通过第一连接接收第一流量之前,第一服务的第一边车组件接收来自网关或者负载均衡组件的建立连接的请求报文;第一协商模块可以用于第一边车组件根据请求报文与网关或者负载均衡组件进行协商;第一连接建立模块可以用于在协商过程中,确定通过第一协议在第一边车组件与网关或者负载均衡组件之间建立第一连接。
在一些实施例中,第一连接是第一边车组件与第二服务的第二边车组件之间的连接;其中,协议转换装置可以包括:拦截模块、协议推断模块和第一连接建立第二模块。
其中,拦截模块可以用于在第一服务的第一边车组件通过第一连接接收第一流量之前,第二服务的第二边车组件拦截第二服务发往第一服务的连接请求报文,连接请求报文中携带第一协议;协议推断模块可以用于第二边车组件将连接请求报文发送至第一服务的第一边车组件进行协议推断,并协商连接请求报文中的第一协议是否可以建立连接;第一连接建立第二模块可以用于若通过协商确定连接请求报文中的第一协议被支持,则通过连接请求中的第一协议在第一边车组件和第二边车组件之间建立第一连接。
在一些实施例中,协议转换装置可以包括:响应流量生成模块、响应编码模块、响应解码模块和响应转发模块。
其中,响应流量生成模块可以用于第一服务的业务应用组件响应于第二流量生成响应流量;响应编码模块可以用于第一服务的业务应用组件通过服务接口的原生协议对响应流量进行编码,并将编码后响应流量发送给第一边车组件;响应解码模块可以用于第一边车组件对原生协议下的响应流量进行解码,并使用第一协议对响应流量进行编码;响应转发模块可以用于第一边车组件将编码后的响应流量通过第一协议转发给第二服务或者客户端。
在一些实施例中,协议转换装置可以包括:服务调用发起模块、协议转换功能开启模块和第一流量转发模块。
其中,第一流量是第二服务调用第一服务的调用流量;其中,服务调用发起模块可以用于在第一服务的第一边车组件通过第一协议接收第一流量之前第二服务确定通过第一流量向第一服务发起服务调用;协议转换功能开启模块可以用于第二服务的第二边车组件根据第一流量确定开启协议转换功能;第一流量转发模块可以用于第二边车组件通过第二边车组件的协议转换接口,将第一流量转发给第一服务的第一边车组件的协议转换接口,以便第一边车组件对第一流量进行协议转换。
在一些实施例中,第一流量是客户端调用第一服务的调用流量;其中,协议转换装置可以包括:第一流量第二发送模块、第一流量第二接收模块和第一力量第二转发模块。
其中,第一流量第二发送模块可以用于在第一服务的第一边车组件通过第一协议接收第一流量之前,客户端通过第三协议向第一服务对应的网关或者负载均衡组件发送第一流量;第一流量第二接收模块可以用于第一服务对应的网关或者负载均衡组件通过第三协议接收第一流量;第一力量第二转发模块可以用于网关或者负载均衡组件通过第一协议将第一流量转发给第一服务的第一边车组件。
由于装置1200的各功能已在其对应的方法实施例中予以详细说明,本公开于此不再赘述。
描述于本申请实施例中所涉及到的模块(和/或子模块和/或)单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块(和/或子模块和/或)单元也可以设置在处理器中。其中,这些模块(和/或子模块和/或)单元的名称在某种情况下并不构成对该模块(和/或子模块和/或)单元本身的限定。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
此外,上述附图仅是根据本公开示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
图13示出了适于用来实现本公开实施例的的电子设备的结构示意图。需要说明的是,图13示出的电子设备1300仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图13所示,电子设备1300包括中央处理单元(CPU)1301,其可以根据存储在只读存储器(ROM)1302中的程序或者从储存部分1308加载到随机访问存储器(RAM)1303中的程序而执行各种适当的动作和处理。在RAM 1303中,还存储有电子设备1300操作所需的各种程序和数据。CPU 1301、ROM 1302以及RAM 1303通过总线1304彼此相连。输入/输出(I/O)接口1305也连接至总线1304。
以下部件连接至I/O接口1305:包括键盘、鼠标等的输入部分1306;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分1307;包括硬盘等的储存部分1308;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分1309。通信部分1309经由诸如因特网的网络执行通信处理。驱动器1310也根据需要连接至I/O接口1305。可拆卸介质1311,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1310上,以便于从其上读出的计算机程序根据需要被安装入储存部分1308。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读存储介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分1309从网络上被下载和安装,和/或从可拆卸介质1311被安装。在该计算机程序被中央处理单元(CPU)1301执行时,执行本申请的系统中限定的上述功能。
需要说明的是,本公开所示的计算机可读存储介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读存储介质,该计算机可读存储介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
作为另一方面,本申请还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备可实现功能包括:第一服务的第一边车组件通过第一协议接收第一流量,第一边车组件用于将第一服务的业务应用逻辑与协议转换逻辑进行分离;第一边车组件对第一协议下的第一流量进行解码,以获得第二流量;第一边车组件通过第一服务的服务接口的原生协议,将第二流量转发给第一服务的业务应用接口,以便第一服务的业务应用组件对第二流量进行处理。
根据本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述实施例的各种可选实现方式中提供的方法。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,本公开实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算设备(可以是个人计算机、服务器、移动终端、或者智能设备等)执行根据本公开实施例的方法。
本领域技术人员在考虑说明书及实践在这里公开的公开后,将容易想到本公开的其他实施例。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未申请的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由权利要求指出。
应当理解的是,本公开并不限于这里已经示出的详细结构、附图方式或实现方法,相反,本公开意图涵盖包含在所附权利要求的精神和范围内的各种修改和等效设置。

Claims (10)

1.一种协议转换方法,其特征在于,包括:
第一服务的第一边车组件通过第一协议接收第一流量,所述第一边车组件用于将所述第一服务的业务应用逻辑与协议转换逻辑进行分离;
所述第一边车组件对所述第一协议下的第一流量进行解码,以获得第二流量;
所述第一边车组件通过所述第一服务的服务接口的原生协议,将所述第二流量转发给所述第一服务的业务应用接口,以便所述第一服务的业务应用组件对所述第二流量进行处理。
2.根据权利要求1所述方法,其特征在于,第一服务的第一边车组件通过第一协议接收第一流量,包括:
所述第一服务的第一边车组件通过第一连接接收所述第一流量,所述第一连接是基于所述第一协议建立的;
其中,所述第一边车组件对所述第一协议下的第一流量进行解码,以获得第二流量,包括:
所述第一边车组件的报文处理器通过所述第一协议对应的解码器对所述第一流量进行解码,以获得第二流量;
其中,所述第一边车组件通过所述第一服务的服务接口的原生协议,将所述第二流量转发给所述第一服务的业务应用接口,包括:
所述报文处理器通过所述第一服务的服务接口的原生协议,将所述第二流量转发给所述第一服务的业务应用接口。
3.根据权利要求2所述方法,其特征在于,所述第一连接是所述第一边车组件与网关或者负载均衡组件之间的连接;其中,在所述第一服务的第一边车组件通过第一连接接收所述第一流量之前,所述方法还包括:
所述第一服务的第一边车组件接收来自网关或者负载均衡组件的建立连接的请求报文;
所述第一边车组件根据所述请求报文与所述网关或者所述负载均衡组件进行协商;
在协商过程中,确定通过所述第一协议在所述第一边车组件与所述网关或者所述负载均衡组件之间建立所述第一连接。
4.根据权利要求2所述方法,其特征在于,所述第一连接是所述第一边车组件与第二服务的第二边车组件之间的连接;其中,在所述第一服务的第一边车组件通过第一连接接收所述第一流量之前,所述方法还包括:
所述第二服务的第二边车组件拦截所述第二服务发往所述第一服务的连接请求报文,所述连接请求报文中携带所述第一协议;
所述第二边车组件将所述连接请求报文发送至所述第一服务的所述第一边车组件进行协议推断,并协商所述连接请求报文中的所述第一协议是否可以建立连接;
若通过协商确定所述连接请求报文中的所述第一协议被支持,则通过所述连接请求中的所述第一协议在所述第一边车组件和所述第二边车组件之间建立所述第一连接。
5.根据权利要求1所述方法,其特征在于,所述方法还包括:
所述第一服务的业务应用组件响应于所述第二流量生成响应流量;
所述第一服务的业务应用组件通过所述服务接口的原生协议对所述响应流量进行编码,并将编码后响应流量发送给所述第一边车组件;
所述第一边车组件对所述原生协议下的响应流量进行解码,并使用所述第一协议对所述响应流量进行编码;
所述第一边车组件将编码后的响应流量通过所述第一协议转发给第二服务或者客户端。
6.根据权利要求1所述方法,其特征在于,所述第一流量是第二服务调用所述第一服务的调用流量;其中,在第一服务的第一边车组件通过第一协议接收第一流量之前,所述方法还包括:
所述第二服务确定通过所述第一流量向所述第一服务发起服务调用;
所述第二服务的第二边车组件根据所述第一流量确定开启协议转换功能;
所述第二边车组件通过所述第二边车组件的协议转换接口,将所述第一流量转发给所述第一服务的所述第一边车组件的协议转换接口,以便所述第一边车组件对所述第一流量进行协议转换。
7.根据权利要求1所述方法,其特征在于,所述第一流量是客户端调用所述第一服务的调用流量;其中,在第一服务的第一边车组件通过第一协议接收第一流量之前,所述方法还包括:
所述客户端通过第三协议向所述第一服务对应的网关或者负载均衡组件发送所述第一流量;
所述第一服务对应的网关或者负载均衡组件通过所述第三协议接收所述第一流量;
所述网关或者负载均衡组件通过所述第一协议将所述第一流量转发给所述第一服务的所述第一边车组件。
8.一种协议转换装置,其特征在于,包括:
第一流量接收模块,用于第一服务的第一边车组件通过第一协议接收第一流量,所述第一边车组件用于将所述第一服务的业务应用逻辑与协议转换逻辑进行分离;
协议转换模块,用于所述第一边车组件对所述第一协议下的第一流量进行解码,以获得第二流量;
流量转发模块,用于所述第一边车组件通过所述第一服务的服务接口的原生协议,将所述第二流量转发给所述第一服务的业务应用接口,以便所述第一服务的业务应用组件对所述第二流量进行处理。
9.一种电子设备,其特征在于,包括:
存储器和处理器;
所述存储器用于存储程序指令;所述处理器调用所述存储器存储的所述程序指令,用于实现如权利要求1-7任一项所述的协议转换方法。
10.一种计算机可读存储介质,其上存储有程序指令,该程序指令被处理器执行时实现如权利要求1-7任一项所述的协议转换方法。
CN202211529550.3A 2022-11-30 2022-11-30 协议转换方法、装置、电子设备和计算机可读存储介质 Pending CN115866088A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211529550.3A CN115866088A (zh) 2022-11-30 2022-11-30 协议转换方法、装置、电子设备和计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211529550.3A CN115866088A (zh) 2022-11-30 2022-11-30 协议转换方法、装置、电子设备和计算机可读存储介质

Publications (1)

Publication Number Publication Date
CN115866088A true CN115866088A (zh) 2023-03-28

Family

ID=85668869

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211529550.3A Pending CN115866088A (zh) 2022-11-30 2022-11-30 协议转换方法、装置、电子设备和计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN115866088A (zh)

Similar Documents

Publication Publication Date Title
US20150373148A1 (en) Method for processing access requests and web browser
WO2015021650A1 (zh) 媒体流的传输方法、装置与系统
CN101888519A (zh) 共享桌面内容的方法和智能设备
CN112637796B (zh) 基于5g的办公信息应答方法、系统、服务器和存储介质
CN110971498B (zh) 通信方法、通信装置、电子设备及存储介质
WO2012019653A1 (en) Web-telco convergence comprising downloading script commands to user terminals
Li et al. 6G cloud-native system: Vision, challenges, architecture framework and enabling technologies
CN111654861A (zh) 一种认证方法、装置、设备及计算机可读存储介质
CN108234511B (zh) 多媒体数据传输的方法、系统、设备、存储介质及网关
CN113938533A (zh) 应用间的通信方法、装置、电子设备及计算机可读介质
CN113473395A (zh) 消息处理方法、装置、介质及电子设备
CN114978485B (zh) 语音数据传输方法、系统、电子设备及存储介质
CN115866088A (zh) 协议转换方法、装置、电子设备和计算机可读存储介质
CN114866234B (zh) 基于量子密钥加解密的语音通信方法、装置、设备及存储
CN110351245A (zh) App推送消息sdk包的生成方法及推送消息系统
CN108076013B (zh) 一种多通路终端多方通话方法及装置
CN116708027B (zh) 一种多端远程协同通信方法、装置、设备及存储介质
EP0976264A1 (en) Telecommunication system comprising a connection to an open data network
CN116566963B (zh) 一种音频处理方法、装置、电子设备和存储介质
CN103533190B (zh) 一种基于扩展xmpp协议的语音传输方法及系统
CN116866092B (zh) 一种基于区块链网关的数据处理方法、装置及系统
CN116669134B (zh) Smf网元与upf网元适配方法、装置、设备及介质
WO2023124618A1 (zh) 服务管理方法及其装置、系统、电子设备、存储介质
CN115696271A (zh) 临近服务网络、数据传输方法和存储介质
CN116192930A (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