网关动态配置方法、系统、计算机设备及存储介质与流程

文档序号:17488494发布日期:2019-04-23 20:11阅读:238来源:国知局
网关动态配置方法、系统、计算机设备及存储介质与流程

本发明实施例涉及网络技术领域,尤其涉及一种网关动态配置方法、系统、计算机设备及计算机可读存储介质。



背景技术:

网关作为运营商、数字内容提供商以及网络设备厂商提供网络服务的通道,可以提供宽带数据、语音、视频、网络安全、能源管理、健康监测等多个网络运用和服务。比如,网关作为服务器的入口,不仅用于接收客户端的请求信息,根据所述请求信息向服务器请求客户端所需的内容,还用于为服务器提供安全校验等服务功能。

随着网络攻击的出现,服务器的安全性面临日益严峻的挑战。如,目前所知的一些网络攻击可以从简单的使服务器无法提供服务到完全破坏、控制服务器。为应对上述情况,服务器需要经常漏洞修复、迭代程序版本。但是,通过上述方式应对网络攻击会有一定的缺陷,例如:程序版本迭代周期一般较长,无法及时应对突发性的网络攻击事件;版本迭代需要重启服务器或相关软件,导致服务中止,从而降低用户体验。



技术实现要素:

有鉴于此,本发明实施例的目的是提供一种网关动态配置方法、系统、计算机设备及计算机可读存储介质,可以及时对应突发性的网络攻击事件,且无需重启服务器或相关软件,保持服务的持续性,提升用户体验。

为实现上述目的,本发明实施例提供了一种网关动态配置方法,包括以下步骤:热部署至少一个类文件,并将所述类文件存储至指定文件夹中,所述类文件中定义有可扩展的zuul组件过滤器,所述zuul组件过滤器用于执行一个或多个网关服务功能;当目标程序处于运行状态时,监测所述指定文件夹中的所述类文件是否发生被修改事件;及如果所述指定文件夹中的所述类文件发生被修改事件,则将修改后的类文件通过类加载程序载入至内存中,以执行修改后的类文件对应的网关服务功能。

进一步地,所述监测所述指定文件夹中的所述类文件是否发生被修改事件的步骤,包括:

以预定频率扫描所述指定文件夹,读取所述类文件以得到所述类文件的文件信息,所述文件信息包括上一次被加载时间和上一次被修改时间;

比较所述上一次被加载时间是否小于所述上一次被修改时间;及

如果所述上一次被加载时间小于所述上一次被修改时间,判断所述指定文件夹中的所述类文件发生被修改事件。

进一步地,所述类文件配置有文件名,所述监测所述指定文件夹中的所述类文件是否发生被修改事件的步骤,包括:

以预定频率扫描所述指定文件夹,根据该文件名索引并读取所述类文件;

比较该文件名下的所述类文件与该文件名下的上一次被加载的类文件是否相同;及

如果不同,判断该文件名下的所述类文件发生被修改事件。

进一步地,所述一个或多个网关服务功能包括:监控功能、权限控制功能、动态路由功能和/或负载均衡功能。

为实现上述目的,本发明实施例还提供了一种计算机设备,所述计算机设备包括存储器、处理器,所述存储器上存储有可在所述处理器上运行的网关动态配置系统,所述网关动态配置系统被所述处理器执行时实现如下步骤:热部署至少一个类文件,并将所述类文件存储至指定文件夹中,所述类文件中定义有可扩展的zuul组件过滤器,所述zuul组件过滤器用于执行一个或多个网关服务功能;当目标程序处于运行状态时,监测所述指定文件夹中的所述类文件是否发生被修改事件;及如果所述指定文件夹中的所述类文件发生被修改事件,则将修改后的类文件通过类加载程序载入至内存中,以执行修改后的类文件对应的网关服务功能。

进一步地,所述监测所述指定文件夹中的所述类文件是否发生被修改事件的步骤,包括:

以预定频率扫描所述指定文件夹,读取所述类文件以得到所述类文件的文件信息,所述文件信息包括上一次被加载时间和上一次被修改时间;

比较所述上一次被加载时间是否小于所述上一次被修改时间;及

如果所述上一次被加载时间小于所述上一次被修改时间,判断所述指定文件夹中的所述类文件发生被修改事件。

进一步地,所述类文件配置有文件名,所述监测所述指定文件夹中的所述类文件是否发生被修改事件的步骤,包括:

以预定频率扫描所述指定文件夹,根据该文件名索引并读取所述类文件;

比较该文件名下的所述类文件与该文件名下的上一次被加载的类文件是否相同;及

如果不同,判断该文件名下的所述类文件发生被修改事件。

进一步地,所述一个或多个网关服务功能包括:监控功能、权限控制功能、动态路由功能和/或负载均衡功能。

为实现上述目的,本发明实施例还提供了一种网关动态配置系统,包括:

热部署模块,用于热部署至少一个类文件,并将所述类文件存储至指定文件夹中,所述类文件中定义有可扩展的zuul组件过滤器,所述zuul组件过滤器用于执行一个或多个网关服务功能;

监测模块,用于当目标程序处于运行状态时,监测所述指定文件夹中的所述类文件是否发生被修改事件;及

类文件执行模块,用于如果所述指定文件夹中的所述类文件发生被修改事件,则将修改后的类文件通过类加载程序载入至内存中,以执行修改后的类文件对应的网关服务功能。

为实现上述目的,本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序可被至少一个处理器所执行,以使所述至少一个处理器执行如如上所述的网关动态配置方法的步骤。

本发明实施例提供的网关动态配置方法、系统、计算机设备及计算机可读存储介质,可以根据当前业务需求在类文件中修改zuul网关服务功能,如增加ip黑名单控制、新增黑名单用户等等,该修改后的类文件可以被动态加载到内存中,而不需要启动程序或硬件载体,因此达到了不停机维护路由信息的技术效果。比如,当面临不确定性攻击事件时,可以高效地提供应对该攻击事件的网关服务功能,而不需要停机维护,有效地提升了应对攻击事件的响应效率以及网关服务的持续性。

附图说明

图1为本发明网关动态配置方法实施例一的流程图。

图2为本发明网关动态配置方法实施例二的流程图。

图3为本发明网关动态配置方法实施例三的流程图。

图4为本发明网关动态配置系统实施例四的程序模块示意图。

图5为本发明计算机设备实施例五的硬件结构示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

为便于理解,首先对本文中“类文件”进行解释。所述类文件,是编译后的字节码文件,通常包括指令、参数等。以java类文件为例:在java业务系统中,java编译器为每个java类(业务)生成一个java类文件,这种文件采用java虚拟机(jvm)定义的java类文件格式保存,并由java虚拟机加载并解释执行。针对当前的业务系统,系统维护人员根据业务所需的功能,进行相应的开发即编译支持所述业务的应用,编译调试完毕后,通过java编译器或类似的语言编译器将所述业务的应用生成相应的java类文件。当然,本实施例不限于java格式的类文件,也可以其他格式的类文件,如c++等。

实施例一

参阅图1,示出了本发明实施例一之网关动态配置方法的步骤流程图。可以理解,本方法实施例中的流程图不用于对执行步骤的顺序进行限定。下面以服务器为执行主体进行示例性描述。具体如下。

步骤s100,热部署至少一个类文件,并将所述类文件存储至指定文件夹中。

热部署,是指当目标程序运行状态中,无需启动应用程序或硬件载体,而可以实现程序的升级操作。以类文件(a.class文件)为例,当该a.class文件被修改之后,可以将直接将可以将该修改后的a.class文件通过类加载程序载入到内存中,以替换修改前的a.class文件,上述操作不需要重启目标程序或硬件载体。

所述类文件中定义有可扩展的zuul组件过滤器(又称zuulfilter)。zuul是netflix开源的一个api(应用程序编程接口,applicationprogramminginerface)网关服务器,用于提供动态路由、监控、弹性、安全的网关服务。zuul提供不同类型的过滤器用于处理请求,这些zuulfilter用于执行一个或多个网关服务功能:监控功能(黑名单拦截、修改黑名单等)、权限控制功能、动态路由功能、负载均衡功能等。可以理解,本实施例中的类文件在于自定义一个zuul组件的过滤器,其继承zuulflieter类,实现zuufliter类的抽象方法,自定义一些网关服务功能。本实施例中的类文件具有可扩展性,定义有用于扩展的接口。示例性的,类文件中还可以定义一个自动扩展功能语法,该自动扩展功能语法用于根据当前网络环境(如,出现的攻击事件),来扩展相应的网络服务功能。

所述类文件存储至指定文件夹中,具体的,所述类文件可以被存储在cdn(内容分发网络,contentdeliverynetwork)配置库中,也可以被存储在其他指定数据库中。

步骤s102,当目标程序处于运行状态时,监测所述指定文件夹中的所述类文件是否发生被修改事件。

在本实施例中,目标程序关联所述类文件,或者说需要调用该类文件。当该目标程序处于运行状态中时,可能已经加载了类文件(但可能是先前的旧版本),因此需要通过后续的步骤来确认:该目标程序当前所加载的类文件是否是指定文件夹中的最新修改的类文件。

当该目标程序处于运行状态时,该目标程序可以开启一个线程,该线程用于监测所述指定文件夹中的所述类文件是否发生被修改事件。

步骤s104,如果所述指定文件夹中的所述类文件发生被修改事件,则将修改后的类文件通过类加载程序载入至内存中,以执行修改后的类文件对应的网关服务功能。

将修改后的类文件加载到内存中之后,对该修改后的类文件进行会执行以下操作:1)校验操作,以确保输入的字节流能正确被解析并存储于方法区;2)准备操作,为类变量分配内存并设置类变量初始值;3)解析操作,将常量池内的符号引用替换为直接引用的过程,如对类或接口、字段、类方法、接口方法等进行解析;4)初始化操作,执行类中定义的代码;5)使用操作,根据类文件中的定义的网关服务功能。

实施例二

请参阅图2,示出了本发明实施例二之网关动态配置方法的步骤流程图。本实施例的一种网关动态配置方法中,包括以下步骤:

步骤s200,热部署至少一个类文件,并将所述类文件存储至指定文件夹中。所述类文件中定义有可扩展的zuul组件过滤器,所述zuul组件过滤器用于执行一个或多个网关服务功能。

步骤s202,监测目标程序是否处于运行状态。如果是,进入步骤s204,否则继续监测。

步骤s204,以预定频率扫描所述指定文件夹,读取所述类文件以得到所述类文件的文件信息,所述文件信息包括上一次被加载时间和上一次被修改时间。

步骤s206,比较所述上一次被加载时间是否小于所述上一次被修改时间。如果是,进入步骤s208,否则进入步骤s210。

“上一次被加载时间”是指文件信息中记录的最新被加载时间,比如文件信息中记录的被加载时间依次为:2018/05/06am8:00、2018/05/10am8:00、2018/06/15am8:00、2018/07/11am8:00,上一次被加载时间为2018/07/11am8:00。

“上一次被修改时间”是指文件信息中记录的最新被修改时间,不再赘述。

步骤s208,判断所述指定文件夹中的所述类文件发生被修改事件。进入步骤s212。

步骤s210,判断所述指定文件夹中的所述类文件没有发生被修改事件,进入步骤s214。

步骤s212,将修改后的类文件通过类加载程序载入至内存中,以执行修改后的类文件对应的网关服务功能。

步骤s214,不对所述类文件执行重新加载操作。即,继续执行当前已加载到内存中、正处于调用状态中的类文件,而无需重新加载所述指定文件夹中的类文件。

实施例三

与实施例二不同之处在于,类文件被修改事件的判断方法不同。在本实施例中,类文件被配置有对应的文件标识,如文件名。

请参阅图3,示出了本发明实施例三之网关动态配置方法的步骤流程图。本实施例的一种网关动态配置方法中,包括以下步骤:

步骤s300,热部署至少一个类文件,并将所述类文件存储至指定文件夹中。所述类文件中定义有可扩展的zuul组件过滤器,所述zuul组件过滤器用于执行一个或多个网关服务功能。

步骤s302,监测目标程序是否处于运行状态。如果是,进入步骤s304,否则继续监测。

步骤s304,以预定频率扫描所述指定文件夹,根据所述类文件的文件名索引并读取所述类文件。

步骤s306,比较该文件名下的所述类文件与该文件名下的上一次被加载的类文件是否相同。如果不同,进入步骤s308;否则进入步骤s310。

示例性的,可以比较该文件名下的所述类文件的字数与该文件名下的上一次被加载的类文件的字数。当字数不同时,则判断该文件名下的所述类文件发生被修改事件,反之则未发生被修改事件。

示例性的,可以比较该文件名下的所述类文件的代码字符串与该文件名下的上一次被加载的类文件的代码字符串。当代码字符串不同时,则判断该文件名下的所述类文件发生被修改事件,反之则未发生被修改事件。

步骤s308,判断该文件名下的所述类文件发生被修改事件。进入步骤s312。

步骤s310,判断该文件名下的所述类文件没有发生被修改事件。进入步骤s314。

步骤s312,将修改后的类文件通过类加载程序载入至内存中,以执行修改后的类文件对应的网关服务功能。

步骤s314,不对所述类文件执行重新加载操作。

实施例四

请继续参阅图4,示出了本发明网关动态配置系统实施例四的程序模块示意图。在本实施例中,网关动态配置系统20可以包括或被分割成一个或多个程序模块,一个或者多个程序模块被存储于存储介质中,并由一个或多个处理器所执行,以完成本发明,并可实现上述网关动态配置方法。本发明实施例所称的程序模块是指能够完成特定功能的一系列计算机程序指令段,比程序本身更适合于描述网关动态配置系统20在存储介质中的执行过程。以下描述将具体介绍本实施例各程序模块的功能:

热部署模块200,用于热部署至少一个类文件,并将所述类文件存储至指定文件夹中,所述类文件中定义有可扩展的zuul组件过滤器,所述zuul组件过滤器用于执行一个或多个网关服务功能。

示例性的,本实施例中的类文件在于自定义一个zuul组件的过滤器,其继承zuulflieter类,实现zuufliter类的抽象方法,自定义一些网关服务功能。本实施例中的类文件具有可扩展性,定义有用于扩展的接口。示例性的,类文件中还可以定义一个自动扩展功能语法,该开启自动扩展功能语法用于根据当前网络环境(如,出现的攻击事件),来扩展相应的网络服务功能。

示例性的,所述一个或多个网关服务功能包括:监控功能、权限控制功能、动态路由功能和/或负载均衡功能。

监测模块202,用于当目标程序处于运行状态时,监测所述指定文件夹中的所述类文件是否发生被修改事件。

在本实施例中,目标程序关联所述类文件,当该目标程序处于运行状态时,该目标程序可以开启一个线程,该线程用于监测所述指定文件夹中的所述类文件是否发生被修改事件。

示例性的,所述监测模块202用于:以预定频率扫描所述指定文件夹,读取所述类文件以得到所述类文件的文件信息,所述文件信息包括上一次被加载时间和上一次被修改时间;比较所述上一次被加载时间是否小于所述上一次被修改时间;及如果所述上一次被加载时间小于所述上一次被修改时间,判断所述指定文件夹中的所述类文件发生被修改事件。

示例性的,所述类文件配置有文件名,所述监测模块202用于:以预定频率扫描所述指定文件夹,根据该文件名索引并读取所述类文件;比较该文件名下的所述类文件与该文件名下的上一次被加载的类文件是否相同;如果不同,判断该文件名下的所述类文件发生被修改事件。

需要说明的是,上面仅仅是示例性地描述了监测模块的两种具体实现方法,它们并不用于限制本发明。

类文件执行模块204,用于如果所述指定文件夹中的所述类文件发生被修改事件,则将修改后的类文件通过类加载程序载入至内存中,以执行修改后的类文件对应的网关服务功能。如果所述指定文件夹中的所述类文件没有发生被修改事件,则该类文件执行模块204不执行操作。

实施例五

参阅图5,是本发明实施例五之计算机设备的硬件架构示意图。本实施例中,所述计算机设备2是一种能够按照事先设定或者存储的指令,自动进行数值计算和/或信息处理的设备。该计算机设备2可以是机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个服务器所组成的服务器集群)等。如图所示,所述计算机设备2至少包括,但不限于,可通过系统总线相互通信连接存储器21、处理器22、网络接口23、以及网关动态配置系统20。其中:

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

处理器22在一些实施例中可以是中央处理器(centralprocessingunit,cpu)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器22通常用于控制计算机设备20的总体操作。本实施例中,处理器22用于运行存储器21中存储的程序代码或者处理数据,例如运行网关动态配置系统20,以实现实施例一、二或三的网关动态配置方法。

所述网络接口23可包括无线网络接口或有线网络接口,该网络接口23通常用于在所述服务器2与其他电子装置之间建立通信连接。例如,所述网络接口23用于通过网络将所述服务器2与外部终端相连,在所述服务器2与外部终端之间的建立数据传输通道和通信连接等。所述网络可以是企业内部网(intranet)、互联网(internet)、全球移动通讯系统(globalsystemofmobilecommunication,gsm)、宽带码分多址(widebandcodedivisionmultipleaccess,wcdma)、4g网络、5g网络、蓝牙(bluetooth)、wi-fi等无线或有线网络。

需要指出的是,图5仅示出了具有部件20-23的计算机设备2,但是应理解的是,并不要求实施所有示出的部件,可以替代的实施更多或者更少的部件。

在本实施例中,存储于存储器21中的所述网关动态配置系统20还可以被分割为一个或者多个程序模块,所述一个或者多个程序模块被存储于存储器21中,并由一个或多个处理器(本实施例为处理器22)所执行,以完成本发明。

例如,图4示出了所述实现网关动态配置系统20实施例四的程序模块示意图,该实施例中,所述基于网关动态配置系统20可以被划分为热部署模块200、监测模块202和类文件加载模块204。其中,本发明所称的程序模块是指能够完成特定功能的一系列计算机程序指令段,比程序更适合于描述所述网关动态配置系统20在所述计算机设备2中的执行过程。所述程序模块200-204的具体功能在实施例四中已有详细描述,在此不再赘述。

实施例六

本实施例还提供一种计算机可读存储介质,如闪存、硬盘、多媒体卡、卡型存储器(例如,sd或dx存储器等)、随机访问存储器(ram)、静态随机访问存储器(sram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、可编程只读存储器(prom)、磁性存储器、磁盘、光盘、服务器、app应用商城等等,其上存储有计算机程序,程序被处理器执行时实现相应功能。本实施例的计算机可读存储介质用于存储网关动态配置系统20,被处理器执行时实现实施例一、二或三的网关动态配置方法。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。

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

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