掌桥专利:专业的专利平台
掌桥专利
首页

数据访问请求的处理方法、装置、计算机设备及介质

文献发布时间:2023-06-19 12:11:54


数据访问请求的处理方法、装置、计算机设备及介质

技术领域

本发明涉及数据处理领域,尤其涉及一种数据访问请求的处理方法、装置、计算机设备及介质。

背景技术

随着计算机技术的快速发展,越来越多的事务通过网络进行处理,访问互联网络来获取信息,成为日常生活中的一种很常见的事情,通过网络进行数据访问,主要是通过客户端访问指定域名或者IP地址,进而从指定域名或者IP地址对应的存储服务器中获取对应的数据资源,来获取相应的信息。因而,随着访问数据的急速增加,对于进行网络数据访问的服务器性能等,要求也越来越高,现有的方式是通过增加一些服务器来并发使用,以缓解服务器的压力,但现有方式通常是直接进行随机分发,如何合理地进行数据访问请求的分发以使数据访问请求可以最快被响应,也即,如何提高数据访问请求的响应速度,成为一个亟待解决的问题。

发明内容

本发明实施例提供一种数据访问请求的处理方法、装置、计算机设备和存储介质,以提高数据访问请求的响应速度。

为了解决上述技术问题,本申请实施例提供一种数据访问请求的处理方法,包括:

在接收到客户端发送的数据访问请求时,通过集群通信的方式,对集群中每个节点进行活性探测,得到节点状态;

将所述节点状态为激活的节点,作为有效节点;

针对每个所述有效节点,对所述有效节点进行健康检查,得到检查结果;

获取所述客户端的实际物理地址,并读取每个所述有效节点的实际物理地址,基于所述客户端的实际物理地址与所述有效节点的实际物理地址,确定客户端与每个所述有效节点的物理距离;

基于每个所述有效节点的检查结果和每个所述物理距离,确定目标节点;

将所述数据访问请求分发到所述目标节点进行数据处理。

可选地,所述通过集群通信的方式,对集群中每个节点进行活性探测,得到节点状态包括:

基于集群通信,向每个所述节点发送心跳包检测指令;

根据每个所述节点针对所述心跳包检测指令的反馈结果,确定每个所述节点对应的节点状态。

可选地,所述获取所述客户端的实际物理地址包括:

获取数据访问请求中携带的客户端IP地址;

基于所述IP地址,确定所述客户端的实际物理地址。

可选地,所述健康检查的类别包括节点吞吐量,数据包数量,请求数响应速度,延时和往返时延RTT。

可选地,所述基于每个所述有效节点的检查结果和每个所述物理距离,确定目标节点包括:

针对每个所述物理距离,对所述物理距离进行归一化处理,将得到的结果作为所述物理距离对应有效节点的距离权重;

基于每个所述有效节点的检查结果,得到所述有效节点的健康评分;

针对每个所述有效节点,根据所述距离权重和所述健康评分,采用预设方式,计算所述有效节点的匹配评分;

获取匹配评分的分值最大的有效节点,作为所述目标节点。

为了解决上述技术问题,本申请实施例还提供一种数据访问请求的处理装置,包括:

状态探测模块,用于在接收到客户端发送的数据访问请求时,通过集群通信的方式,对集群中每个节点进行活性探测,得到节点状态;

节点获取模块,用于将所述节点状态为激活的节点,作为有效节点;

健康检查模块,用于针对每个所述有效节点,对所述有效节点进行健康检查,得到检查结果;

距离确定模块,用于获取所述客户端的实际物理地址,并读取每个所述有效节点的实际物理地址,基于所述客户端的实际物理地址与所述有效节点的实际物理地址,确定客户端与每个所述有效节点的物理距离;

目标节点确定模块,用于基于每个所述有效节点的检查结果和每个所述物理距离,确定目标节点;

数据分发模块,用于将所述数据访问请求分发到所述目标节点进行数据处理。

可选地,所述状态探测模块包括:

心跳检测单元,用于基于集群通信,向每个所述节点发送心跳包检测指令;

状态确定单元,用于根据每个所述节点针对所述心跳包检测指令的反馈结果,确定每个所述节点对应的节点状态。

可选地,所述距离确定模块包括:

IP地址获取单元,用于获取数据访问请求中携带的客户端IP地址;

物理地址确定单元,用于基于所述IP地址,确定所述客户端的实际物理地址。

可选地,所述目标节点确定模块包括:

距离权重计算单元,用于针对每个所述物理距离,对所述物理距离进行归一化处理,将得到的结果作为所述物理距离对应有效节点的距离权重;

健康评分单元用于,基于每个所述有效节点的检查结果,得到所述有效节点的健康评分;

匹配评分单元,用于针对每个所述有效节点,根据所述距离权重和所述健康评分,采用预设方式,计算所述有效节点的匹配评分;

目标节点确定单元,用于获取匹配评分的分值最大的有效节点,作为所述目标节点。

为了解决上述技术问题,本申请实施例还提供一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述数据访问请求的处理方法的步骤。

为了解决上述技术问题,本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述数据访问请求的处理方法的步骤。

本发明实施例提供的数据访问请求的处理方法、装置、计算机设备及存储介质,通过在接收到客户端发送的数据访问请求时,通过集群通信的方式,对集群中每个节点进行活性探测,得到节点状态,将节点状态为激活的节点,作为有效节点,再针对每个有效节点,对有效节点进行健康检查,得到检查结果,同时,获取客户端的实际物理地址,并读取每个有效节点的实际物理地址,基于客户端的实际物理地址与有效节点的实际物理地址,确定客户端与每个有效节点的物理距离,基于每个有效节点的检查结果和每个物理距离,确定目标节点,将数据访问请求分发到目标节点进行数据处理,实现通过多个维度快速确定与该数据访问请求最优的节点服务器,有利于提高数据访问请求的响应效率。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1是本申请的应用环境示意图;

图2是本申请的数据访问请求的处理方法的一个实施例的流程图;

图3是根据本申请的数据访问请求的处理装置的一个实施例的结构示意图;

图4是根据本申请的计算机设备的一个实施例的结构示意图。

具体实施方式

除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同;本文中在申请的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本申请;本申请的说明书和权利要求书及上述附图说明中的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。本申请的说明书和权利要求书或上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。

在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

请参阅图1,图1为本实施例数据数据访问请求的处理的应用环境示意图,图1(a)中,全局负载均衡设备部署在数据中心外,支持单机或冗余,图1(b)中全局负载均衡设备部署在每个数据中心内(在每个中心支持单机或冗余),构成一个集群统一对外提供DNS服务。

所有全局负载均衡会自动同步配置和性能数据。当任何一个数据中心的服务器均衡宕机,对整个DNS服务器没有影响。

请参阅图2,图2示出本发明实施例提供的一种数据访问请求的处理方法,详述如下:

S201:在接收到客户端发送的数据访问请求时,通过集群通信的方式,对集群中每个节点进行活性探测,得到节点状态。

具体地,在接收到客户端发送的数据访问请求时,对集群中的每个节点进行活性探测,以便确定节点状态。

需要说明的是,在集群中存在多个节点(节点服务器),由于节点自身的一些管控策略和性能等因素,会进行动态的上线下线,因而,为确保后续数据访问请求分发和处理的有效,需要先对节点的状态进行判断。

其中,节点状态包括激活、宕机和未激活。

S202:将节点状态为激活的节点,作为有效节点。

S203:针对每个有效节点,对有效节点进行健康检查,得到检查结果。

其中,健康检查是用于来判断节点服务器(ECS实例)的业务可用性。健康检查机制提高了前端业务整体可用性,避免了后端ECS异常对总体服务的影响,进行健康检查现有的一些主要方式包括七层检查、四层检查和负载均衡等。

可选地,健康检查的类别包括节点吞吐量,数据包数量,请求数响应速度,延时和往返时延RTT。

S204:获取客户端的实际物理地址,并读取每个有效节点的实际物理地址,基于客户端的实际物理地址与有效节点的实际物理地址,确定客户端与每个有效节点的物理距离。

应理解,集群中的节点是分布式的,也即不同节点可以具有相同的物理地址,也可以具有不同的物理地址(依据实际情况而定,通常具有不同的物理地址,例如A省一个节点,B省一个节点),数据访问请求的客户端IP地址对应的物理地址与节点的物理地址越近,信息传播(数据发送和接收)所耗费的时间将越短。

S205:基于每个有效节点的检查结果和每个物理距离,确定目标节点。

具体地,根据每个有效节点的检查结果和物理距离,计算该有效节点与该数据访问请求的匹配程度,进而根据每个有效节点的匹配程度,确定目标节点。具体实现过程可参考后续实施例的描述,为避免重复,此处不再赘述。

S206:将数据访问请求分发到目标节点进行数据处理。

本实施例中,通过在接收到客户端发送的数据访问请求时,通过集群通信的方式,对集群中每个节点进行活性探测,得到节点状态,将节点状态为激活的节点,作为有效节点,再针对每个有效节点,对有效节点进行健康检查,得到检查结果,同时,获取客户端的实际物理地址,并读取每个有效节点的实际物理地址,基于客户端的实际物理地址与有效节点的实际物理地址,确定客户端与每个有效节点的物理距离,基于每个有效节点的检查结果和每个物理距离,确定目标节点,将数据访问请求分发到目标节点进行数据处理,实现通过多个维度快速确定与该数据访问请求最优的节点服务器,有利于提高数据访问请求的响应效率。

在一具体可选实施方式中,步骤S201中,通过集群通信的方式,对集群中每个节点进行活性探测,得到节点状态包括:

基于集群通信,向每个节点发送心跳包检测指令;

根据每个节点针对心跳包检测指令的反馈结果,确定每个节点对应的节点状态。

具体地,通过向每个节点发送心跳包检测指令,判断与该心跳包对应的节点的网络连接端口的链接状态是否正常,并在链接状态处于正常时,节点将根据心跳包检测指令,与服务端进行交互响应。

应理解,通过心跳监控能够及时发现异常,例如在一段时间内没有收到节点服务器对心跳包的反馈,则确认该节点的链接状态存在异常,此时,将该节点从有效节点的列表中移除,避免后续将数据访问请求分发到该节点,同时,及时将该异常情况显示在服务端的交互界面上,以便维护人员及时分析和处理对应的集群节点上出现的相关异常问题。

其中,心跳包就是在目标主机和服务器间定时通知对方自己状态的一个自己定义的命令字,按照一定的时间间隔发送,类似于心跳,所以叫做心跳包。心跳包用于监控SOCKET的可用性,确保服务端与目标主机之间交互的稳定性。

本实施例中,通过心跳检测的方式,判断节点的状态,确保后续是从有效节点中进行选取,避免无效节点参与后续选取运算,带来不必要的运算,有利于提高后续目标节点的选取效率。

在一具体可选实施方式中,步骤S204中,获取客户端的实际物理地址包括:

获取数据访问请求中携带的客户端IP地址;

基于IP地址,确定客户端的实际物理地址。

需要说明的是,在一些情况下,客户端会使用IP代理,本实施例中IP地址为客户端发送数据访问请求所使用的IP地址,即,既可以是客户端的真实IP地址,也可以是代理IP地址,若客户端使用的代理IP地址,则获取到的实际物理地址为代理IP地址的实际物理地址,后续计算该实际物理地址与有效节点的实际物理地址,得出的物理距离同样符合节点匹配的需求。

本实施例中,通过获取客户端的IP地址,进而获取该客户端网络对应的实际物理地址,有利于后续根据物理地址去进行节点的匹配。

在一具体可选实施方式中,步骤S205中,基于每个有效节点的检查结果和每个物理距离,确定目标节点包括:

针对每个物理距离,对物理距离进行归一化处理,将得到的结果作为物理距离对应有效节点的距离权重;

基于每个有效节点的检查结果,得到有效节点的健康评分;

针对每个有效节点,根据距离权重和健康评分,采用预设方式,计算有效节点的匹配评分;

获取匹配评分的分值最大的有效节点,作为目标节点。

其中,归一化(normalization)是一种无量纲处理手段,使物理系统数值的绝对值变成某种相对值关系。简化计算,缩小量值的有效办法,具体可以是将一些变化范围较大的数值,归一到一个区间。本实施例中,通过对物理距离进行归一化处理,将得到的结果作为有效节点的距离权重,从而实现将距离作为一个维度,评估数据访问请求与有效节点之间的匹配程度。

其中,预设方式具体可以是根据实际需求设定的公式等,此处不作具体限定。

本实施例中,通过采用物理距离归一化后的数值作为距离权重,结合健康评分来计算每个有效节点,对于每个不同的数据访问请求更具有针对性,匹配程度会更高,提高获取到目标节点的精准性,有利于提高数据访问响应的速度。

应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。

图3示出与上述实施例数据访问请求的处理方法一一对应的数据访问请求的处理装置的原理框图。如图3所示,该数据访问请求的处理装置包括状态探测模块31、节点获取模块32、健康检查模块33、距离确定模块34、目标节点确定模块35和数据分发模块36。各功能模块详细说明如下:

状态探测模块31,用于在接收到客户端发送的数据访问请求时,通过集群通信的方式,对集群中每个节点进行活性探测,得到节点状态;

节点获取模块32,用于将节点状态为激活的节点,作为有效节点;

健康检查模块33,用于针对每个有效节点,对有效节点进行健康检查,得到检查结果;

距离确定模块34,用于获取客户端的实际物理地址,并读取每个有效节点的实际物理地址,基于客户端的实际物理地址与有效节点的实际物理地址,确定客户端与每个有效节点的物理距离;

目标节点确定模块35,用于基于每个有效节点的检查结果和每个物理距离,确定目标节点;

数据分发模块36,用于将数据访问请求分发到目标节点进行数据处理。

可选地,状态探测模块31包括:

心跳检测单元,用于基于集群通信,向每个节点发送心跳包检测指令;

状态确定单元,用于根据每个节点针对心跳包检测指令的反馈结果,确定每个节点对应的节点状态。

可选地,距离确定模块34包括:

IP地址获取单元,用于获取数据访问请求中携带的客户端IP地址;

物理地址确定单元,用于基于IP地址,确定客户端的实际物理地址。

可选地,目标节点确定模块35包括:

距离权重计算单元,用于针对每个物理距离,对物理距离进行归一化处理,将得到的结果作为物理距离对应有效节点的距离权重;

健康评分单元用于,基于每个有效节点的检查结果,得到有效节点的健康评分;

匹配评分单元,用于针对每个有效节点,根据距离权重和健康评分,采用预设方式,计算有效节点的匹配评分;

目标节点确定单元,用于获取匹配评分的分值最大的有效节点,作为目标节点。

关于数据访问请求的处理装置的具体限定可以参见上文中对于数据访问请求的处理方法的限定,在此不再赘述。上述数据访问请求的处理装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

为解决上述技术问题,本申请实施例还提供计算机设备。具体请参阅图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、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本申请各个实施例所述的方法。

显然,以上所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例,附图中给出了本申请的较佳实施例,但并不限制本申请的专利范围。本申请可以以许多不同的形式来实现,相反地,提供这些实施例的目的是使对本申请的公开内容的理解更加透彻全面。尽管参照前述实施例对本申请进行了详细的说明,对于本领域的技术人员来而言,其依然可以对前述各具体实施方式所记载的技术方案进行修改,或者对其中部分技术特征进行等效替换。凡是利用本申请说明书及附图内容所做的等效结构,直接或间接运用在其他相关的技术领域,均同理在本申请专利保护范围之内。

相关技术
  • 数据访问请求的处理方法、装置、计算机设备及介质
  • 数据访问请求的处理方法、装置、计算机设备及介质
技术分类

06120113207702