数据访问请求的处理方法、装置、计算机设备及介质
文献发布时间:2023-06-19 12:10:19
技术领域
本发明涉及数据处理领域,尤其涉及一种数据访问请求的处理方法、装置、计算机设备及介质。
背景技术
随着计算机技术的快速发展,网络在日常生活中也成了不可或缺的一部分,企业单位通过网络发布各种信息,用户通过对这些信息进行访问,获取对自己有用的信息,针对信息发布者,随着用户访问流量的增大,服务器的负载压力也越来越大,当前,主要通过增加服务器,来进行数据的分流,但是,在访问数据的量较大的情况下,如何提高分流的准确性,以提高数据访问请求的处理效率,成为一个亟待解决的问题。
发明内容
本发明实施例提供一种数据访问请求的处理方法、装置、计算机设备和存储介质,以提高数据访问请求的处理效率。
为了解决上述技术问题,本申请实施例提供一种数据访问请求的处理方法,包括:
在接收到客户端发送的数据访问请求时,将集群中状态为激活的节点作为有效节点,对所述有效节点进行性能数据的采集;
基于采集到的性能数据,计算所述有效节点的性能分值;
基于每个所述有效节点的性能分值,确定目标节点;
将所述数据访问请求分发到所述目标节点进行数据处理。
可选地,所述性能数据包括中央处理器型号、内存型号、中央处理器当前使用率和内存当前使用率。
可选地,所述基于采集到的性能数据,计算所述有效节点的性能分值包括:
采用如下公式计算所述有效节点的性能分值S:
其中,I
可选地,所述基于每个所述有效节点的性能分值,确定目标节点包括:
若所述数据访问请求包含的数据量不超过预设阈值时,获取性能分值最高的有效节点,作为所述目标节点;
若所述数据访问请求包含的数据量超过预设阈值时,所述根据所述数据访问请求包含的数据量,动态确定目标节点数量M,并按照所述性能分值由高到低的顺序选取M个有效节点,作为所述目标节点,其中M为大于1的正整数。
可选地,在所述按照所述性能分值由高到低的顺序选取M个有效节点,作为所述目标节点之后,所述数据访问请求的处理方法还包括:
将所述数据访问请求中包含的数据进行切片处理,得到M个分片数据;
将每个所述分片数据分发给1个所述目标节点进行处理,以使每个所述目标节点并行处理1个所述分片数据。
为了解决上述技术问题,本申请实施例还提供一种数据访问请求的处理装置,包括:
节点状态确定模块,用于在接收到客户端发送的数据访问请求时,将集群中状态为激活的节点作为有效节点,对所述有效节点进行性能数据的采集;
性能分值计算模块,用于基于采集到的性能数据,计算所述有效节点的性能分值;
目标节点确定模块,用于基于每个所述有效节点的性能分值,确定目标节点;
数据分发处理模块,用于将所述数据访问请求分发到所述目标节点进行数据处理。
可选地,所述性能分值计算模块包括:
节点分值计算单元,用于采用如下公式计算所述有效节点的性能分值S:
其中,I
可选地,所述目标节点确定模块包括:
第一节点确定单元,用于若所述数据访问请求包含的数据量不超过预设阈值时,获取性能分值最高的有效节点,作为所述目标节点;
第二节点确定单元,用于若所述数据访问请求包含的数据量超过预设阈值时,所述根据所述数据访问请求包含的数据量,动态确定目标节点数量M,并按照所述性能分值由高到低的顺序选取M个有效节点,作为所述目标节点,其中M为大于1的正整数。
可选地,所述数据访问请求的处理装置还包括:
数据切片模块,用于将所述数据访问请求中包含的数据进行切片处理,得到M个分片数据;
并行处理模块,用于将每个所述分片数据分发给1个所述目标节点进行处理,以使每个所述目标节点并行处理1个所述分片数据。
为了解决上述技术问题,本申请实施例还提供一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述数据访问请求的处理方法的步骤。
为了解决上述技术问题,本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述数据访问请求的处理方法的步骤。
本发明实施例提供的数据访问请求的处理方法、装置、计算机设备及存储介质,在接收到客户端发送的数据访问请求时,将集群中状态为激活的节点作为有效节点,针对每个有效节点,对有效节点进行性能数据的采集,并基于采集到的性能数据,计算有效节点的性能分值,再基于每个有效节点的性能分值,确定目标节点,并将数据访问请求分发到目标节点进行数据处理,实现对数据访问请求进行选取快速分发响应,有利于提高数据访问请求的处理效率。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请的应用环境示意图;
图2是本申请的数据访问请求的处理方法的一个实施例的流程图;
图3是根据本申请的数据访问请求的处理装置的一个实施例的结构示意图;
图4是根据本申请的计算机设备的一个实施例的结构示意图。
具体实施方式
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同;本文中在申请的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本申请;本申请的说明书和权利要求书及上述附图说明中的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。本申请的说明书和权利要求书或上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1,图1为本实施例数据数据访问请求的处理的应用环境示意图,图1(a)中,全局负载均衡设备部署在数据中心外,支持单机或冗余,图1(b)中全局负载均衡设备部署在每个数据中心内(在每个中心支持单机或冗余),构成一个集群统一对外提供DNS服务。
所有全局负载均衡会自动同步配置和性能数据。当任何一个数据中心的服务器均衡宕机,对整个DNS服务器没有影响。
请参阅图2,图2示出本发明实施例提供的一种数据访问请求的处理方法,详述如下:
S201:在接收到客户端发送的数据访问请求时,将集群中状态为激活的节点作为有效节点,并对有效节点进行性能数据的采集。
具体地,在接收到客户端发送的数据访问请求时,对集群中的每个节点进行活性探测,以便确定节点状态。
需要说明的是,在集群中存在多个节点(节点服务器),由于节点自身的一些管控策略和性能等因素,会进行动态的上线下线,因而,为确保后续数据访问请求分发和处理的有效,需要先对节点的状态进行判断。
其中,节点状态包括激活、宕机和未激活。
S202:基于采集到的性能数据,计算有效节点的性能分值。
可选地,性能数据包括中央处理器型号、内存型号、中央处理器当前使用率和内存当前使用率。
具体地,不同节点服务器由于其配置不同,以及当前的运行状态不同,导致其数据处理能力也不同,为避免节点服务器超负载运行导致服务器故障或者数据处理过程中的异常,需要通过节点服务器的当前运行状态,来计算出节点服务器当前可用于进行数据处理的资源状态,也即,性能分值。
进一步地,基于采集到的性能数据,计算有效节点的性能分值包括:
采用如下公式计算有效节点的性能分值S:
其中,I
S203:基于每个有效节点的性能分值,确定目标节点。
具体目标节点的选取方式,可参考后续实施例的描述,为避免重复,此处不再赘述。
S204:将数据访问请求分发到目标节点进行数据处理。
本实施例中,在接收到客户端发送的数据访问请求时,通过集群通信的方式,对集群中每个节点进行活性探测,得到节点状态,将节点状态为激活的节点,作为有效节点,针对每个有效节点,对有效节点进行性能数据的采集,并基于采集到的性能数据,计算有效节点的性能分值,再基于每个有效节点的性能分值,确定目标节点,并将数据访问请求分发到目标节点进行数据处理,实现对数据访问请求进行选取快速分发响应,有利于提高数据访问请求的处理效率。
在一具体可选实施方式中,在在接收到客户端发送的数据访问请求时,将集群中状态为激活的节点作为有效节点之前,该方法还包括通过集群通信的方式,对集群中每个节点进行活性探测,得到节点状态,具体实施过程如下:
基于集群通信,向每个节点发送心跳包检测指令;
根据每个节点针对心跳包检测指令的反馈结果,确定每个节点对应的节点状态。
具体地,通过向每个节点发送心跳包检测指令,判断与该心跳包对应的节点的网络连接端口的链接状态是否正常,并在链接状态处于正常时,节点将根据心跳包检测指令,与服务端进行交互响应。
应理解,通过心跳监控能够及时发现异常,例如在一段时间内没有收到节点服务器对心跳包的反馈,则确认该节点的链接状态存在异常,此时,将该节点从有效节点的列表中移除,避免后续将数据访问请求分发到该节点,同时,及时将该异常情况显示在服务端的交互界面上,以便维护人员及时分析和处理对应的集群节点上出现的相关异常问题。
其中,心跳包就是在目标主机和服务器间定时通知对方自己状态的一个自己定义的命令字,按照一定的时间间隔发送,类似于心跳,所以叫做心跳包。心跳包用于监控SOCKET的可用性,确保服务端与目标主机之间交互的稳定性。
本实施例中,通过心跳检测的方式,快速判断每个节点的状态,筛选出有效节点,提升有效节点筛选的效率。
在一具体可选实施方式中,步骤S203中,基于每个有效节点的性能分值,确定目标节点包括:
若数据访问请求包含的数据量不超过预设阈值时,获取性能分值最高的有效节点,作为目标节点;
若数据访问请求包含的数据量超过预设阈值时,根据数据访问请求包含的数据量,动态确定目标节点数量M,并按照性能分值由高到低的顺序选取M个有效节点,作为目标节点,其中M为大于1的正整数。
具体地,动态确定目标节点数量可通过预设的条件来进行,预设的条件依据实际需求来设定,例如,根据超出预设阈值的数值与预设阈值的比例,来确定目标节点数量M。
在一具体可选实施方式中,在按照性能分值由高到低的顺序选取M个有效节点,作为目标节点之后,数据访问请求的处理方法还包括:
将数据访问请求中包含的数据进行切片处理,得到M个分片数据;
将每个分片数据分发给1个目标节点进行处理,以使每个目标节点并行处理1个分片数据。
其中,分片的维度可根据实际需求来设定,例如可设置为地理区域、行政区域和时间维度等,也可以采用顺序分片、取模分片等分片策略,此处不做具体限定。
本实施例中,通过对数据分片的方式,实现并发处理,有利于提高访问请求的处理效率。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
图3示出与上述实施例数据访问请求的处理方法一一对应的数据访问请求的处理装置的原理框图。如图3所示,该数据访问请求的处理装置包括节点状态确定模块31、性能分值计算模块32、目标节点确定模块33和数据分发处理模块34。各功能模块详细说明如下:
节点状态确定模块31,用于在接收到客户端发送的数据访问请求时,将集群中状态为激活的节点作为有效节点,并对有效节点进行性能数据的采集;
性能分值计算模块32,用于基于采集到的性能数据,计算有效节点的性能分值;
目标节点确定模块33,用于基于每个有效节点的性能分值,确定目标节点;
数据分发处理模块34,用于将数据访问请求分发到目标节点进行数据处理。
可选地,性能分值计算模块32包括:
节点分值计算单元,用于采用如下公式计算有效节点的性能分值S:
其中,I
可选地,目标节点确定模块33包括:
第一节点确定单元,用于若数据访问请求包含的数据量不超过预设阈值时,获取性能分值最高的有效节点,作为目标节点;
第二节点确定单元,用于若数据访问请求包含的数据量超过预设阈值时,根据数据访问请求包含的数据量,动态确定目标节点数量M,并按照性能分值由高到低的顺序选取M个有效节点,作为目标节点,其中M为大于1的正整数。
可选地,数据访问请求的处理装置还包括:
数据切片模块,用于将数据访问请求中包含的数据进行切片处理,得到M个分片数据;
并行处理模块,用于将每个分片数据分发给1个目标节点进行处理,以使每个目标节点并行处理1个分片数据。
关于数据访问请求的处理装置的具体限定可以参见上文中对于数据访问请求的处理方法的限定,在此不再赘述。上述数据访问请求的处理装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
为解决上述技术问题,本申请实施例还提供计算机设备。具体请参阅图4,图4为本实施例计算机设备基本结构框图。
所述计算机设备4包括通过系统总线相互通信连接存储器41、处理器42、网络接口43。需要指出的是,图中仅示出了具有组件连接存储器41、处理器42、网络接口43的计算机设备4,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。其中,本技术领域技术人员可以理解,这里的计算机设备是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程门阵列(Field-Programmable Gate Array,FPGA)、数字处理器(Digital Signal Processor,DSP)、嵌入式设备等。
所述计算机设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述计算机设备可以与用户通过键盘、鼠标、遥控器、触摸板或声控设备等方式进行人机交互。
所述存储器41至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或D界面显示存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,所述存储器41可以是所述计算机设备4的内部存储单元,例如该计算机设备4的硬盘或内存。在另一些实施例中,所述存储器41也可以是所述计算机设备4的外部存储设备,例如该计算机设备4上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。当然,所述存储器41还可以既包括所述计算机设备4的内部存储单元也包括其外部存储设备。本实施例中,所述存储器41通常用于存储安装于所述计算机设备4的操作系统和各类应用软件,例如电子文件的控制的程序代码等。此外,所述存储器41还可以用于暂时地存储已经输出或者将要输出的各类数据。
所述处理器42在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器42通常用于控制所述计算机设备4的总体操作。本实施例中,所述处理器42用于运行所述存储器41中存储的程序代码或者处理数据,例如运行数据访问的程序代码。
所述网络接口43可包括无线网络接口或有线网络接口,该网络接口43通常用于在所述计算机设备4与其他电子设备之间建立通信连接。
本申请还提供了另一种实施方式,即提供一种计算机可读存储介质,所述计算机可读存储介质存储有数据访问程序,所述数据访问程序可被至少一个处理器执行,以使所述至少一个处理器执行如上述的数据访问请求的处理方法的步骤。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本申请各个实施例所述的方法。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本申请各个实施例所述的方法。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本申请各个实施例所述的方法。
显然,以上所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例,附图中给出了本申请的较佳实施例,但并不限制本申请的专利范围。本申请可以以许多不同的形式来实现,相反地,提供这些实施例的目的是使对本申请的公开内容的理解更加透彻全面。尽管参照前述实施例对本申请进行了详细的说明,对于本领域的技术人员来而言,其依然可以对前述各具体实施方式所记载的技术方案进行修改,或者对其中部分技术特征进行等效替换。凡是利用本申请说明书及附图内容所做的等效结构,直接或间接运用在其他相关的技术领域,均同理在本申请专利保护范围之内。
- 数据访问请求的处理方法、装置、计算机设备及介质
- 数据访问请求的处理方法、装置、计算机设备及介质