【技术实现步骤摘要】
基于Thrift和语法树解析的协议转换方法及装置
本公开涉及数据处理
,尤其涉及一种基于Thrift协议和语法树解析的HTTP转RPC网关协议转换方法、装置及电子设备。
技术介绍
在微服务场景下,后端服务系统大多被拆分成功能独立的细小服务。一般来说,一个系统的后端微服务很容易达到几十、上百的规模,尤其是大型的金融、电商系统。这种情况下,需要一个网关系统来实现统一接入,通用处理,以及内部服务调用。其中,网关的一个重要功能就是实现HTTP协议请求转换为RPC请求的协议转发功能。在Thrift协议RPC(RemoteProcedureCall,远程过程调用)服务场景下,HTTP转RPC的协议转换功能,一般采用如下两种方式实现:(1)对于每一个接入的后端RPC服务,网关实现一个方法解析HTTP参数、使用RPC客户端调用RPC服务、包装参数为HTTP响应返回。(2)要求RPC服务端实现一个预定义的RPC服务,网关把HTTP数据封装到预定义服务的参数中发送给RPC服务端,RPC服务端解析HTTP参数、依据请求参数路由到对应的处理方法,并将响应结果包装成JSON数据返回给 ...
【技术保护点】
1.一种基于Thrift和语法树解析的协议转换方法,其特征在于,包括:在配置管理器中加载配置文件和Thrift文件,基于所述配置文件和Thrift文件生成Thrift语法树和RPC客户端连接;通过分发器接收HTTP请求,并将所述HTTP请求封装成与不同HTTP框架兼容的RPC内容;调用所述RPC客户端连接,根据所述Thrift语法树的定义将所述RPC内容写入RPC请求流;利用所述RPC请求流,向RPC服务发送请求数据,并基于所述RPC服务针对所述请求数据的响应数据进行网关协议转换。
【技术特征摘要】
1.一种基于Thrift和语法树解析的协议转换方法,其特征在于,包括:在配置管理器中加载配置文件和Thrift文件,基于所述配置文件和Thrift文件生成Thrift语法树和RPC客户端连接;通过分发器接收HTTP请求,并将所述HTTP请求封装成与不同HTTP框架兼容的RPC内容;调用所述RPC客户端连接,根据所述Thrift语法树的定义将所述RPC内容写入RPC请求流;利用所述RPC请求流,向RPC服务发送请求数据,并基于所述RPC服务针对所述请求数据的响应数据进行网关协议转换。2.根据权利要求1所述的方法,其特征在于,所述在配置管理器中加载配置文件和Thrift文件,生成Thrift语法树和RPC客户端连接,包括:加载包含Thrift协议文件路径、RPC服务端连接信息、插件列表的配置文件;解析Thrift文件,生成包含服务接口和数据结构的语法树;动态生成Thrift语法树和RPC客户端,并绑定Thrift语法树和RPC请求统一处理逻辑。3.根据权利要求1所述的方法,其特征在于,所述通过分发器接收HTTP请求,并将所述HTTP请求封装成与不同HTTP框架兼容的RPC内容之后,所述方法还包括:调用路由获取器从所述RPC内容中获取后续路由所需要的路由参数;获取基于所述路由获取器针对所述路由参数返回的路由标识。4.根据权利要求3所述的方法,其特征在于,所述通过分发器接收HTTP请求,并将所述HTTP请求封装成与不同HTTP框架兼容的RPC内容之后,所述方法还包括:调用分流计算器获取分流相关参数,并执行配置的脚本,计算出给定的RPC服务标识应该调用后端服务的哪一个版本;返回分流计算后最终的RPC服务连接及配置信息。5.根据权利要求4所述的方法,其特征在于,所述方法还包括:在步骤返回分流计算后最终的RPC服务连接及配置信息的执行过程中,调用段名转换器对每个RPC请求字段名进行转换,并从HTTP-JSON中抽取对应的值;将H...
【专利技术属性】
技术研发人员:张树凡,周文,杜旭东,袁冲,张磊,
申请(专利权)人:北京字节跳动网络技术有限公司,
类型:发明
国别省市:北京,11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。