一种大规模集群请求处理方法、装置以及介质与流程

文档序号:31861948发布日期:2022-10-19 05:32阅读:100来源:国知局
一种大规模集群请求处理方法、装置以及介质与流程

1.本技术涉及数据处理技术领域,特别是涉及一种大规模集群请求处理方法、装置以及介质。


背景技术:

2.存储管理软件集成了存储资源管理、监测、报告、分层存储、性能管理、灾难恢复和业务连续性的所有必要操作,通常为b/s架构,浏览器通过http接口访问后台服务,接口内部一般实时调用命令获取存储系统配置。在集群规模较小时,从所有节点获取信息耗时不大,当集群规模大于50节点时,获取所有节点信息耗时较长,界面体验差,即使内部采用多线程并发处理,优化效果有限,并且并发线程越多,资源占用越高。
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.优选的,所述第一创建模块包括第三加载模块,用于调用对应的业务函数获取所述请求的相关数据,并加载至所述缓存中。
30.优选的,还包括:处理模块,用于判断所述缓存中的所述对应数据是否失效;若失效,则进入所述根据预加载策略创建后台任务,以将所述对应数据加载至所述缓存中的步骤;若未失效,则进入所述将所述缓存中的对应数据发送至所述客户端的步骤。
31.优选的,还包括:删除模块,用于删除失效的所述对应数据。
32.优选的,还包括:告警模块,用于发送告警信息至客户端。
33.为解决上述技术问题,本技术还提供另一种大规模集群请求处理装置,包括存储器,用于存储计算机程序;
34.处理器,用于执行所述计算机程序时实现如上述的大规模集群请求处理方法的步骤。
35.为解决上述技术问题,本技术还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述的大规模集群请求处理方法的步骤。
36.本技术所提供的大规模集群请求处理方法,服务器拦截客户端的请求,并根据请求确认服务器的缓存中是否存在对应数据,若缓存中存在对应数据,则将缓存中的对应数据发送至客户端,若缓存中不存在对应数据,则执行业务逻辑以获取对应数据,并将对应数据加载至缓存中,进入将缓存中的对应数据发送至客户端的步骤。相对于当前技术中,服务器需要获取所有节点信息而导致耗时较长,采用本技术方案,将请求对应的数据存入缓存中,在服务器访问客户端时,直接从缓存中返回数据以实现耗时的减少,在缓存中不存在对应数据时则执行业务逻辑以获取对应数据,并将对应数据加载至缓存,以提高界面体验感,提高用户体验。
37.此外,本技术所提供的大规模集群请求处理装置以及介质与上述的大规模集群请求处理方法相对应,效果同上。
附图说明
38.为了更清楚地说明本技术实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
39.图1为本技术实施例提供的一种大规模集群请求处理方法的流程图;
40.图2为当前技术中的一种集群请求处理方法的流程图;
41.图3为本技术实施例提供的一种大规模集群请求处理装置的结构图;
42.图4为本技术实施例提供的另一种大规模集群请求处理装置的结构图。
具体实施方式
43.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下,所获得的所有其他实施例,都属于本技术保护范围。
44.在一套完整的存储解决方案中,如何确保所有企业数据能够得到可靠备份,及时进行灾难恢复,这都是存储管理软件的主要任务。存储管理软件的核心功能是对数据和应用进行备份和恢复,很多存储管理软件厂商的主打产品都是备份与恢复解决方案。还具有改进系统和应用i/o性能及存储管理能力,如卷管理器(volume manager)、文件系统(file system)、quick i/o、cache i/o等都是用来实现该功能的。同时能够提高数据和应用系统的高可用性,减少由于各种原因中断数据存取或者应用系统宕机的时间,实现技术有分级存储管理(hsm)、cluster server(集群服务器)等。
45.存储管理软件集成了存储资源管理、监测、报告、分层存储、性能管理、灾难恢复和业务连续性的所有必要操作,通常为b/s架构。b/s结构(browser/server,浏览器/服务器模式),是web兴起后的一种网络结构模式,web浏览器是客户端最主要的应用软件。这种模式统一了客户端,将系统功能实现的核心部分集中到服务器上,简化了系统的开发、维护和使用。客户机上只要安装一个浏览器,如chrome、safari、microsoft edge、netscape navigator或internet explorer,服务器安装sql server、oracle、mysql等数据库。浏览器通过web server同数据库进行数据交互。浏览器通过http接口访问后台服务,接口内部一般实时调用命令获取存储系统配置。在集群规模较小时,从所有节点获取信息耗时不大,当集群规模大于50节点时,获取所有节点信息耗时较长,界面体验差,即使内部采用多线程并发处理,优化效果有限,并且并发线程越多,资源占用越高。
46.由此可见,如何在大规模集群中,减少请求所需时间,提高用户体验是本领域技术人员亟待解决的问题。
47.本技术的核心是提供一种大规模集群请求处理方法、装置以及介质,以在大规模集群中,减少请求所需时间,提高用户体验。
48.为了使本技术领域的人员更好地理解本技术方案,下面结合附图和具体实施方式对本技术作进一步的详细说明。
49.图1为本技术实施例提供的一种大规模集群请求处理方法的流程图,如图1所示,该方法包括:
50.s10:拦截客户端的请求;
51.s11:根据请求确认缓存中是否存在对应数据;若存在,则进入步骤s12,若不存在,则进入步骤s13。
52.s12:将缓存中的对应数据发送至客户端;
53.s13:执行业务逻辑以获取对应数据,并将对应数据加载至缓存中,进入步骤s12。
54.首先需要说明的是,本技术公开的大规模集群请求处理方法的执行主体可以是大规模集群请求处理装置,其通常部署于服务器中,其接收客户端的访问并在对应的各节点中采集数据。本技术以服务器的角度进行详细说明。
55.图2为当前技术中的一种集群请求处理方法的流程图,如图2所示,当前技术中,用户在客户端例如浏览器通过http接口访问后台服务器,服务器的接口内部一般实时调用命令获取存储系统配置。在集群规模较小时,从所有节点获取信息耗时不大,当集群规模大于50节点时,获取所有节点信息耗时较长,界面体验差,即使内部采用多线程并发处理,优化效果有限,并且并发线程越多,资源占用越高。浏览器通过restapi请求的方式调用存储系统管理软件接口,存储系统管理软件执行业务逻辑,返回结果。这种机制简单,但存在如下问题:1、部分请求需到所有节点进行查询,集群规模大时耗时较长,导致界面反应慢,用户体验差。2、由于请求是放在队列中等待被处理,由于请求耗时较长不结束,导致队列中积压较多正在运行的线程,导致cpu使用率上升,同时队列长度也有限制,当超过阈值时,该请求可能会被丢弃。
56.而在本实施例中,通过对管理软件请求处理机制进行优化,本技术设计了预加载拦截器。预加载拦截器主要包括两部分,前置处理部分是拦截到客户端的http请求时,尝试先从缓存中获取数据,如果能获取到,就直接返回数据,如果获取不到,就执行具体的业务逻辑进行查询。后置处理部分是业务逻辑完成后,将数据加载至缓存中。
57.在具体实施中,数据的加载可以通过创建后台任务进行加载,以避免造成主线任务的延误。
58.此外,由于数据量的大小以及用户需求数据的类型不同,本实施例还设计了预加载策略注解,预加载策略注解标注在业务接口函数上,表示该接口启用预加载机制,本技术中包括preloadnextpage和preloadrelatedservice两种注解,preloadnextpage表示预加载下一页数据,preloadrelatedservice表示预加载相关业务数据。具体的,服务器会检查接口是否标注preloadnextpage,如果标注,则说明用户选择的预加载策略为连续数据加载策略,则将对应数据加载至缓存中为:将当前数据页的下一页数据加载至缓存中。如果没有标注,则服务器还需要检测接口是否标注preloadrelatedservice,如果标注,则预加载策略为相关数据加载策略,根据service和target,找到目标业务函数,新建后台任务执行业务函数获取结果,并更新至缓存。其中,一个接口可标注多个preloadrelatedservice注解,以提高数据查找的准确度。
59.需要说明的是,对于两种注解的检测顺序并没有先后之分,可以先检测接口是否标注preloadnextpage,也可以先检测接口是否标注preloadrelatedservice。本技术能够灵活指定策略,在请求处理完后预加载数据到缓存中,在后续请求时,先从缓存中查询。
60.本技术提出的请求处理方法,在请求处理完成后,从页码、业务相关性两个维度在后台任务中预加载请求,当下次请求时,先从缓存中查询,能解决一定场景下的接口耗时长
问题。并且设计拦截器和预加载的注解,在现有系统代码只需做很少量修改,只需新增1个拦截器,在需要预加载的函数上标注注解即可,侵入性小、移植性高。
61.本技术所提供的大规模集群请求处理方法,服务器拦截客户端的请求,并根据请求确认服务器的缓存中是否存在对应数据,若缓存中存在对应数据,则将缓存中的对应数据发送至客户端,若缓存中不存在对应数据,则执行业务逻辑以获取对应数据,并将对应数据加载至缓存中,进入将缓存中的对应数据发送至客户端的步骤。相对于当前技术中,服务器需要获取所有节点信息而导致耗时较长,采用本技术方案,将请求对应的数据存入缓存中,在服务器访问客户端时,直接从缓存中返回数据以实现耗时的减少,在缓存中不存在对应数据时则执行业务逻辑以获取对应数据,并将对应数据加载至缓存,以提高界面体验感,提高用户体验。
62.在具体实施中,由于各节点中对应数据的修改更新等状态,可能会导致缓存中的对应数据失效,不具备使用价值。因此,在缓存中存在对应数据的情况下,还包括:
63.判断缓存中的对应数据是否失效;
64.若失效,则进入根据预加载策略创建后台任务,以将对应数据加载至缓存中的步骤;
65.若未失效,则进入将缓存中的对应数据发送至客户端的步骤。
66.可以理解的是,本技术实施例提供的大规模集群请求处理方法,在缓存中存在对应数据的情况下,还需要判断该数据是否有效,如果失效则需要重新根据预加载策略获取数据并加载至缓存。实现对对应数据的更新,以保证用户请求的有效。
67.在具体实施中,为了保证缓存中有足够的空间存放对应数据,如果缓存中的对应数据失效,还可以包括:删除失效的对应数据。同时,还可以发送告警信息至客户端,以提示用户。
68.在上述实施例中,对于大规模集群请求处理方法进行了详细描述,本技术还提供大规模集群请求处理装置对应的实施例。需要说明的是,本技术从两个角度对装置部分的实施例进行描述,一种是基于功能模块的角度,另一种是基于硬件的角度。
69.图3为本技术实施例提供的一种大规模集群请求处理装置的结构图,如图3所示,该装置包括:
70.拦截模块10,用于拦截客户端的请求;
71.确认模块11,用于根据请求确认缓存中是否存在对应数据;
72.发送模块12,用于若缓存中存在对应数据,则将缓存中的对应数据发送至客户端;
73.获取模块13,用于若缓存中不存在对应数据,则执行业务逻辑以获取对应数据;
74.加载模块14,用于将对应数据加载至缓存中。
75.需要说明的是,图3中示出的结构并不构成对大规模集群请求处理装置的限定,在其他实施例中,优选的,加载模块包括第一创建模块,用于根据预加载策略创建后台任务,以将对应数据加载至缓存中。
76.优选的,第一创建模块包括第二加载模块,用于将当前数据页的下一页数据加载至缓存中。
77.优选的,第一创建模块包括第三加载模块,用于调用对应的业务函数获取请求的相关数据,并加载至缓存中。
78.优选的,还包括:处理模块,用于判断缓存中的对应数据是否失效;若失效,则进入根据预加载策略创建后台任务,以将对应数据加载至缓存中的步骤;若未失效,则进入将缓存中的对应数据发送至客户端的步骤。
79.优选的,还包括:删除模块,用于删除失效的对应数据。
80.优选的,还包括:告警模块,用于发送告警信息至客户端。
81.而在本实施例中,通过对管理软件请求处理机制进行优化,本技术设计了预加载拦截器。预加载拦截器主要包括两部分,前置处理部分是拦截到客户端的http请求时,尝试先从缓存中获取数据,如果能获取到,就直接返回数据,如果获取不到,就执行具体的业务逻辑进行查询。后置处理部分是业务逻辑完成后,将数据加载至缓存中。
82.在具体实施中,数据的加载可以通过创建后台任务进行加载,以避免造成主线任务的延误。
83.此外,由于数据量的大小以及用户需求数据的类型不同,本实施例还设计了预加载策略注解,预加载策略注解标注在业务接口函数上,表示该接口启用预加载机制,本技术中包括preloadnextpage和preloadrelatedservice两种注解,preloadnextpage表示预加载下一页数据,preloadrelatedservice表示预加载相关业务数据。具体的,服务器会检查接口是否标注preloadnextpage,如果标注,则说明用户选择的预加载策略为连续数据加载策略,则将对应数据加载至缓存中为:将当前数据页的下一页数据加载至缓存中。如果没有标注,则服务器还需要检测接口是否标注preloadrelatedservice,如果标注,则预加载策略为相关数据加载策略,根据service和target,找到目标业务函数,新建后台任务执行业务函数获取结果,并更新至缓存。其中,一个接口可标注多个preloadrelatedservice注解,以提高数据查找的准确度。
84.需要说明的是,对于两种注解的检测顺序并没有先后之分,可以先检测接口是否标注preloadnextpage,也可以先检测接口是否标注preloadrelatedservice。本身亲能够灵活指定策略,在请求处理完后预加载数据到缓存中,在后续请求时,先从缓存中查询。
85.本技术所提供的大规模集群请求处理装置,服务器拦截客户端的请求,并根据请求确认服务器的缓存中是否存在对应数据,若缓存中存在对应数据,则将缓存中的对应数据发送至客户端,若缓存中不存在对应数据,则执行业务逻辑以获取对应数据,并将对应数据加载至缓存中,进入将缓存中的对应数据发送至客户端的步骤。相对于当前技术中,服务器需要获取所有节点信息而导致耗时较长,采用本技术方案,将请求对应的数据存入缓存中,在服务器访问客户端时,直接从缓存中返回数据以实现耗时的减少,在缓存中不存在对应数据时则执行业务逻辑以获取对应数据,并将对应数据加载至缓存,以提高界面体验感,提高用户体验。
86.图4为本技术实施例提供的另一种大规模集群请求处理装置的结构图,如图4所示,该装置包括:存储器20,用于存储计算机程序;
87.处理器21,用于执行计算机程序时实现如上述实施例所述的大规模集群请求处理方法的步骤。
88.本实施例提供的大规模集群请求处理装置可以包括但不限于智能手机、平板电脑、笔记本电脑或台式电脑等。
89.其中,处理器21可以包括一个或多个处理核心,比如4核心处理器、8核心处理器
等。处理器21可以采用数字信号处理器(digital signal processor,dsp)、现场可编程门阵列(field-programmable gate array,fpga)、可编程逻辑阵列(programmable logic array,pla)中的至少一种硬件形式来实现。处理器21也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称中央处理器(central processing unit,cpu);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器21可以集成有图像处理器(graphics processing unit,gpu),gpu用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器21还可以包括人工智能(artificial intelligence,ai)处理器,该ai处理器用于处理有关机器学习的计算操作。
90.存储器20可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器20还可以包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。本实施例中,存储器20至少用于存储以下计算机程序201,其中,该计算机程序被处理器21加载并执行之后,能够实现前述任一实施例公开的大规模集群请求处理方法的相关步骤。另外,存储器20所存储的资源还可以包括操作系统202和数据203等,存储方式可以是短暂存储或者永久存储。其中,操作系统202可以包括windows、unix、linux等。数据203可以包括但不限于对应数据等。
91.在一些实施例中,大规模集群请求处理装置还可以包括有显示屏22、输入输出接口23、通信接口24、电源25以及通信总线26。
92.本领域技术人员可以理解,图4中示出的结构并不构成对大规模集群请求处理装置的限定,可以包括比图示更多或更少的组件。
93.本技术实施例提供的大规模集群请求处理装置,包括存储器和处理器,处理器在执行存储器存储的程序时,能够实现如下方法:拦截客户端的请求;根据请求确认缓存中是否存在对应数据;若缓存中存在对应数据,则将缓存中的对应数据发送至客户端;若缓存中不存在对应数据,则执行业务逻辑以获取对应数据,并将对应数据加载至缓存中,进入将缓存中的对应数据发送至客户端的步骤。
94.本技术所提供的大规模集群请求处理装置,服务器拦截客户端的请求,并根据请求确认服务器的缓存中是否存在对应数据,若缓存中存在对应数据,则将缓存中的对应数据发送至客户端,若缓存中不存在对应数据,则执行业务逻辑以获取对应数据,并将对应数据加载至缓存中,进入将缓存中的对应数据发送至客户端的步骤。相对于当前技术中,服务器需要获取所有节点信息而导致耗时较长,采用本技术方案,将请求对应的数据存入缓存中,在服务器访问客户端时,直接从缓存中返回数据以实现耗时的减少,在缓存中不存在对应数据时则执行业务逻辑以获取对应数据,并将对应数据加载至缓存,以提高界面体验感,提高用户体验。
95.最后,本技术还提供一种计算机可读存储介质对应的实施例。计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述方法实施例中记载的步骤。
96.可以理解的是,如果上述实施例中的方法以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以
以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(randomaccess memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
97.本技术所提供的计算机可读存储介质,服务器拦截客户端的请求,并根据请求确认服务器的缓存中是否存在对应数据,若缓存中存在对应数据,则将缓存中的对应数据发送至客户端,若缓存中不存在对应数据,则执行业务逻辑以获取对应数据,并将对应数据加载至缓存中,进入将缓存中的对应数据发送至客户端的步骤。相对于当前技术中,服务器需要获取所有节点信息而导致耗时较长,采用本技术方案,将请求对应的数据存入缓存中,在服务器访问客户端时,直接从缓存中返回数据以实现耗时的减少,在缓存中不存在对应数据时则执行业务逻辑以获取对应数据,并将对应数据加载至缓存,以提高界面体验感,提高用户体验。
98.以上对本技术所提供的大规模集群请求处理方法、装置以及介质进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本技术原理的前提下,还可以对本技术进行若干改进和修饰,这些改进和修饰也落入本技术权利要求的保护范围内。
99.还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1