一种数据处理方法及系统、客户端及服务器与流程

文档序号:13577537阅读:280来源:国知局
一种数据处理方法及系统、客户端及服务器与流程

本申请涉及信息处理技术领域,特别涉及一种数据处理方法及系统、客户端及服务器。



背景技术:

在客户端和服务器组成的通信系统中,客户端或者安装在客户端上的应用程序往往需要向服务器发出写请求和读请求,写请求往往需要改变服务器的数据状态,例如增加、删除、修改服务器数据状态等操作,读请求往往不需要改变服务器的数据状态,服务器在接收写请求或者读请求后,完成处理并将处理结果返回至客户端。

对于需要多个服务器并行工作的通信系统,如分布式系统,往往对高一致性环境的需求较高。为了保持通信系统中多个服务器保持数据状态的高一致性,目前,可以采用帕克索斯(paxos)算法、raft算法、zookeeper的zab协议算法等实现。例如,所述paxos算法可以从n个服务器中选取一个主服务器,并将其他服务器作为从属服务器。主服务器可以处理写请求和读请求,在处理写请求时,所述主服务器还发送数据状态改变日志给从属服务器,如果有n/2个从属服务器成功接受数据状态改变,则主服务器可以确定写请求处理成功,返回请求结果给客户端。还没有成功接收数据状态改变日志的从属服务器可以在后台异步更新数据状态,不影响前端的写请求响应。主服务器和从属服务器之间设置有心跳检测,如果主服务器出现异常,从属服务器发现心跳超时后会重新发起paxos选举选择新的主服务器。

现有技术中,客户端发送读请求,主服务器在接收到所述读请求之后,可以选择从属服务器来处理所述读请求。所述从属服务器在处理完成所述读请求后,将处理结果返回至客户端。因此,主服务器可以用较小的处理代价利用从属服务器的处理能力。但是,上述读请求的处理过程中,需要主服务器转发读请求给从属服务器,整体处理能力受限于主服务器的连接上限和转发能力。另外,在处理过程中,现有的处理方式会增加一次从主服务器到从属服务器的rpc通信,增加读请求的处理延迟,降低读请求的处理效率。



技术实现要素:

本申请实施例的目的在于提供一种数据处理方法及系统、客户端及服务器,可以降低读请求过程中的处理延迟,提高读请求的处理效率。

本申请实施例提供一种数据处理方法及系统、客户端及服务器是这样实现的:

一种数据处理方法,所述方法包括:

客户端向处理服务器发送读请求;

所述处理服务器接收所述读请求,当所述处理服务器确定与主服务器的数据状态一致时,处理所述读请求;其中,所述处理服务器从属于所述主服务器。

一种数据处理方法,所述方法包括:

接收客户端的读请求;

当确定与主服务器的数据状态一致时,处理所述读请求。

一种数据处理方法,所述方法包括:

向处理服务器发送读请求;

接收所述处理服务器对所述读请求的处理结果。

一种服务器,所述服务器包括:

接收单元,用于接收客户端的读请求;

处理单元,用于当确定与主服务器的数据状态一致时,处理所述读请求。

一种客户端,所述客户端包括:

读请求发送单元,用于向处理服务器发送读请求;

处理结果接收单元,用于接收所述处理服务器对所述读请求的处理结果。

一种数据处理系统,所述系统包括:

至少一个处理服务器,用于接收客户端的读请求;以及,用于当确定与主服务器的数据状态一致时,处理所述读请求。

本申请提供的数据处理方法及系统、客户端及服务器,客户端可以直接向从属服务器发送读请求,从属服务器在接受所述读请求后,当确定与主服务器的数据状态一致时,所述从属服务器可以直接处理读请求。与现有技术相比,客户端可以不必向主服务器发送读请求,再由主服务器分配给从属服务器处理。本申请提供的读请求处理方法可以减轻主服务器的读请求处理负担,利用从属服务器的空闲时间,同时,不需要主服务器在读请求的关键处理过程中工作,因此不会增加处理延迟,提高高一致性通信系统的读请求处理效率。另外,本实施例方法可以使得高一致性通信系统中多个从属服务器同时处理读请求,所述通信系统的最大处理能力可以被扩展至所有处理服务器的处理能力之和,扩展高一致性通信系统的读请求处理能力。

附图说明

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

图1是本申请提供的数据处理方法的一种实施例的方法流程示意图;

图2是本申请提供的判断处理服务器是否与主服务器绑定方法的一种实施例的流程图;

图3是本申请提供的读请求处理失败的处理方法的一种实施例的方法流程图;

图4是本申请提供的数据处理方法的一种应用场景的示意图;

图5是本申请提供的读请求处理方法的另一种实施例的方法流程图;

图6是本申请提供的判断处理服务器是否与主服务器绑定方法的一种实施例的流程图;

图7是本申请提供的服务器的一种实施例的模块结构示意图;

图8是本申请提供的处理单元的一种实施例的模块结构示意图;

图9是本申请提供的读请求处理方法的另一种实施例的方法流程图;

图10是本申请提供的读请求处理失败的处理方法的一种实施例的方法流程图;

图11是本申请提供的客户端的一种实施例的模块结构示意图;

图12是本申请提供的客户端的另一种实施例的模块结构示意图。

具体实施方式

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

下面结合附图对本申请所述的数据处理方法进行详细的说明。图1是本申请提供的数据处理方法的一种实施例的方法流程示意图。虽然本申请提供了如下述实施例或附图所示的方法操作步骤,但基于常规或者无需创造性的劳动在所述方法中可以包括更多或者更少的操作步骤。在逻辑性上不存在必要因果关系的步骤中,这些步骤的执行顺序不限于本申请实施例提供的执行顺序。所述方法在实际中的数据处理中,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境,甚至是分布式处理环境)。

具体的本申请提供的数据处理方法的一种实施例如图1所示,所述方法可以包括:

s1:客户端向处理服务器发送读请求。

在本实施例中,所述客户端可以是能够基于网络协议接入通信网络的终端设备或者运行于所述终端设备上的应用软件,例如移动智能电话、计算机、支付宝客户端等。所述客户端可以检测到来自应用上层的操作,基于所述操作可以触发生成读请求或者写请求,此后,所述客户端可以将所述读请求发送至处理服务器或者主服务器,将所述写请求发送至主服务器。所述处理服务器、主服务器包括具有数据信息处理功能的硬件设备和驱动该硬件设备工作所需必要的软件,其可以对接收到的写请求或者读请求进行分析、处理,并将相应的请求处理结果反馈至客户端。其中,所述处理服务器可以处理读请求,所述主服务器可以处理写请求和读请求。所述处理服务器、主服务器可以提供预定端口,通过该预定端口可以接收客户端的请求。例如,所述处理服务器、主服务器可以基于http、tcp/ip或ftp等网络协议以及网络通信模块与客户端进行网络数据交互。

在本实施例中,所述数据处理方法可以应用于主服务器和处理服务器组成的高一致性通信系统中,其中,所述处理服务器从属于所述主服务器,且所述主服务器可以通过paxos等算法选举得到。由上述可知,所述主服务器可以处理客户端发送的读请求和写请求,其中,所述写请求可以改变所述主服务器的数据状态,所述主服务器在处理完成所述写请求之后,可以将数据状态改变日志同步至所述处理服务器,当所述主服务器确定系统完成同步后,将处理结果返回至客户端。例如,在包含n个处理服务器的系统中,当至少n/2个处理服务器成功接收所述数据状态改变日志时,可以确定该通信系统同步成功,此时,所述主服务器可以将处理结果返回至客户端。需要说明的是,所述高一致性通信系统可以包含一台或者多台主服务器,当包含多台主服务器时,主服务器间可以通过内部通信保持数据状态的一致性。

处理服务器作为主服务器的从属服务器,一般不处理写请求,但是,所述处理服务器可以获取主服务器的数据状态改变日志,因此可以和主服务器保持数据状态一致。当所述处理服务器与所述主服务器保持数据状态一致时,所述处理服务器可以处理读请求。

在本申请的一个实施例中,所述处理服务器可以包括客户端从提供的服务器集中选取的处理服务器。所述服务器集可以用于存储高一致性通信系统中处理服务器的名称以及相应的地址信息,所述地址信息可以包括所述从属服务器的ip地址或者访问端口。客户端可以获取所述服务器集,通过所述服务器集中的处理服务器的地址信息,客户端可以从所述服务器集中选取处理服务器,并向选取的处理服务器发送读请求。例如,在基于tcp/ip协议的通信系统中,所述客户端可以获取从所述服务器集中选取的处理服务器端的ip地址和端口,通过创建套接字(socket)对象来初始化到所述处理服务器端的tcp连接。基于所述创建的tcp连接,客户端可以向所述处理服务器发送读请求。

本实施例中,所述客户端可以向处理服务器发送读请求,与现有技术相比,客户端可以不必向主服务器发送读请求,再由主服务器分配给处理服务器处理。可以利用所述处理服务器处理所述读请求,减轻主服务器的读请求的处理压力。

s2:所述处理服务器接收所述读请求,当所述处理服务器确定与主服务器的数据状态一致时,处理所述读请求;其中,所述处理服务器从属于所述主服务器。

一般地,在高一致性通信系统中,当所述处理服务器从属于所述主服务器时,需要所述主服务器和所述处理服务器的数据状态保持一致。但是,当所述处理服务器出现异常或者系统出现延迟时,所述处理服务器往往不能与所述主服务器保持数据状态一致。因此,所述处理服务器在接收所述客户端的读请求之后,可以确认与主服务器的数据状态是否一致。当所述处理服务器确定与主服务器的数据状态一致时,可以确定所述处理服务器与所述主服务器成功保持实时同步状态,此时所述处理服务器可以处理所述读请求。需要说明的是,本实施例中的数据状态可以包括服务器中的数据库、数据文件系统等数据存储单元的数据逻辑状态,所述处理服务器与所述主服务器的数据状态一致可以包括:当相同的数据输入至所述处理服务器和所述主服务器后,可以获取相同的数据处理结果。当然,所述处理服务器与所述主服务器中的数据存储形式可以不完全相同,例如,所述主服务器可以为数据库存储形式,而所述处理服务器可以为文件系统存储形式,若两者的数据逻辑状态一致,则可以确定所述处理服务器与所述主服务器的数据状态一致。

在本申请的一个实施例中,所述处理服务器确定与主服务器的数据状态一致可以包括:

ss1:当所述处理服务器确定与主服务器处于绑定状态时,所述处理服务器与所述主服务器的数据状态一致。

当所述处理服务器与所述主服务器处于绑定状态时,可以确定所述处理服务器与主服务器的数据状态是一致的。在所述处理服务器与所述主服务器绑定期间,所述处理服务器可以处理客户端发送的读请求,并返回处理结果。具体地,本实施例中提供了一种如何判断所述处理服务器是否与主服务器处于绑定状态的方法,图2是本申请提供的判断处理服务器是否与主服务器绑定的一种实施例的方法流程图,如图2所示,所述判断所述处理服务器是否与主服务器处于绑定状态可以包括:

s21:获取所述处理服务器最近一次接收到答复消息的时刻,所述答复消息包括所述处理服务器与所述主服务器绑定成功的消息。

在本实施例所述的高一致性通信系统中,所述处理服务器可以定期向所述主服务器发送同步绑定请求,所述主服务器在接收到所述处理服务器发送的同步绑定请求后,可以判断所述处理服务器是否满足同步绑定要求,当所述处理服务器满足同步绑定要求时,所述主服务器可以发送答复消息,所述答复消息可以包括所述处理服务器与所述主服务器绑定成功的消息。本实施例中,所述主服务器在至少满足下述条件时向所述处理服务器发送答复消息:

所述处理服务器的数据状态与主服务器的数据状态一致;

且所述处理服务器的响应速度满足预设的绑定要求。

所述主服务器在接收到所述处理服务器发送的同步绑定请求后,可以判断所述处理服务器的数据状态是否与主服务器的数据状态一致。如上所述,所述主服务器被设置为可以处理客户端的写请求,在完成所述写请求的处理之后,所述主服务器改变数据状态,处理服务器只有及时地与所述主服务器实现同步,才能够保证数据状态与所述主服务器的一致,如此,所述主服务器才有可能允许所述处理服务器与其绑定。且,所述主服务器还需要确定所述处理服务器的的响应速度满足预设的绑定要求,具体地,例如,所述主服务器可以测试所述处理服务器当前的响应速度是否大于等于预设响应速度。一般地,所述主服务器与所述处理服务器的绑定时间比较短暂,如果所述处理服务器的响应速度较慢,可能会影响所述主服务器的综合处理效率。例如,所述主服务器在读请求处理能力和写请求处理能力的响应延迟之间做出权衡之后,可以同时与n台处理服务器实现绑定,如果其中一台或者多台处理服务器的响应速度较慢,将会影响所述主服务器绑定处理服务器的数目,降低所述主服务器的处理效率。

下面通过一个具体的应用场景说明所述主服务器与所述处理服务器的绑定过程:处理服务器a向主服务器发送同步绑定请求,主服务器接收到所述同步绑定请求之后,判断所述处理服务器a是否满足绑定要求,若满足同步绑定要求,返回同步绑定成功的答复消息。主服务器返回同步绑定成功的答复消息,表示允许与所述处理服务器a在时间段t内保持同步绑定状态,并且,在与所述处理服务器a同步绑定期间,主服务器不能发送写请求的处理结果,在主服务器与处理服务器a完成绑定或者绑定超时时,主服务器才可以返回写请求的处理结果。所述处理服务器a在接收到与主服务器同步绑定成功的答复消息后,可以确定在t-t的时间段内与主服务器保持绑定,其中t表示处理服务器a发送同步绑定请求到接收到答复消息消耗的时间,在时间段t-t内,所述处理服务器a可以接收读请求并返回处理结果。当然,所述处理服务器a还可以在时间段t-t内再次发送同步绑定请求,若同步绑定成功,所述处理服务器a还可以继续与主服务器保持绑定。若所述处理服务器a在时间段t-t内未收到与主服务器同步绑定成功的答复消息,在时间段t-t结束后,所述处理服务器a将失去与主服务器的绑定关系,可以拒绝处理新的读请求。

s22:判断接收到所述答复消息的时刻距离基准时刻的时间间隔是否小于预设时间间隔,所述基准时刻为执行所述判断步骤的时刻;若小于所述预设时间间隔,则确定所述处理服务器与主服务器处于绑定状态。

在本实施例中,设置所述主服务器与所述处理服务器的绑定时间为t,所述预设时间间隔可以为t-t,其中t表示处理服务器发送同步绑定请求到接收到答复消息消耗的时间。如上所述,在时间段t-t内,所述处理服务器与主服务器绑定,可以处理读请求,并返回处理结果。在本实施例中,当判断接收到所述答复消息的时刻距离基准时刻的时间间隔为小于预设时间间隔时,所述基准时刻为执行所述判断步骤的时刻,可以确定所述处理服务器与主服务器处于绑定状态,此时所述处理服务器可以处理所述读请求。当然,后续地,所述处理服务器还可以将所述处理结果返回至所述客户端。

本实施例中,可以在所述处理服务器确定与所述主服务器的数据状态一致时,由所述处理服务器处理所述读请求。而现有技术中,客户端只可以向主服务器发送读请求,主服务器在确定其中一个从属服务器满足处理读请求要求时,可以授权所述从属服务器处理客户端发送的读请求。相对于现有技术,本实施例中,客户端可以直接将读请求发送给从属服务器处理,而不必向主服务器发送读请求,再由主服务器分配给从属服务器处理。因此,本实施例不仅可以减轻主服务器的读请求处理负担,还可以利用从属服务器的空闲时间,同时,不需要主服务器在读请求的关键处理过程中工作,因此不会增加处理延迟,提高高一致性通信系统的读请求处理效率。进一步地,在本申请的一个实施例中,在所述处理服务器确定与主服务器的数据状态一致之后,所述方法还可以包括:

s2s:将所述处理服务器标记为处理所述客户端读请求的优先处理服务器,以使客户端在所述服务器集中优先选取优先处理服务器。

在所述处理服务器确定与所述主服务器的数据状态一致之后,可以将选取的所述处理服务器标记为处理客户端读请求的优先处理服务器,以使客户端在所述服务器集中优先选取优先处理服务器。当相同的客户端在下一次发送读请求或者不同客户端发送读请求时,可以将优先选取服务器集中的优先处理服务器。一般地,客户端发送读请求的频率较高,相对于处理服务器绑定主服务器的时间,处理读请求所耗用的时间较短,因此,相同的客户端下一次向被标记为优先处理服务器的处理服务器发送读请求,处理成功的概率较高,提高读请求的处理效率。

在本申请的一个实施例中,还提供了一种客户端读请求失败的处理方法,图3是本申请提供的读请求处理失败的处理方法的一种实施例的方法流程图,如图3所示,所述方法还可以包括:

s31:当所述处理服务器确定与所述主服务器的数据状态不一致时,所述处理服务器拒绝处理所述客户端的读请求,并返回错误请求报告。

当所述处理服务器确定与所述主服务器的数据状态不一致时,所述处理服务器可以拒绝处理所述客户端的读请求,并返回错误请求报告,如nak错误报告等。

s32:所述客户端接收所述错误请求报告,统计所述错误请求报告的总个数。

s33:若所述总个数小于等于预设阈值,则所述客户端从所述服务器集中重新选取服务器处理所述读请求。

所述客户端在接收到所述处理服务器返回的错误请求报告后,可以统计所述错误请求报告的总个数。若统计得到接收错误请求报告的总个数小于等于预设阈值,则所述客户端可以从所述服务器集中重新选取处理服务器处理所述读请求。

在本申请的另一个实施例中,当所述客户端向多个处理服务器发送读请求,但是都未能成功处理时,所述客户端还可以选择由所述主服务器处理所述读请求,如图3所示,所述方法还可以包括:

s34:若所述总个数大于所述预设阈值,则所述客户端向主服务器发送所述读请求。

结合s33和s34,也就是当第二个处理服务器不能处理所述读请求时,可以继续将所述读请求发送给第三个处理服务器,直至有n个处理服务器都不能处理所述读请求,其中n为所述客户端发送所述读请求至处理服务器的总个数的预设阈值,所述客户端可以转向主服务器发送所述读请求。

本实施例提供的客户端读请求失败的处理方法,客户端可以在多个处理服务器均不能及时处理读请求的情况下,转向主服务器发送读请求,保证读请求的顺利完成。

在本申请的另一个实施例中,还可以通过另一种方法确定所述处理服务器与主服务器的数据状态的一致。具体地,在本实施例中,客户端发送的所述读请求中可以包括客户端最近一次获取的主服务器的数据状态更新时刻。

在本申请的一个实施例中,所述读请求中的数据更新时刻可以包括采用下述的任意一种方式获取得到:

客户端向主服务器发送写请求,所述主服务器响应于所述写请求时向所述客户端发送的数据状态更新时刻;

客户端从主服务器同步请求得到的所述主服务器最近一次的数据状态更新时刻。

如上所述,客户端可以采用上述方式中的任意一种获取所述主服务器的数据状态更新时刻:客户端可以向主服务器发送写请求,所述主服务器响应于所述写请求,更新所述主服务器的数据状态。当所述主服务器确定写请求处理成功时,可以在返回写请求结果的同时返回数据状态更新时刻至所述客户端。或者,客户端在向处理服务器发送读请求之前,可以向主服务器发送同步请求,请求获取所述主服务器最近一次的数据状态更新时刻,所述主服务器响应于所述同步请求,将最近一次的数据状态更新时刻发送至客户端。在上述两种方法中,第一种方法比较适用于客户端最近一次发送写请求的时刻距离所述客户端发送读请求的时刻较短的应用场景,第二种方法适用于客户端最近一次接收所述数据状态更新时刻距离所述客户端发送读请求的时刻较长的应用场景。

相应地,所述确定与主服务器的数据状态一致可以包括:

ss2:所述处理服务器获取主服务器最近一次的数据状态更新时刻,并判断所述最近一次的数据状态更新时刻是否等于或者晚于所述读请求中的所述数据状态更新时刻;;若是,则确定与主服务器的数据状态一致。

在本实施例所述的高一致性通信系统中,由于所述处理服务器从属于所述主服务器,当所述主服务器更新数据状态时,所述处理服务器往往主动同步所述主服务器的数据状态。本实施例中,所述处理服务器可以在同步所述主服务器的数据状态的同时,还可以同步所述主服务器更新数据状态的时刻。当确定所述处理服务器最近一次获取得到的数据状态更新时刻等于或者晚于所述读请求中的所述数据状态更新时刻时,可以确定所述处理服务器与所述主服务器的数据状态一致。

本实施例中,将主服务器的数据状态更新时刻作为所述主服务器的数据更新标志,可以基于所述数据状态更新时刻判断所述处理服务器与所述主服务器的数据状态是否一致,利用时刻的先后进行判断,可以加快判断的速度,进而提高读请求的处理效率。

基于处理服务器和主服务器的读请求处理过程,本申请提供了数据处理系统的一种实施例,所述系统可以包括:

至少一个处理服务器,用于接收客户端的读请求;以及,用于当确定与主服务器的数据状态一致时,处理所述读请求。

在本申请的一个实施例中,所述系统还可以包括:

主服务器,所述主服务器被设置成接收所述处理服务器的绑定请求,在确定所述处理服务器满足绑定要求时,发送答复消息至所述处理服务器,所述答复消息包括所述处理服务器与所述主服务器绑定成功的消息;

相应地,所述处理服务器还用于接收所述绑定成功的答复消息,在接收所述客户端的读请求之后,判断接收到所述答复消息的时刻距离基准时刻的时间间隔是否小于预设时间间隔,所述基准时刻为执行所述判断步骤的时刻;若小于所述预设时间间隔,则确定所述处理服务器与主服务器处于绑定状态。

在本申请的另一个实施例中,所述读请求中包括客户端最近一次获取的主服务器的数据状态的时刻;相应地,所述处理服务器还用于:

获取主服务器最近一次的数据状态更新时刻,并判断所述最近一次的数据状态更新时刻是否等于或者晚于所述读请求中的所述数据状态更新时刻;

若是,则确定与主服务器的数据状态一致。

下面通过一个具体的应用场景描述上述方法实施例,图4是本申请提供的数据处理方法的一种应用场景的示意图,如图4所示,在高一致性通信系统a中,通过paxos算法从n+1台处理服务器中选举得到主服务器,剩余的n台处理服务器作为所述主服务器的从属服务器。如图4所示,从属服务器1向主服务器发送同步绑定请求,主服务器接收到所述同步绑定请求之后,判断所述从属服务器1是否满足预设绑定要求,若满足同步绑定要求,返回绑定成功的答复消息。主服务器返回绑定成功的答复消息,表示允许与所述从属服务器1在时间段t内保持同步绑定状态。所述从属服务器1在接收到所述绑定成功的答复消息后,可以确定在t-t的时间段内与主服务器保持绑定,其中t表示从属服务器1发送同步绑定请求到接收到答复消息所消耗的时间,在时间段t-t内,所述从属服务器1可以接收读请求并返回处理结果。如图4所示,客户端向从属服务器1发送读请求,从属服务器1在接收到所述读请求后,当确定与主服务器的数据状态一致时,从属服务器1处理所述读请求并发送读请求处理结果至客户端。当确定与主服务器的数据状态不一致时,从属服务器1可以拒绝处理所述客户端的读请求,并返回错误请求报告,如nak错误报告至客户端。客户端在接收到所述从属服务器1返回的错误请求报告后,若统计得到所述错误请求报告的总个数小于等于预设阈值,则可以从服务器集中重新选取从属服务器处理所述读请求。当第二个从属服务器不能处理所述读请求时,可以继续将所述读请求发送给第三个从属服务器,直至有m个从属服务器都不能处理所述读请求,其中m为所述预设阈值,所述客户端可以转向主服务器发送所述读请求。

本申请提供的数据处理方法及系统,客户端可以直接向从属服务器发送读请求,从属服务器在接受所述读请求后,当确定与主服务器的数据状态一致时,所述从属服务器可以直接处理读请求。与现有技术相比,客户端可以不必向主服务器发送读请求,再由主服务器分配给从属服务器处理。本申请提供的读请求处理方法可以减轻主服务器的读请求处理负担,利用从属服务器的空闲时间,同时,不需要主服务器在读请求的关键处理过程中工作,因此不会增加处理延迟,提高高一致性通信系统的读请求处理效率。另外,本实施例方法可以使得高一致性通信系统中多个从属服务器同时处理读请求,所述通信系统的最大处理能力可以被扩展至所有处理服务器的处理能力之和,扩展高一致性通信系统的读请求处理能力。

基于上述数据处理方法,以处理服务器的角度提出读请求处理方法的另一个实施例,图5是本申请提供的读请求处理方法的另一种实施例的方法流程图,如图5所述,所述方法可以包括:

s51:接收客户端的读请求;

s52:当确定与主服务器的数据状态一致时,处理所述读请求。

s51-s52的具体实施方式可以参考s1-s2的实施方式,在此不再赘述。

可选的,在本申请的一个实施例中,所述读请求可以包括客户端向从提供的服务器集中选取的处理服务器发送的读请求。

可选的,在本申请的一个实施例中,所述确定与主服务器的数据状态一致包括:

当确定与主服务器处于绑定状态时,确定与主服务器的数据状态一致。

在本申请的一个实施例中,还提供一种所述处理服务器确定与主服务器处于绑定状态的方法,如图6所示,所述方法可以包括:

s61:获取最近一次接收到答复消息的时刻,所述答复消息包括与所述主服务器绑定成功的答复消息。

s62:判断接收到所述答复消息的时刻距离基准时刻的时间间隔是否小于预设时间间隔,所述基准时刻为执行所述判断步骤的时刻。

s63:若小于所述预设时间间隔,则确定与主服务器处于绑定状态。

本实施例中,在满足下述条件时可以接收到与主服务器同步绑定成功的答复消息:

数据状态与主服务器的数据状态一致;

且响应速度满足预设的绑定要求。

本实施例中,通过确定处理服务器与主服务器处于绑定状态,从而确定所述处理服务器与主服务器的数据状态一致,绑定协议可以保证处理服务器与主服务器数据状态的一致性,基于所述绑定协议,处理服务器可以直接处理读请求,可以减轻主服务器的处理负担。

在本申请的另一个实施例中,所述读请求中包括客户端最近一次获取的主服务器的数据状态更新时刻;

相应地,所述确定与主服务器的数据状态一致包括:

获取主服务器最近一次的数据状态更新时刻,并判断所述最近一次的数据状态更新时刻是否等于或者晚于所述读请求中的所述数据状态更新时刻;

若是,则确定与主服务器的数据状态一致。

本实施例中,将主服务器的数据状态更新时刻作为所述主服务器的数据更新标志,可以基于所述数据状态更新时刻判断所述处理服务器与所述主服务器的数据状态是否一致,利用时刻的先后进行判断,可以加快判断的速度,进而提高读请求的处理效率。

基于上述以处理服务器的角度提出的读请求处理方法,本申请还提出了一种服务器,图7是本申请提供的服务器的一种实施例的模块结构示意图,如图7所示,所述服务器70可以包括:

接收单元71,用于接收客户端的读请求;

处理单元72,用于当确定与主服务器的数据状态一致时,处理所述读请求。

在本申请的一个实施例中,所述读请求可以包括客户端向从提供的服务器集中选取的处理服务器发送的读请求。

在本申请的一个实施例中,所述处理单元72还可以用于:

当确定与主服务器处于绑定状态时,确定与主服务器的数据状态一致。

图8是本申请提供的处理单元的一种实施例的模块结构示意图,如图7所示,所述处理单元72可以包括:

答复消息获取单元81,用于获取最近一次接收到答复消息的时刻,所述答复消息包括与所述主服务器绑定成功的答复消息;

时间间隔判断单元82,用于判断接收到所述答复消息的时刻距离基准时刻的时间间隔是否小于预设时间间隔,所述基准时刻为执行所述判断步骤的时刻;

确定绑定关系单元83,用于若小于所述预设时间间隔,则确定与主服务器处于绑定状态。

可选的,在本申请的一个实施例中,在至少满足下述条件时可以接收到所述答复消息:

数据状态与主服务器的数据状态一致;

且响应速度满足预设的绑定要求。

本实施例中,通过判断处理服务器是否与主服务器处于绑定状态确定所述处理服务器与主服务器的数据状态是否一致,绑定协议可以保证处理服务器与主服务器数据状态的一致性,基于所述绑定协议,处理服务器可以直接处理读请求,可以减轻主服务器的处理负担。

在本申请的一个实施例中,所述读请求中包括客户端最近一次获取的主服务器的数据状态更新时刻;

相应地,所述处理单元72还可以用于:

获取主服务器最近一次的数据状态更新时刻,并判断所述最近一次的数据状态更新时刻是否等于或者晚于所述读请求中的所述数据状态更新时刻;若是,则确定与主服务器的数据状态一致。

其中,在本申请的另一个实施例中,所述读请求中的数据更新时刻包括采用下述的任意一种方式获取得到:

客户端向主服务器发送写请求,所述主服务器响应于所述写请求时向所述客户端发送的数据状态更新时刻;

客户端从主服务器同步请求得到的所述主服务器最近一次的数据状态更新时刻。

本实施例中,将主服务器的数据状态更新时刻作为所述主服务器的数据更新标志,可以基于所述数据状态更新时刻判断所述处理服务器与所述主服务器的数据状态是否一致,利用时刻的先后进行判断,可以加快判断的速度,进而提高读请求的处理效率。

通过本申请提供的数据处理方法、服务器,处理服务器在接受所述读请求后,当确定与主服务器的数据状态一致时,所述处理服务器可以直接处理读请求。本申请提供的读请求处理方法可以减轻主服务器的读请求处理负担,利用处理服务器的空闲时间,同时,不需要主服务器在读请求的关键处理过程中工作,因此不会增加处理延迟,提高高一致性通信系统的读请求处理效率。另外,本实施例方法可以使得高一致性通信系统中多个处理服务器同时处理读请求,所述通信系统的最大处理能力可以被扩展至所有处理服务器的处理能力之和,扩展高一致性通信系统的读请求处理能力。

基于上述数据处理方法,从客户端的角度提出读请求处理方法的另一个实施例,图9是本申请提供的读请求处理方法的另一种实施例的方法流程图,如图9所述,所述方法可以包括:

s91:向处理服务器发送读请求;

s92:接收所述处理服务器对所述读请求的处理结果。

在本申请的一个实施例中,所述处理结果可以包括:

所述处理服务器与所述主服务器的数据状态一致时处理所述读请求后返回的输出结果;

或者,所述处理服务器与所述主服务器的数据状态不一致时,拒绝处理所述读请求并返回的错误请求报告。

相应地,图10是本申请提供的读请求处理失败的处理方法的一种实施例的方法流程图,如图10所示,在接收所述处理服务器对所述读请求的处理结果之后,所述方法还可以包括:

s101:统计所述错误请求报告的总个数。

s102:若所述总个数小于等于预设阈值,则从所述服务器集中重新选取处理服务器处理所述读请求。

进一步地,如图10所示,在本申请的另一个实施例中,在所述统计所述错误请求报告的总个数之后,所述方法还可以包括:

s103:若所述总个数大于所述预设阈值,则向所述主服务器发送所述读请求。

本实施例提供的客户端读请求失败的处理方法,客户端可以在多个处理服务器均不能及时处理读请求的情况下,转向主服务器发送读请求,保证读请求的顺利完成。

基于上述以客户端的角度提出的读请求处理方法,本申请还提出了一种客户端,图11是本申请提供的客户端的一种实施例的模块结构示意图,如图11所示,所述客户端110可以包括:

读请求发送单元111,用于向处理服务器发送读请求;

处理结果接收单元112,用于接收所述处理服务器对所述读请求的处理结果。

在本申请的另一个实施例中,所述处理服务器可以包括从提供的服务器集中选取的处理服务器。

在本申请的另一个实施例中,所述处理结果可以包括:

所述处理服务器与所述主服务器的数据状态一致时处理所述读请求后返回的输出结果;

或者,所述处理服务器与所述主服务器的数据状态不一致时,拒绝处理所述读请求并返回的错误请求报告。

相应地,在本申请的另一个实施例中,所述客户端还可以对读请求失败进行进一步处理,图12是本申请提供的客户端的另一种实施例的模块结构示意图,如图12所示,所述客户端120还可以包括:

报告统计单元121,用于统计所述错误请求报告的总个数;

二次处理单元122,用于若所述总个数小于等于预设阈值,则从所述服务器集中重新选取处理服务器处理所述读请求。

进一步地,在本申请的一个实施例中,如图12所示,所述客户端120还可以包括:

主服务器请求单元123,用于若所述总个数大于所述预设阈值,则向所述主服务器发送所述读请求。

本实施例提供的客户端读请求失败的处理方法,客户端可以在多个处理服务器均不能及时处理读请求的情况下,转向主服务器发送读请求,保证读请求的顺利完成。

通过本申请提供的数据处理方法、客户端,客户端可以从服务器集中选取从属服务器,并向所述选取的从属服务器发送读请求,所述客户端还可以接收所述从属服务器对所述读请求的处理结果。与现有技术相比,客户端可以不必向主服务器发送读请求,再由主服务器分配给从属服务器处理。本申请提供的读请求处理方法可以减轻主服务器的读请求处理负担,利用从属服务器的空闲时间,同时,不需要主服务器在读请求的关键处理过程中工作,因此不会增加处理延迟,提高高一致性通信系统的读请求处理效率。

尽管本申请内容中提到实施例中的发送读请求、绑定条件判断、发送同步绑定请求等之类的数据传输、处理、判断描述,但是,本申请并不局限于必须是完全符合实施例所描述的数据传输、处理的情况。使用自定义或者某些通信标准/协议或本申请提及的实施例描述的基础上略加修改后的实施方案也可以实行上述实施例相同、等同或相近、或变形后可预料的实施效果。当然,即使不采用上数据处理、判断的方式,只要符合本申请上述各实施例的信息传输和信息判断反馈方式,仍然可以实现相同的申请,在此不再赘述。

虽然本申请提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的手段可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的装置或客户端产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境)。

上述实施例阐明的单元、系统,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本申请时可以把各模块的功能在同一个或多个软件和/或硬件中实现。当然,本申请中所述的某一单元模块也可以将实现同一功能的模块由多个子模块或子模块的组合实现。

本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内部包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。

本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构、类等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。

通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,移动终端,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。

本说明书中的各个实施例采用递进的方式描述,各个实施例之间相同或相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。本申请可用于众多通用或专用的计算机系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的电子设备、网络pc、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。

虽然通过实施例描绘了本申请,本领域普通技术人员知道,本申请有许多变形和变化而不脱离本申请的精神,希望所附的权利要求包括这些变形和变化而不脱离本申请的精神。

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