一种泛用RPC网关实现方法及系统与流程

文档序号:31704593发布日期:2022-10-01 10:17阅读:150来源:国知局
一种泛用RPC网关实现方法及系统与流程
一种泛用rpc网关实现方法及系统
技术领域
1.本技术涉及网关实现技术领域,尤其涉及一种泛用rpc网关实现方法及系统。


背景技术:

2.随着业务的发展,选择微服务替代原有的单体架构。而rpc因其高性能成为服务间调用首选。前后端分离场景下,需要考虑前端页面的http请求与后端rcp服务通信的问题。
3.现阶段,解决前端页面的http请求与后端rcp服务通信问题的方法主要有:(1)在前端页面与rpc后端服务之间增加一个controller服务,将http请求转接到rpc接口;(2)在前端页面与rpc后端服务之间增加一个网关层,使用rpc泛化调用转接http请求到rcp接口;(3)在前端页面与rpc后端服务之间增加一个网关层,使用rpc泛化调用转接http请求到rcp接口,pc接口配置从服务发现中获取,减少路由配置。
4.但是,上述方法需要手动定义每个后端服务rpc接口与http接口的路由关系,配置复杂且功能单一,无法在无服务发现的场景下使用,且只能以接口为单位,不能以应用级别作为单位进行管理使用。


技术实现要素:

5.针对现有技术的上述不足,本发明提供一种泛用rpc网关实现方法及系统,以解决上述技术问题。
6.第一方面,本技术提供了一种泛用rpc网关实现方法,方法包括:通过服务sdk收集微服务rpc基础元数据并推送到元数据中心,通过网关调用元数据中心接口获取/同步rpc基础元数据;基于rpc基础元数据中的应用数据,自动创建应用数据对应的路由配置;在网关接收到前端上传的post请求信息后,根据post请求信息,确定路由配置,进而确定post请求信息对应的基础元数据;通过网关调用服务发现或者预设扩展配置,获取基础元数据对应的服务地址,进而泛化调用客户端和服务地址对应的接口方法;在接口方法调用完成后,通过网关获取客户端的返回结果,对返回结果进行处理,以将处理后的返回结果发送给前端。
7.进一步地,通过服务sdk收集微服务rpc基础元数据并推送到元数据中心,具体包括:通过服务sdk扫描微服务对应的预设服务代码,获取统一预设的rpc框架接口中定义的方法,以解析获得基础元数据,并通过预设元数据推送接口将基础元数据推送到元数据中心。
8.进一步地,方法还包括:通过预设配置数据管理界面,获取手工配置的路由配置;其中,手工配置的路由配置优先于自动创建的路由配置。
9.进一步地,在根据post请求信息,确定路由配置之前,方法还包括:根据预设扩展元数据依次对post请求信息进行黑白名单校验、鉴权校验,以完成post请求信息的校验;通过预设扩展元数对post请求信息进行上下文配置参数。
10.进一步地,预设扩展元数据分为路由扩展元数据和中心扩展元数据;方法还包括:
通过预设配置文件,在路由配置中配置路由扩展元数据;通过预设元数据中心管理页面,修改/新增中心扩展元数据;其中,路由扩展元数据优先于中心扩展元数据。
11.进一步地,基础元数据包含协议信息、版本信息、接口路径;根据post请求信息,确定路由配置,进而确定post请求信息对应的基础元数据,具体包括:根据post请求信息中定义的路由名称,确定路由配置;通过路由配置以及post请求信息中定义的协议信息、版本信息、路径后缀,确定post请求信息对应的基础元数据。
12.进一步地,对返回结果进行处理,以将处理后的返回结果发送给前端,具体包括:通过预设扩展元数据中定义的解析方法,对返回结果进行字段名转换/过滤/添加;通过预设扩展元数据中定义的包装方法,对解析好的返回结果进行包装处理;通过预设序列化处理方法,对包装好的返回结果进行序列化处理。
13.第二方面,本技术提供了一种泛用rpc网关实现系统,系统包括:创建模块,用于通过服务sdk收集微服务rpc基础元数据并推送到元数据中心,通过网关调用元数据中心接口获取/同步rpc基础元数据;基于rpc基础元数据中的应用数据,自动创建应用数据对应的路由配置;确定模块,用于在网关接收到前端上传的post请求信息后,根据post请求信息,确定路由配置,进而确定post请求信息对应的基础元数据;调用模块,用于通过网关调用服务发现或者预设扩展配置,获取基础元数据对应的服务地址,进而泛化调用客户端和服务地址对应的接口方法;返回模块,用于在接口方法调用完成后,通过网关获取客户端的返回结果,对返回结果进行处理,以将处理后的返回结果发送给前端。
14.本领域技术人员能够理解的是,本发明至少具有如下有益效果:本发明通过统一预设的rpc框架接口获取基础元数据。由于rpc框架接口能够兼容多种编程语言,实现了兼容多种框架的服务sdk,能够在多框架的场景中使用。
15.本发明使用网关作为前后端分离场景下前端http请求到rpc方法的转接,无需多余controller中间层;网关通过元数据中心可以自动感知rpc服务元数据(基础元数据),默认提供了应用级别的路由配置,极大减少了路由的配置工作量。
16.且本发明通过扩展元数据的配置,提供了多种增强功能,用户可以通过界面,路由配置便捷地对扩展元数据进行配置,提升了配置的灵活性以及便利性。
附图说明
17.下面参照附图来描述本公开的部分实施例,附图中:图1是本技术实施例提供的一种泛用rpc网关实现方法流程图。
18.图2是本技术实施例提供的一种泛用rpc网关实现系统内部结构示意图。
具体实施方式
19.本领域技术人员应当理解的是,下文所描述的实施例仅仅是本公开的优选实施例,并不表示本公开仅能通过该优选实施例实现,该优选实施例仅仅是用于解释本公开的技术原理,并非用于限制本公开的保护范围。基于本公开提供的优选实施例,本领域普通技术人员在没有付出创造性劳动的情况下所获得的其它所有实施例,仍应落入到本公开的保护范围之内。
20.还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的
包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
21.下面通过附图对本技术实施例提出的技术方案进行详细的说明。
22.本技术实施例还提供了一种泛用rpc网关实现方法,如图1所示,本技术实施例提供的方法,主要包括以下步骤:步骤110、通过服务sdk收集微服务rpc基础元数据并推送到元数据中心,通过网关调用元数据中心接口获取/同步rpc基础元数据;基于rpc基础元数据中的应用数据,自动创建应用数据对应的路由配置。
23.需要说明的是,rpc基础元数据包括:rpc框架类型、应用名、接口路径、方法名、方法参数信息、协议类型、版本、启用标志等。
24.其中,“通过服务sdk收集微服务rpc基础元数据并推送到元数据中心”可以具体为:通过服务sdk扫描微服务对应的预设服务代码,获取统一预设的rpc框架接口中定义的方法,以解析获得基础元数据,并通过预设元数据推送接口将基础元数据推送到元数据中心。一般地,基础元数据将会在rpc服务启动完成后进行推送。
25.其中,“通过网关调用元数据中心接口获取/同步rpc基础元数据”,可以具体为:网关在启动完成后调用元数据中心接口获取rpc基础元数据,并开启定时任务定时拉取最新的基础元数据进行同步,一般地,rpc基础元数据在测试和生产环境下不会频繁变动,因此定时同步时间间隔可以设置的长一些,比如1小时。
26.其中,“基于rpc基础元数据中的应用数据,自动创建应用数据对应的路由配置”中的“应用数据”可以为应用名称。本领域技术人员能够理解的是,根据rpc基础元数据中的应用数据,默认提供应用级别路由配置,可以大大减少路由配置工作量。其中,创建路由配置的具体方法可以由现有方法实现,本技术不做过多限定。
27.步骤120、在网关接收到前端上传的post请求信息后,根据post请求信息,确定路由配置,进而确定post请求信息对应的基础元数据。
28.需要说明的是,路由配置分为应用级别的路由配置和接口级别的路由配置。其中,创建应用级别的路由配置的条件/方法详见步骤110,创建接口级别的路由配置的条件/方法为现有方法,本技术在此不做限定。因为存在一个路由配置对应多个基础元数据的情况(例如,多个基础元数据对应同一应用级别的路由配置),在确定路由配置后,需要根据post请求信息,再次限定基础元数据。
29.本步骤可以具体为:根据post请求信息中定义的路由名称,确定路由配置;在post请求信息和路由配置匹配成功后,通过路由配置以及post请求信息中定义的协议信息、版本信息、路径后缀,确定post请求信息对应的基础元数据。具体地,通过:协议+应用名/接口名+http请求的路径后缀+rpc接口版本信息查找符合规则的基础元数据。其中,版本信息为空值时,默认使用第一个匹配到的。
30.此外,本技术可以获取路由配置的方法不限于自动生成。一般地,网关根据从元数据中心获取到基础元数据后会针对获取到所有应用创建默认的应用级别路由配置,不需要额外手工配置路由信息,同时也支持手工进行配置,通过预设配置数据管理界面获取手工
配置的路由配置(包含应用级别和接口级别),即本技术能够同时支持手工配置应用级别和接口级别路由配置,手工配置路由优先于默认配置。
31.此外,在“根据post请求信息,确定路由配置”之前,本技术还可以对post申请信息进行校验和上下文配置。具体过程可以为:根据预设扩展元数据依次对post请求信息进行黑白名单校验、鉴权校验,以完成post请求信息的校验;通过预设扩展元数对post请求信息进行上下文配置参数。
32.需要说明的是,预设扩展元数据是对基础元数据的扩展,包括(包括但不限于):应用级元数据,作用于某个应用所有接口方法,包含:黑白名单,鉴权校验类型,自定义请求返回数据结构,rpc上下文信息配置,应用地址(url,在无服务发现时使用,可通过sdk随基础元数据获取)。接口级别元数据,应用于该接口(java实现中是某个类)所有方法,包含:黑白名单,鉴权校验类型,自定义请求返回数据结构,rpc上下文信息配置。方法级别元数据,应用于单个接口方法,包含:黑白名单,鉴权校验类型,自定义请求返回数据结构,rpc上下文信息配置,字段名转换/过滤/添加。其中,同类型的配置,也就是黑白名单,鉴权校验类型,自定义请求返回数据结构,配置优先顺序为应用级别〈接口级别〈方法级别。
33.其中,预设扩展元数据可以为本领域技术人员预设好的,也可以通过预设配置文件,在路由配置中配置应用/接口级别的预设扩展元数据(基于获取方式,也称为路由扩展元数据),其中,预设配置文件包含路由扩展元数据,本领域技术人员可以根据实际需求确定预设配置文件中的具体内容;也可以通过预设元数据中心管理页面,修改/新增预设扩展元数据(基于获取方式,也称为中心扩展元数据),上述方法满足用户对灵活性的需求。此外,路由扩展元数据优先于中心扩展元数据。
34.步骤130、通过网关调用服务发现或者预设扩展配置,获取基础元数据对应的服务地址,进而泛化调用客户端和服务地址对应的接口方法。
35.其中,进而泛化调用客户端和服务地址对应的接口方法,可以具体为:根据预设类型框架和/或根据基础元数据构建的指定框架泛化调用客户端,并进行接口方法的调用。
36.步骤140、在接口方法调用完成后,通过网关获取客户端的返回结果,对返回结果进行处理,以将处理后的返回结果发送给前端。
37.需要说明的是,对返回结果进行处理,以将处理后的返回结果发送给前端,具体可以为:通过预设扩展元数据中定义的解析方法,对返回结果进行字段名转换/过滤/添加;通过预设扩展元数据中定义的包装方法,对解析好的返回结果进行包装处理;通过预设序列化处理方法,对包装好的返回结果进行序列化处理。其中,解析方法、包装方法和预设序列化处理方法可由现有方法或技术实现,本技术在此不做过多限定。
38.基于上述描述,本领域技术人员能够理解的是,本技术通过定义统一元数据接口,提供多种框架多种编程语言的sdk,适用于多框架多编程语言的场景。通过使用sdk主动收集微服务rpc基础元数据,网关自动感知并定时同步rpc基础元数据,默认应用级别路由配置,极大减少路由配置工作。提供元数据中心管理页面对rpc基础元数据进行扩展,提供了多种增强功能,且支持路由级别扩展元数据配置,提升了配置的灵活性以及便利性。
39.除此之外,图2为本技术实施例提供的一种泛用rpc网关实现系统。如图2所示,本技术实施例提供的系统,主要包括:创建模块210,用于通过服务sdk收集微服务rpc基础元数据并推送到元数据中心,
通过网关调用元数据中心接口获取/同步rpc基础元数据;基于rpc基础元数据中的应用数据,自动创建应用数据对应的路由配置;确定模块220,用于在网关接收到前端上传的post请求信息后,根据post请求信息,确定路由配置,进而确定post请求信息对应的基础元数据;调用模块230,用于通过网关调用服务发现或者预设扩展配置,获取基础元数据对应的服务地址,进而泛化调用客户端和服务地址对应的接口方法;返回模块240,用于在接口方法调用完成后,通过网关获取客户端的返回结果,对返回结果进行处理,以将处理后的返回结果发送给前端。
40.至此,已经结合前文的多个实施例描述了本公开的技术方案,但是,本领域技术人员容易理解的是,本公开的保护范围并不仅限于这些具体实施例。在不偏离本公开技术原理的前提下,本领域技术人员可以对上述各个实施例中的技术方案进行拆分和组合,也可以对相关技术特征作出等同的更改或替换,凡在本公开的技术构思和/或技术原理之内所做的任何更改、等同替换、改进等都将落入本公开的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1