一种基于Kubernets的动态通信协议转换装置制造方法及图纸

技术编号:36121915 阅读:9 留言:0更新日期:2022-12-28 14:27
本发明专利技术公开了一种基于Kubernets的动态通信协议转换装置,包括RPC协议转换数据规范、RPC服务代理和RPC服务端;RPC协议转换数据规范说明应用调用端提交RPCHttp请求时,将请求数据发送到RPC服务代理和RPC代理服务转发到k8s内部RPC服务应采用的协议,及发送数据的格式,编码;RPC服务代理负责将来自应用调用端的http请求代理到相应的RPC服务端进行请求;RPC服务端在接收到来自RPC服务代理的转发请求时,会按照约定的数据解析规范对数据进行解析,解析出目标服务、相应的调用方法以及参数。本发明专利技术可动态识别请求待转发的协议类型并且自动包装RPC请求参数,实现RPC服务代理请求转发。发。发。

【技术实现步骤摘要】
一种基于Kubernets的动态通信协议转换装置


[0001]本专利技术属于计算机通信
,特别涉及一种基于Kubernets的动态通信协议转换装置。

技术介绍

[0002]目前国内外公司的服务都逐步开始面向微服务化,用于快速迭代有效迭代服务。放眼整个互联网中,在互联网快速迭代的大潮下,越来越多的公司选择nodejs、django、rails这样的快速脚本框架来开发web端应用,而对于我们来说公司选择的后端语言是Java,这就产生了大量的跨语言的调用需求。其实对于thrift来说是支持很多语言的,但是给每次给其他语言开发都需要开发对应的客户端,并且还有很多RPC框架并不是像thrift一样支持这么多语言的,所以现在微服务都推出了service mesh,但是这个依然很新,有需要尝试的其实可以起尝试一下。不过,公司大部分服务之间协议开始尝试gRPC,使用gRPC的优势不少,二进制的数据能够加快传输速度,基于http2的多路复用能够减小服务之间的链接次数,和函数同样的调用方式也有效的提高了开发效率。不过使用gRPC也会面临一个问题,咱们的微服务对外必定是要提供Restful接口的,若是内部调用使用gRPC,在某些状况下要同时提供一个功能的两套API接口,这样就不只下降了开发效率,也增长了调试的复杂度。因而就想着有没有一个转换机制,让Restful和gprc能够相互转化。
[0003]http、json是天然合适作为跨语言的标准,各种语言都有成熟的类库,所以如何把像thrift、gRPC这种tcp RPC框架转换成http,对于多语言支持是比较重要的。

技术实现思路

[0004]为了解决上述问题,本专利技术的目的是提供一种基于Kubernets的动态通信协议转换装置,该装置可以动态识别请求待转发的协议类型并且自动包装RPC请求参数,从而实现RPC服务代理请求转发。
[0005]为了实现上述目的,本专利技术采用以下技术方案:
[0006]一种基于Kubernets的动态通信协议转换装置,包括:RPC协议转换数据规范、RPC服务代理以及k8s内部RPC服务端三个部分;
[0007]所述RPC协议转换数据规范主要说明应用调用端提交RPC Http请求时,将请求数据发送到RPC服务代理和RPC代理服务转发到k8s内部RPC服务应该采用的协议,以及发送数据的格式,编码;
[0008]所述RPC服务代理负责将来自应用调用端的http请求代理到相应的k8s内部RPC服务端进行请求;
[0009]所述k8s内部RPC服务端在接收到来自RPC服务代理的转发请求时,会按照约定的数据解析规范对数据进行解析,解析出目标服务、相应的调用方法以及参数;调用相应的业务方法后,再将响应结果返回给相应的服务调用端。
[0010]优选地,所述RPC协议转换数据规范主要包括以下内容:应用调用端和RPC服务代
理通过https协议进行数据传输;为了确保RPC服务代理接收的数据都是从合法的应用调用端发送的,应用调用端发送数据时需要带上由服务端颁布的证书,数据收集端会对应用调用端进行证书的认证。
[0011]优选地,对发送的数据格式要求为JSON格式,utf

8进行编码并且URL请求按照指定格式书写,采用格式为https://RPC.主域名.com/协议/k8s命名空间/k8s服务名/服务Service名/服务方法名/服务端口,用于定位k8s内部服务地址;RPC服务代理转发请求时,会将http请求中的json参数封装成对应的RPC参数数据。
[0012]优选地,所述RPC服务代理在接收到http请求后,首先会将请求交由RPC服务定位器进行目标服务定位。
[0013]优选地,目标服务定位的具体操作就是:首先,获取http请求url中的路径参数,包含protocol、k8s

namespace、k8s

service、server

service、server

method和port;然后,根据RPC协议类型加载相应的代理服务实例处理器,进行协议数据转换;最后,通过相应的RPC服务客户端进行调用,将请求转发到相应的k8s内部RPC服务。
[0014]本专利技术可以动态识别请求待转发的协议类型并且自动包装RPC请求参数,从而实现RPC服务代理请求转发。
附图说明
[0015]图1为动态协议转换装置流程示意图;
[0016]图2为动态协议转换装置架构图。
具体实施方式
[0017]下面结合附图对本专利技术作详细的说明,但并不是对本专利技术保护范围的限制。
[0018]如图1和2所示,一种基于Kubernets的动态通信协议转换装置,包括RPC协议转换数据规范、RPC服务代理以及RPC服务端三个个部分。
[0019]RPC协议转换数据规范主要说明应用调用端提交RPC Http请求时,将请求数据发送到RPC服务代理和RPC代理服务转发到k8s内部RPC服务应该采用的协议,以及发送数据的格式,编码等。主要包括以下内容:应用调用端和RPC服务代理通过https协议进行数据传输。为了确保RPC服务代理接收的数据都是从合法的应用调用端发送的,应用调用端发送数据时需要带上由服务端颁布的证书,数据收集端会对应用调用端进行证书的认证。对发送的数据格式要求为JSON格式,utf

8进行编码并且URL请求按照指定格式书写,采用格式为https://RPC.主域名.com/协议/k8s命名空间/k8s服务名/服务Service名/服务方法名/服务端口,用于定位k8s内部服务地址(即https://RPC.domain.com/protocol/k8s

namespace/k8s

service/server

service/server

method/port)。RPC服务代理转发请求时,会将http请求中的json参数封装成对应的RPC参数数据。
[0020]RPC服务代理负责将来自应用调用端的http请求代理到相应的k8s内部服务进行请求。RPC服务代理在接收到http请求后,首先会将请求交由RPC服务定位器进行目标服务定位,具体操作就是:首先,获取http请求url中的路径参数,包含protocol(目标RPC采用的协议)、k8s

namespace(k8s命名空间)、k8s

service(k8s服务名)、server

service(RPC服务对应的服务实现名)、server

method(RPC服务对应服务实现名调用的方法名)和port
(RPC服务k8s端口);然后,根据RPC协议类型加载相应的代理服务实例处理器,进行协议数据转换;最后,通过相应的RPC服务客户端进行调用,将请求本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于Kubernets的动态通信协议转换装置,其特征在于:包括:RPC协议转换数据规范、RPC服务代理以及k8s内部RPC服务端三个部分;所述RPC协议转换数据规范主要说明应用调用端提交RPC Http请求时,将请求数据发送到RPC服务代理和RPC代理服务转发到k8s内部RPC服务应该采用的协议,以及发送数据的格式,编码;所述RPC服务代理负责将来自应用调用端的http请求代理到相应的k8s内部RPC服务端进行请求;所述k8s内部RPC服务端在接收到来自RPC服务代理的转发请求时,会按照约定的数据解析规范对数据进行解析,解析出目标服务、相应的调用方法以及参数;调用相应的业务方法后,再将响应结果返回给相应的服务调用端。2.根据权利要求1所述的一种基于Kubernets的动态通信协议转换装置,其特征在于:所述RPC协议转换数据规范主要包括以下内容:应用调用端和RPC服务代理通过https协议进行数据传输;为了确保RPC服务代理接收的数据都是从合法的应用调用端发送的,应用调用端发送数据时需要带上由服务端颁布的证书,数据收集端会对应用调用端进行证书的认证。3.根据权利要求2所述的一种基于Kubernets的动态通信协议转换装置,其特征在于:对发送的数据格式要求为JSO...

【专利技术属性】
技术研发人员:闫安旷晓鹏
申请(专利权)人:杭州雷数科技有限公司
类型:发明
国别省市:

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

1