一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于微服务架构的文件类型识别系统及方法与流程

2022-04-09 10:51:28 来源:中国专利 TAG:


1.本技术涉及计算机应用技术领域,尤其涉及一种基于微服务架构的文件类型识别系统及方法。


背景技术:

2.为了维护网络信息安全,在防火墙以及网络行为审计等过程中,需要对网络设备传输文件的类型进行识别,再根据文件类型信息对经过设备的传输文件进行过滤或者拦截处理。
3.文件类型识别需要将文件类型识别特征库加载到内存中,将待识别的文件与文件类型识别特征库进行比对,得到文件后缀。传统的文件类型识别方法,将文件类型识别特征库加载在固定的系统资源内,对文件类型识别任务进行处理。
4.但是文件类型识别任务并非一直存在,即需要对文件类型进行识别的时机存在不确定性,文件类型识别任务量的多少也难以预知。在文件类型识别任务较少或者没有文件类型识别任务时会导致系统资源浪费,当文件类型识别任务激增时也无法合理扩容,导致拥塞。


技术实现要素:

5.本技术提供了一种基于微服务架构的文件类型识别系统及方法,以解决在对文件类型进行识别时系统资源分配不平衡的问题。
6.一方面,本技术提供一种基于微服务架构的文件类型识别系统,包括:识别请求模块、管理模块、监听模块和若干微服务。
7.所述识别请求模块被配置为,向所述管理模块发起文件识别请求。所述文件识别请求用于启动所述管理模块开始进行文件类型识别。
8.所述管理模块被配置为,响应所述文件识别请求,生成文件识别任务。所述文件识别任务包括待识别的文件信息。启动所述监听模块。启动所述微服务,将所述文件识别任务分配给所述微服务。
9.所述微服务被配置为,处理所述文件识别任务,获取任务处理结果,并将所述任务处理结果发送给所述管理模块。
10.所述监听模块被配置为,获取所述微服务的负载量,并将所述负载量发送给所述管理模块。所述负载量为所述微服务缓存的所述文件识别任务的数量。
11.所述管理模块被配置为,根据所述微服务的所述负载量,增加或者减少所述微服务的数量。
12.在一种实现方式中,在所述管理模块收到所述文件识别请求时,自动启动至少一个所述微服务。所述管理模块启动时根据配置默认加载至少一个所述微服务,防止所述文件识别任务较少时需要动态加载所述微服务。
13.在一种实现方式中,在处理所述文件识别任务,获取任务处理结果的步骤中,所述
微服务被进一步配置为:
14.将文件类型识别特征库加载到系统内存中。
15.向所述管理模块发起注册消息。
16.向所述管理模块发起任务处理请求,获取所述文件识别任务。
17.查询所述文件类型识别特征库,获取任务处理结果。
18.所述微服务将所述任务处理结果发送给所述管理模块后,所述管理模块将所述任务处理结果反馈给所述识别请求模块,所述识别请求模块将所述处理结果发送给其他程序进行后续处理,例如接收或者拦截等。
19.在一种实现方式中,在所述启动微服务,将所述文件识别任务分配给所述微服务的步骤中,所述管理模块被配置为:
20.获取所述注册消息,将所述微服务加载到微服务队列中。
21.从所述监听模块获取所述微服务队列中各个所述微服务的所述负载量。
22.将所述文件识别任务优先分配给所述负载量低的所述微服务。
23.所述微服务获取到所述文件识别任务后,将所述文件识别任务缓存在所述微服务的任务列表中,依次对所述文件识别任务进行处理。每一个所述微服务任务列表自动记录所述微服务当前缓存的所述文件识别任务的数量,即所述微服务的负载量。
24.在一种实现方式中,在所述根据所述微服务的负载量,增加或减少所述微服务的数量的步骤中,所述管理模块被配置为:
25.设置负载阈值。
26.若所述微服务队列中所有所述微服务的所述负载量均超过所述负载阈值。
27.动态启动一个新的所述微服务。
28.在一种实现方式中,在所述根据所述微服务的负载量,增加或减少所述微服务的数量的步骤中,所述管理模块被进一步配置为:
29.若所述微服务为空载微服务时,释放所述空载微服务。所述空载微服务为连续n次未获取到所述文件识别任务,且为动态启动的所述微服务。
30.在一种实现方式中,所述管理模块被配置为,设置最大启动数量,所述微服务的数量达到所述最大启动数量时,不再启动新的所述微服务。
31.所述管理模块设置最大启动数量,防止设备受到恶意攻击时导致占用的系统资源不断增长,直到资源耗尽设备无法运行。如果当前确实有大量所述文件识别任务时,可以手动配置所述最大启动数量,满足任务处理需求。
32.另一方面,本技术还提供一种基于微服务架构的文件类型识别方法,应用于上述基于微服务架构的文件类型识别系统,所述系统包括识别请求模块、管理模块、监听模块和若干微服务。所述方法包括:
33.所述管理模块接收所述识别请求模块发起的文件识别请求;
34.所述管理模块响应所述文件识别请求,生成文件识别任务;启动所述监听模块;启动所述微服务,将所述文件识别任务分配给所述微服务;
35.所述管理模块接收所述微服务处理所述文件识别任务生成的所述任务处理结果;
36.所述管理模块接收所述监听模块获取到的所述微服务的负载量;所述负载量为所述微服务缓存的所述文件识别任务的数量;
37.所述管理模块根据所述微服务的所述负载量,增加或减少所述微服务的数量。
38.在一种实现方式中,所述管理模块启动所述微服务,将所述文件识别任务分配给所述微服务,包括:
39.将所述微服务加载到微服务队列;
40.从所述监听模块获取所述微服务队列中各个所述微服务的所述负载量;
41.将所述文件识别任务优先分配给所述负载量低的所述微服务。
42.在一种实现方式中,所述管理模块根据所述微服务的所述负载量,增加或减少所述微服务的数量,包括:
43.设置负载阈值;
44.若所述微服务队列中所有所述微服务的所述负载量均超过所述负载阈值;
45.动态启动一个新的所述微服务;
46.若所述微服务为空载微服务时,释放所述空载微服务;所述空载微服务为连续n次未获取到所述文件识别任务,且为动态启动的所述微服务。
47.本技术提供的基于微服务架构的文件类型识别系统,包括识别请求模块、管理模块、监听模块和若干微服务。所述识别请求模块用于向所述管理模块发起文件识别请求,所述管理模块响应所述文件识别请求,生成文件识别任务,同时启动所述微服务。所述监听模块用于获取所述微服务的负载量,并将所述负载量发送给所述管理模块。所述管理模块根据所述负载量分配所述文件识别任务,优先将所述文件识别任务分配给所述负载量低的所述微服务。并根据所述负载量调节所述微服务的数量,所述管理模块设置负载阈值,当所有所述微服务的所述负载量均超过所述负载阈值时,所述管理模块动态启动一个所述微服务。当动态启动的所述微服务连续n次未获取到所述文件识别任务,所述管理模块释放该所述微服务。
48.本技术采用微服务架构的方式实现文件类型识别,即文件类型识别处理采用多进程方式进行,提高处理效率。并且所述微服务的数量可以根据所述文件识别任务的数量自动调节,任务量多时增加所述微服务,任务量少或者没有文件识别任务时,减少所述微服务,合理利用系统资源。
附图说明
49.为了更清楚地说明本技术的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
50.图1为本技术实施例提供的基于微服务架构的文件类型识别系统的结构示意图;
51.图2为本技术实施例提供的微服务队列的结构示意图;
52.图3为本技术实施例提供的管理模块工作流程示意图;
53.图4为本技术实施例提供的监听模块工作流程示意图;
54.图5为本技术实施例提供的微服务工作流程示意图;
55.图6为本技术实施例提供的基于微服务架构的文件类型识别方法流程图;
56.图7为本技术实施例提供的管理模块任务分配方法流程图;
57.图8为本技术实施例提供的微服务管理方法流程图。
具体实施方式
58.下面将详细地对实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下实施例中描述的实施方式并不代表与本技术相一致的所有实施方式。仅是与权利要求书中所详述的、本技术的一些方面相一致的系统和方法的示例。
59.微服务是面向服务的体系结构架构样式的一种变体,它提倡将单一应用程序划分成一组小的服务,服务之间相互协调、相互配合。每个服务运行在其独立的进程中,每个服务都围绕着具体业务进行构建。
60.为了维护网络信息安全,通常需要识别出网络设备传输的文件类型,以判断传输的文件是否安全,并做出相应的处理。但是传统的文件类型识别方法通常将文件类型识别程序加载到固定的系统资源上,在文件类型识别任务激增时无法合理扩容,导致处理缓慢,在文件类型识别任务减少时会造成系统资源浪费。基于此,本技术实施例提供一种基于微服务架构的文件类型识别系统及方法,根据文件类型识别任务量自动调节启动的微服务数量,合理利用系统资源。本技术可以应用于防火墙设备、交换机、路由器、行为审计等网络设备上针对文件类型识别的业务中,本技术实施例对此不进行限定。
61.本实施例提供一种基于微服务架构的文件类型识别系统。参见图1,本实施例提供的基于微服务架构的文件类型识别系统,包括识别请求模块、管理模块、监听模块和若干微服务。所述识别请求模块被配置为,当需要进行文件类型识别时向所述管理模块发起文件识别请求,生成唯一的文件识别请求id,启动所述管理模块开始进行文件类型识别。所述管理模块被配置为,响应所述文件识别请求,根据所述文件识别请求id生成对应的文件识别任务,所述文件识别任务中包括待识别的文件信息。
62.参见图3,所述管理模块启动所述监听模块,并且自启动至少一个所述微服务,将所述文件识别任务分配给所述微服务。所述管理模块启动时根据配置默认加载至少一个所述微服务,防止所述文件识别任务较少时需要动态加载所述微服务。
63.参见图5,所述微服务启动后,首先将文件类型识别特征库加载到系统内存中,然后向所述管理模块发起注册消息,所述管理模块收到所述注册消息后,将所述微服务加载到微服务队列中。本技术实施例提供的所述微服务队列结构参见图2。需要进行文件识别时,所述管理模块将所述文件识别任务分配给所述微服务队列中的所述微服务。
64.所述微服务完成注册后定时向所述管理模块发起任务处理请求,所述管理模块收到所述任务处理请求后,将所述文件识别任务分配给所述微服务。所述微服务获取所述文件识别任务后,对所述文件识别任务中的待识别的文件信息查询所述文件类型识别特征库,获取任务处理结果,即文件后缀。并将所述任务处理结果发给所述管理模块,所述管理模块将所述任务处理结果反馈给所述识别请求模块,所述识别请求模块将所述处理结果发送给其他程序进行后续处理,例如接收或者拦截等。
65.所述微服务获取到所述文件识别任务后,将所述文件识别任务缓存在所述微服务的任务列表中,依次对所述文件识别任务进行处理。每一个所述微服务任务列表自动记录所述微服务当前缓存的所述文件识别任务的数量,即所述微服务的负载量。参见图4,所述监听模块被配置为监听所述微服务的动作,获取监听信息,所述监听信息包括所述微服务发出的所述注册信息、所述任务处理请求、所述任务处理结果以及所述微服务的所述负载
量等,并将所述监听信息实时发送给所述管理模块。
66.在进行所述文件类型识别任务分配时,所述管理模块获取所述微服务队列中所有所述微服务的所述负载量,并对所述负载量进行比较,优先将所述文件类型识别任务分配给所述负载量最低的所述微服务,合理分配系统资源。
67.所述管理模块根据所述文件识别任务的数量管理所述微服务,首先所述管理模块设置负载阈值,然后将所有所述微服务的所述负载量与所述负载阈值进行比较,若所有所述微服务的所述负载量均超过所述负载阈值,证明所述文件识别任务数量较多,此时所述管理模块动态开启一个所述微服务来分担所述文件识别任务,提高处理效率。所述负载阈值根据所述文件识别任务占用内存空间的大小以及所述微服务加载所述文件类型识别特征库占用的内存空间的大小进行设置。例如,一个所述文件识别任务最大占用内存空间为2k,每个所述微服务加载的所述文件类型识别特征库占用内存末4m左右,则可以将所述负载阈值设置为每个所述微服务缓存的所述文件识别任务的数量为512。
68.所述管理模块设置所述微服务的最大启动数量,当所述微服务的数量达到所述最大启动数量时,所述管理模块不再继续开启所述微服务,防止设备受到恶意攻击时导致占用的系统资源不断增长,直到资源耗尽设备无法运行。所述最大启动数量根据当前系统的内存大小设置,例如内存资源为2g大小时可以设置所述最大启动数量为8,内存资源为4g大小时可以设置所述最大启动数量为16。如果当前确实有大量所述文件识别任务时,可以手动配置所述最大启动数量,满足任务处理需求。
69.若动态启动的所述微服务连续n次未获取到所述文件识别任务,即该所述微服务为空载微服务时,证明当前所述文件识别任务较少或者不存在所述文件识别任务,所述管理模块释放所述空载微服务,减少系统资源占用。
70.本实施例还提供一种基于微服务架构的文件类型识别方法,所述方法应用于上述文件类型识别系统。参见图6,所述方法步骤包括:
71.所述管理模块接收所述识别请求模块发起的文件识别请求;
72.所述管理模块响应所述文件识别请求,生成文件识别任务;启动所述监听模块;启动所述微服务,将所述文件识别任务分配给所述微服务;
73.参见图7,所述管理模块将所述文件识别任务分配给所述微服务的具体步骤包括:将所述微服务加载到微服务队列;从所述监听模块获取所述微服务队列中各个所述微服务的所述负载量;将所述文件识别任务优先分配给所述负载量低的所述微服务。
74.所述管理模块接收所述微服务处理所述文件识别任务生成的所述任务处理结果;
75.所述管理模块接收所述监听模块获取到的所述微服务的负载量;所述负载量为所述微服务缓存的所述文件识别任务的数量;
76.所述管理模块根据所述微服务的所述负载量,增加或减少所述微服务的数量。
77.参见图8,所述管理模块对所述微服务的数量进行管理的具体步骤包括:设置负载阈值;若所述微服务队列中所有所述微服务的所述负载量均超过所述负载阈值;动态启动一个新的所述微服务;若所述微服务为空载微服务时,释放所述空载微服务;所述空载微服务为连续n次未获取到所述文件识别任务,且为动态启动的所述微服务。
78.本技术实施例提供了一种基于微服务架构的文件类型识别系统及方法,所述系统包括识别请求模块、管理模块、监听模块和若干微服务。所述识别请求模块用于向所述管理
模块发起文件识别请求,所述管理模块响应所述文件识别请求,生成文件识别任务,同时启动所述微服务。所述监听模块用于获取所述微服务的负载量,并将所述负载量发送给所述管理模块。所述管理模块根据所述负载量分配所述文件识别任务,优先将所述文件识别任务分配给所述负载量低的所述微服务。并根据所述负载量调节所述微服务的数量,所述管理模块设置负载阈值,当所有所述微服务的所述负载量均超过所述负载阈值时,所述管理模块动态启动一个所述微服务。若动态启动的所述微服务连续n次未获取到所述文件识别任务,所述管理模块释放该所述微服务。
79.本技术采用微服务架构的方式实现文件类型识别,即文件类型识别处理采用多进程方式进行,提高处理效率。并且所述微服务的数量可以根据所述文件识别任务的数量自动调节,任务量多时增加所述微服务,任务量少或者没有文件识别任务时,减少所述微服务,合理利用系统资源。
80.本技术提供的实施例之间的相似部分相互参见即可,以上提供的具体实施方式只是本技术总的构思下的几个示例,并不构成本技术保护范围的限定。对于本领域的技术人员而言,在不付出创造性劳动的前提下依据本技术方案所扩展出的任何其他实施方式都属于本技术的保护范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献