基于RPC协议的跨网络区域代理访问方法及系统与流程

文档序号:22750586发布日期:2020-10-31 09:44阅读:144来源:国知局
基于RPC协议的跨网络区域代理访问方法及系统与流程

本发明涉及跨区域服务访问技术领域,特别涉及一种基于rpc协议的跨网络区域代理访问方法、系统及计算机设备。



背景技术:

rpc服务框架在微服务领域使用广泛,使得应用可通过高性能的rpc协议实现服务的输出和输入功能,它一般提供了三大核心能力:面向接口的远程方法调用,容错和负载均衡,以及服务自动注册和发现。

请参照图4的rpc服务框架架构图,框架分为以下部分:

服务容器(图中未示出)负责启动,加载,运行服务提供者;

注册中心负责服务地址的注册与查找,相当于目录服务,服务提供者和服务消费者只在启动时与注册中心交互,并保持长连接,如服务提供者有更新注册中心会通知服务消费者做相应变更;

监控中心负责统计各服务调用次数,调用时间等,统计先在内存汇总后每分钟一次发送到监控中心服务器,并以报表展示;

服务提供者向注册中心注册其提供的服务,并汇报调用时间到监控中心;

服务消费者向注册中心获取服务提供者地址列表,并根据负载算法直接调用提供者,同时汇报调用时间到监控中心。

众多企业采用rpc服务框架作为其微服务应用的服务标准框架,如图5所示:

1.为了满足安全规范,特别是金融机构,数据中心存在多个网络安全区域,分区之间使用物理防火墙进行安全隔离。

2.业务应用根据分类分别部署在两个不同的应用网络区域,两个应用网络区域之间存在一个安全隔离区域对跨区域互访进行安全隔离和路由控制。

3.在每个应用网络区域各建设一套独立的rpc服务框架,即各自拥有一套注册中心、监控中心,服务提供者注册到本区注册中心,服务消费者通过本区注册中心获取本区服务提供者信息。各套rpc服务框架之间信息无法相通。

4.同一网络区域内应用可通过本区内rpc服务框架进行互访,使用rpc协议。

5.不同网络区域应用之间无法直接使用rpc协议进行通信,只能通过http协议通过反向代理工具和负载均衡工具进行通讯。

上述这种rpc服务系统框架在进行跨网络区域的访问时,存在以下问题:

1.现有框架无法实现两个独立rpc服务框架下的应用互相进行服务注册和服务发现,无法发挥服务自动注册和自动发现的功能,跨区访问需要进行相应的网络配置和路由配置,有人工出错风险。

2.rpc为高性能网络通信协议,http协议在性能方面劣于rpc,同时跨区访问需通过反向代理和负载均衡工具,性能造成一定损耗,给应用性能带来一定影响。

3.rpc服务框架提供完善的服务治理功能如路由、熔断、限流等,跨区http访问无法在全局整体上使用框架的服务治理功能,造成服务治理的缺失,对应用服务的灵活性、稳定性和高可用性带来一定的影响。

4.由于应用系统存在不同的访问协议http和rpc,在技术架构上不统一,增加开发和运维成本,造成架构管控的困难,制约新技术的推广和使用。



技术实现要素:

基于此,有必要提供一种基于rpc协议的跨网络区域代理访问方法、系统及计算机设备,解决现有技术中采用http协议实现跨网络区域的安全访问,导致跨网络区域访问的负载配置不便、无法充分利用rpc协议的优点,且不同协议导致架构管控困难的技术问题。

本发明实施例一方面提供一种基于rpc协议的跨网络区域代理访问方法,用于不同网络区域的rpc服务区之间的跨区域访问,所述方法包括以下步骤:

在各所述网络区域的防火墙上对rpc代理访问服务开通访问策略;

以服务消费者角色获取各网络区域内服务提供者的服务信息;

以服务提供者角色在各网络区域内发布代理服务信息,向服务消费者暴露服务列表;

当服务消费者请求访问的目标服务提供者与服务消费者不在同一网络区域内时,根据所述服务列表目标服务提供者所在网络区域,并将服务消费者的请求信息转发至目标服务提供者;

获取目标服务提供者的返回信息,将所述返回信息转发至服务消费者。

作为上述实施例的进一步改进,以服务提供者角色在各网络区域内发布代理服务信息,向服务消费者暴露服务列表,具体为:

设置配置中心,通过所述配置中心新增、删除、修改发布的代理服务信息;

并根据所述配置中心的配置操作同步更新所述服务列表。

作为上述实施例的进一步改进,以服务提供者角色在各网络区域内发布代理服务信息,向服务消费者暴露服务列表,还包括

对各网络区域内的服务提供者进行监听,将服务提供者的上线信息、下线信息更新至所述服务列表。

作为上述实施例的进一步改进,将服务消费者的请求信息转发至目标服务提供者,具体为:

通过泛化引用将服务消费者的请求信息转发至目标服务提供者。

作为上述实施例的进一步改进,本方法还包括:

在代理访问配置发生变更时,通过热加载实现代理访问配置参数的动态变更。

作为上述实施例的进一步改进,本方法还包括:

对所述服务信息按热度进行分组,得到多组服务列表,将多组服务列表分散发布至不同的网络区域中。

作为上述实施例的进一步改进,本方法还包括:

在服务访问过程产生高于设定阈值的突发流量时,对突发流量进行动态扩容以及动态缩容。

作为上述实施例的进一步改进,本方法还包括:

对跨网络区域的服务通信进行权限控制。

本发明实施例另一方面提供一种基于rpc协议的跨网络区域代理访问系统,其特征在于,包括位于不同网络区域的rpc服务区,还包括用于不同网络区域的rpc服务区之间的跨区域访问的rpc代理访问组件,所述rpc代理访问组件用于实现所述基于rpc协议的跨网络区域代理访问方法。

本发明实施例再一方面提供一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任一实施例所述基于rpc协议的跨网络区域代理访问方法的步骤。

本发明实施例的基于rpc协议的跨网络区域代理访问方法、系统及计算机设备,在进行跨网络区域的代理访问之前,先在防火墙针对代理访问服务开通访问策略,以便链接不同网络区域的注册中心。当服务消费者与服务提供者不在同一网络区域时,则通过代理访问服务中服务列表进行查询,然后通过代理访问服务对目标服务提供者进行间接访问,由于防火墙针对代理访问服务开通访问策略,因此通过代理访问服务进行的间接访问,可以采用rpc协议,从而避免了在跨区访问中使用http协议。通过统一使用rpc协议和rpc代理改善了应用跨网络区域访问的性能和稳定性。实现了技术架构的统一和标准化,降低系统的开发和运维管理成本。

附图说明

通过附图中所示的本发明优选实施例更具体说明,本发明上述及其它目的、特征和优势将变得更加清晰。在全部附图中相同的附图标记指示相同的部分,且并未刻意按实际尺寸等比例缩放绘制附图,重点在于示出本的主旨。

图1为本发明实施例的基于rpc协议的跨网络区域代理访问方法的流程图;

图2为本发明实施例的基于rpc协议的跨网络区域代理访问系统的架构图;

图3为本发明实施例的基于rpc协议的跨网络区域代理访问系统的工作流程图;

图4为rpc服务区的服务框架架构图;

图5为现有技术中跨网络区域代理访问系统的架构图。

具体实施方式

下面结合附图和具体实施例对本发明技术方案作进一步的详细描述,以使本领域的技术人员可以更好的理解本发明并能予以实施,但所举实施例不作为对本发明的限定。

如图1所示,本发明实施例提供一种基于rpc协议的跨网络区域代理访问方法,以下简称本方法,用于不同网络区域的rpc服务区之间的跨区域访问,所述方法包括以下步骤:

s1、在各所述网络区域的防火墙上对rpc代理访问服务开通访问策略;

s2、以服务消费者角色获取各网络区域内服务提供者的服务信息;

s3、以服务提供者角色在各网络区域内发布代理服务信息,向服务消费者暴露服务列表;

s4、当服务消费者请求访问的目标服务提供者与服务消费者不在同一网络区域内时,根据所述服务列表目标服务提供者所在网络区域,并将服务消费者的请求信息转发至目标服务提供者;

s5、获取目标服务提供者的返回信息,将所述返回信息转发至服务消费者。

具体的,本实施例提供的基于rpc协议的跨网络区域代理访问方法,在进行跨网络区域的代理访问之间,先在防火墙针对代理访问服务开通访问策略,以链接不同网络区域的注册中心。按照常规的rpc服务框架开发的方式,进行服务提供者开发,并上线发布。按照常规的rpc服务框架开发,进行服务消费者开发,并上线发布。收集需要被跨区访问的服务信息,审核通过后,进行跨区服务发布操作;服务消费者调用服务提供者,当服务消费者与服务提供者不在同一网络区域时,则通过代理访问服务中服务列表进行查询,然后通过代理访问服务对服务提供者进行间接访问,由于防火墙针对代理访问服务开通访问策略,因此通过代理访问服务进行的间接访问,可以采用rpc协议,从而避免了在跨区访问中使用http协议。

本实施例通过基于rpc分布式协议的代理访问方法,实现了整个rpc服务区集群中统一使用rpc协议的目的,改善了应用服务跨网络区域访问的性能和稳定性。使得应用服务跨网络区域访问时可以享受统一的rpc服务框架的服务治理功能,实现全面标准的服务治理策略,大大提高了服务治理效率和效果。实现了技术架构的统一和标准化,降低系统的开发和运维管理成本,同时有利于新技术的推广和实施。

在优选实施例中,以服务提供者角色在各网络区域内发布代理服务信息,向服务消费者暴露服务列表,具体为:

设置配置中心,通过所述配置中心新增、删除、修改发布的代理服务信息;

并根据所述配置中心的配置操作同步更新所述服务列表。

由于权限和服务粒度控制,需要手工配置网络区域要暴露的服务列表。针对这一缺陷,本优选实施例设计采用配置中心,服务信息修改后无需重启rpc代理访问服务即可维护服务列表。rpc代理访问服务对服务列表的增、删、改,同步维护暴露到各网络区域注册中心的服务列表,供服务消费者查询发现。新增或减少暴露服务信息时,可登录配置中心新增或者修改相应配置文件,根据需要可建不同命名空间的配置文件进行应用配置之间的隔离。统一配置中心进行集中配置,将应用和配置进行解耦。

在优选实施例中,以服务提供者角色在各网络区域内发布代理服务信息,向服务消费者暴露服务列表,还包括

对各网络区域内的服务提供者进行监听,将服务提供者的上线信息、下线信息更新至所述服务列表。

对注册中心的服务节点进行监听,对于服务的上下线,同步维护暴露到服务列表。对于平时服务上下线或升级进行运维时,如无涉及到新增或删除要暴露的服务,则无需做任何操作。

在优选实施例中,将服务消费者的请求信息转发至目标服务提供者,具体为:

通过泛化引用将服务消费者的请求信息转发至目标服务提供者。

由于rpc协议,是必须知道接口的调用格式才可进行调用。但对于代理而言,若要了解各个服务提供者调用格式,对于代理的管理者的管理工程的成本非常巨大,代理的可用性会大大降低。因此,对于服务消费者所发送的访问请求,需要在不知道调用格式的条件下完成代理。对此,rpc服务框架的泛化引用和泛化实现特性契合此场景的需求。泛化实现,本质是对调用的参数,进行序列化传输后,转化成可对调用的参数和返回值进行序列化操作后,由实现genericservice的代理接口统一进行处理,从而实现代理调用和转发。同时,为方便跟踪调用情况,打印相关转发日志,同时也会把真实服务消费者ip和应用等信息带给服务提供者,方便服务提供者做一些控制。

由于服务代理并无数据落地,除了标准日志输出外,本方法还额外提供辅助运维管理,具体包括:

提供已加载服务配置列表查询和已暴露服务列表查询;提供单个和批量服务重新加载功能,在不重启服务的情况维护代理的服务。

在优选实施例中,本方法还包括:

在代理访问配置发生变更时,通过热加载实现代理访问配置参数的动态变更。

本优选实施例在rpc代理访问配置发生变更时可以实现热加载,实现了跨区服务访问的代理访问配置参数的自动化配置,改善了运维管理。

在优选实施例中,本方法还包括:

对所述服务信息按热度进行分组,得到多组服务列表,将多组服务列表分散发布至不同的网络区域中。

本优选实施例根据服务不同的热度,分散到不同网络区域的rpc代理访问服务节点,防止热点效应的出现。

在优选实施例中,本方法还包括:

在服务访问过程产生高于设定阈值的突发流量时,对突发流量进行动态扩容以及动态缩容。

本优选实施例中,设定流量监控指标,结合监控中心,依据监控中心对流量的监控数据,对突发流量自动采取动态的扩容和缩容,从而大大降低运维人员的工作压力和保证系统可用性。

在优选实施例中,本方法还包括:

对跨网络区域的服务通信进行权限控制。

本优选实施例对跨区应用服务通信进行权限控制,保证服务安全

请参考图2,本发明实施例还提供一种基于rpc协议的跨网络区域代理访问系统,包括位于不同网络区域的rpc服务区,还包括用于不同网络区域的rpc服务区之间的跨区域访问的rpc代理访问组件,所述rpc代理访问组件用于实现如基于rpc协议的跨网络区域代理访问方法。

应该理解的,图2中仅仅示出了两个网络区域,即网络区域一和网络区域二,实际应用时可能有多个网络区域。

本实施例中rpc代理访问组件,核心的功能是针对prc协议提供代理访问功能,连通不同网络区域的服务提供者与服务消费者,各网络区域应用之间通信统一为rpc协议,并提供自动注册和自动发现功能。参考图3,其进行代理访问的全过程步骤如下:

1.服务提供者启动,并把自身信息(如ip,端口,服务名称)发往本区(网络区域二)注册中心。注册中心接收后保存,供潜在的服务消费者使用;

2.rpc代理访问组件连接网络区域二注册中心,以服务消费者的角色获取服务提供者的信息,并保存留待使用;

3.rpc代理访问组件连接网络区域一注册中心,以服务提供者的角色发布代理服务信息,供网络区域一服务消费者使用;

4.服务消费者启动,并向网络区域一注册中心发送请求,查询所需的服务信息。

5.服务消费者调用跨区服务提供者时,服务消费者通过rpc代理访问组件的信息,调用请求发往至rpc代理访问组件;

6.rpc代理访问组件接收到服务消费者请求后,把请求转发到真正的目标服务提供者,获取目标服务提供者的返回信息;

7.rpc代理访问组件收到目标服务提供者返回信息后,再转发给服务消费者。

图3中仅仅示出了与上述代理访问(网络区域一中服务消费者向网络区域二中服务提供者的访问)相关的部分,例如网络区域一除了服务消费者和注册中心,并没有示出服务提供者和监控中心,网络区域二中也是同样情况,应该理解的,每一个网络区域中都有各自的注册中心、监控中心以及相应的服务提供者和服务消费者;图3为了更清楚的表示在上述代理访问中各相关部分的职责以及访问流程,因此并没有示出全部的架构,整体架构图参考图2即可。

本实施例中提供的基于rpc协议的跨网络区域代理访问系统,用于实现基于rpc协议的跨网络区域代理访问方法,因此基于rpc协议的跨网络区域代理访问方法所具备的技术效果,基于rpc协议的跨网络区域代理访问系统同样具备,在此不再赘述。

本发明实施例还提供一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述任一实施例的方法的步骤。该计算机设备可以是可以执行程序的智能手机、平板电脑、笔记本电脑、台式计算机、机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个服务器所组成的服务器集群)等。本实施例的计算机设备至少包括但不限于:可通过系统总线相互通信连接的存储器、处理器。

本实施例中,存储器(即可读存储介质)包括闪存、硬盘、多媒体卡、卡型存储器(例如,sd或dx存储器等)、随机访问存储器(ram)、静态随机访问存储器(sram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、可编程只读存储器(prom)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器可以是计算机设备的内部存储单元,例如该计算机设备的硬盘或内存。在另一些实施例中,存储器也可以是计算机设备的外部存储设备,例如该计算机设备上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。当然,存储器还可以既包括计算机设备的内部存储单元也包括其外部存储设备。本实施例中,存储器通常用于存储安装于计算机设备的操作系统和各类应用软件等。此外,存储器还可以用于暂时地存储已经输出或者将要输出的各类数据。

处理器在一些实施例中可以是中央处理器(centralprocessingunit,cpu)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器通常用于控制计算机设备的总体操作。本实施例中,处理器用于运行存储器中存储的程序代码或者处理数据,以实现上述实施例的基于rpc协议的跨网络区域代理访问方法。

具体的,某企业为了适应业务的发展,已在组织内使用分布式rpc服务框架作为统一的技术规范,各业务应用基于rpc服务框架框架进行开发。但由于网络安全的原因,跨网络区域的rpc通信一直无法实现,跨网络区域应用之间通信只能使用http协议,从而增加了手工操作风险和运维难度,影响了应用之间的通信性能,导致无法对应用进行统一的服务治理,同时由于技术架构的不统一增加了开发成本和制约了新技术的推广实施。

通过本发明提供的rpc代理访问组件,该企业实现应用跨网络区域调用统一使用rpc协议,实现了服务治理的统一和整体调用链路的全面打通,大大提高了服务治理的效率和效果,同时降低了开发和运维成本,提升了自动化水平和运维效率,促进了新技术的推广实施。该企业实施本发明提供的基于rpc协议的跨网络区域代理访问系统,具体实施步骤如下:

在各网络区域以外的安全区域部署rpc代理访问组件,在防火墙针对rpc代理访问服务开通访问策略,以便链接不同网络区域的注册中心;

按照常规的rpc服务区开发的方式,进行服务提供者开发,并上线发布;

收集需要被跨区访问的服务提供者信息,审核通过后,在配置中心上进行跨区服务发布操作;

按照常规的rpc开发的方式,进行服务消费者开发,并上线发布;

服务消费者调用服务提供者;

制定灰度方案,在非重点项目进行试点;

试点成功后推广到其它应用系统。

本发明实施例提供的基于rpc协议的跨网络区域代理访问方法及系统,既保留了部分现有网络架构以符合安全监管要求,又实现了跨网络区域的高性能、高可用、统一协议的应用之间互访。.通过rpc代理访问服务实现了跨区域应用服务注册、服务发现的自动化,提高了应用运维自动化水平,减少了人工操作出错的风险。rpc代理访问缩短了应用通信链路,提升了应用性能,通过组件rpc代理访问集群的部署方式实现了高可用,提升了系统稳定性和可靠性。使得应用跨网络区域rpc访问可以享受统一框架的服务治理功能,实现全面标准的服务治理策略,大大提高了服务治理效率和效果,也为业务系统的稳定运行提供了保障。通过动态配置、服务分组、动态容量管理实现了应用运维自动化,无需运维人工介入,自动根据系统运行情况进行弹性调整,保证系统的正常运行。实现了技术架构的统一和标准化,降低系统的开发和运维管理成本,同时有利于新技术的推广和实施。

以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1