一种数据处理方法和路由层设备以及系统与流程

文档序号:12477859阅读:206来源:国知局
一种数据处理方法和路由层设备以及系统与流程

本发明涉及计算机技术领域,尤其涉及一种数据处理方法和路由层设备以及系统。



背景技术:

在分布式数据缓存服务中,为具备容灾能力,现有技术中可以利用数据缓存主备双倍机器来保证,数据路由访问为类哈希方式。其表现缺陷为在正常情况下冗余备份造成机器浪费严重。

举例说明,基于Keepalived的Redis分布式缓存集群是一个无共享的(shared-nothing)、分布式节点架构的存储方案,其目的是提供容错性和高性能。Redis集群方案中有一种实现方式是采用Keepalived技术保证集群具备容灾和高可用能力。Keepalived是一个用C语言编写的路由选择软件,配合互联网协议虚拟服务器(Internet Protocol Virtual Server,IPVS)负载均衡使用,通过虚拟路由冗余协议(Virtual Router Redundancy Protocol,VRRP)协议提供高可用性能,从而实现一主多备,主挂后备自动选举,漂移虚拟IP,切换速度秒级等功能,切换时可通过运行指定脚本更改业务服务状态。

在目前基于主备存储来保证高可靠,具备容灾能力的集群方案中,至少存在如下技术缺陷:前端访问数据对应路由有固定的静态绑定关系,并且冗余备份造成机器浪费严重,在正常情况下备机处于“无用”状态,整体资源成倍浪费。



技术实现要素:

本发明实施例提供了一种数据处理方法和路由层设备以及系统,用于提高数据存储资源的利用效率。

为解决上述技术问题,本发明实施例提供以下技术方案:

第一方面,本发明实施例提供一种基于数据处理方法,包括:

路由层设备接收客户端发送的数据操作请求,所述数据操作请求包括:待处理数据对应的键key;

所述路由层设备根据一致性哈希算法从数据节点集群中选取所述键对应的第一数据节点,所述数据节点集群中包括:至少两个数据节点,所述第一数据节点包括所述至少两个数据节点中的数据节点;

所述路由层设备将所述数据操作请求转发给所述第一数据节点,由所述第一数据节点根据所述数据操作请求对所述待处理数据进行业务处理。

第二方面,本发明实施例还提供一种路由层设备,包括:

接收模块,用于接收客户端发送的数据操作请求,所述数据操作请求包括:待处理数据对应的键key;

数据节点选择模块,用于根据一致性哈希算法从数据节点集群中选取所述键对应的第一数据节点,所述数据节点集群中包括:至少两个数据节点,所述第一数据节点包括所述至少两个数据节点中的数据节点;

调度模块,用于将所述数据操作请求转发给所述第一数据节点,由所述第一数据节点根据所述数据操作请求对所述待处理数据进行业务处理。

第三方面,本发明实施例还提供一种分布式缓存系统,包括:客户端、如前述第二方面中所述的路由层设备和数据节点集群,其中,

所述客户端,用于向所述路由层设备发送数据操作请求,所述数据操作请求包括:待处理数据对应的键key;

所述数据节点集群,包括:至少两个数据节点,所述第一数据节点为所述路由层设备选取出的数据节点;

所述第一数据节点,用于根据所述数据操作请求对所述待处理数据进行业务处理。

从以上技术方案可以看出,本发明实施例具有以下优点:

在本发明实施例中,首先路由层设备接收客户端发送的数据操作请求,数据操作请求包括:待处理数据对应的键,然后路由层设备根据一致性哈希算法从数据节点集群中选取键对应的第一数据节点,数据节点集群中包括:至少两个数据节点,第一数据节点包括至少两个数据节点中的数据节点,最后路由层设备将数据操作请求转发给第一数据节点,由第一数据节点根据数据操作请求对待处理数据进行业务处理。由于路由层设备能够屏蔽数据节点的选择和调度,为数据调用方提供了类似无差别接入的访问接口,因此可以极大的简化数据访问逻辑。另外,本发明实施例中数据节点集群中包括的所有数据节点由路由层设备根据一致性哈希算法来选取其中的一个数据节点进行业务处理,因此单个数据节点之间的业务处理量是均衡的,不需要使用某些数据节点作为冗余备份,因此不会浪费存储资源,提高数据存储资源的利用效率。

附图说明

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

图1为本发明实施例提供的一种数据处理方法的流程方框示意图;

图2为本发明实施例提供的分布式缓存系统的架构部署示意图;

图3为本发明实施例提供的路由层设备的业务流程示意图;

图4为本发明实施例提供的路由层设备执行状态检查的应用场景示意图;

图5-a为本发明实施例提供的一种路由层设备的组成结构示意图;

图5-b为本发明实施例提供的另一种路由层设备的组成结构示意图;

图5-c为本发明实施例提供的一种数据节点选择模块的组成结构示意图;

图5-d为本发明实施例提供的另一种路由层设备的组成结构示意图;

图6为本发明实施例提供的数据处理方法应用于服务器的组成结构示意图;

图7为本发明实施例提供的一种分布式缓存系统的组成结构示意图。

具体实施方式

本发明实施例提供了一种数据处理方法和路由层设备以及系统,用于提高数据存储资源的利用效率。

为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本发明一部分实施例,而非全部实施例。基于本发明中的实施例,本领域的技术人员所获得的所有其他实施例,都属于本发明保护的范围。

本发明的说明书和权利要求书及上述附图中的术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,以便包含一系列单元的过程、方法、系统、产品或设备不必限于那些单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它单元。

以下分别进行详细说明。

本发明数据处理方法的一个实施例,具体可以应用于对数据的分布式缓存应用场景中,不需要同时设置主备双倍的数据缓存,提高对数据存储资源的利用率,请参阅图1所示,本发明一个实施例提供的数据处理方法,可以包括如下步骤:

101、路由层设备接收客户端发送的数据操作请求,数据操作请求包括:待处理数据对应的键(英文名称:key)。

在本发明实施例中,分布式缓存系统中包括有客户端、路由层设备和数据节点集群。其中,客户端是和前端用户对接的,用于实时接收用户发送的访问请求,客户端和路由层设备之间建立有通信连接,客户端接收到前端发送的数据操作请求之后,将该数据操作请求转发给路由层设备。路由层设备首先接收到客户端发送的数据操作请求,路由层设备解析接收到的数据操作请求可以从中提取到在该请求中携带的key,该key对应于前端需要进行操作的待处理数据,例如前端需要对待处理数据进行查询和更新。本发明实施例中数据节点集群采用键值对(key-value)的方式缓存有业务数据,前端需要获取数据时先发送所请求的key,由路由层设备通过数据操作请求获取到该key。

需要说明的是,在本发明的一些实施例中,路由层设备中包括至少一个路由节点,具体可以由该路由节点接收客户端发送的数据操作请求,在实际应用中,客户端从前端用户接收到数据操作请求之后,该客户端可以采用随机的方式从路由层设备中选取一个路由节点,并将该数据操作请求发送给路由节点,本发明实施例中路由层设备中的所有路由节点地位完全相同,因此不存在单点故障的问题。

102、路由层设备根据一致性哈希算法从数据节点集群中选取键对应的第一数据节点。

其中,数据节点集群中包括:至少两个数据节点,第一数据节点包括至少两个数据节点中的数据节点。

在本发明实施例中,路由层设备通过客户端接收到数据操作请求之后,路由层设备获取到数据操作请求中携带的key,路由层设备和数据节点集群连接,路由层设备可以选择数据节点集群中的哪个数据节点来进行后续的业务处理,具体的,路由层设备可以采用一致性哈希算法,通过一致性哈希算法进行key-value计算,从数据节点集群中选取出键对应的数据节点,为了便于描述说明,可以将路由层设备选取出的数据节点称为“第一数据节点”,则该第一数据节点是由路由层设备通过一致性哈希算法选择出的数据节点,一致性哈希算法可以实现数据缓存的均衡,使得哈希的结果能够尽可能分布到所有的缓冲中去,这样可以使得所有的数据节点都得到利用,而不会存在冗余备份浪费数据存储资源的情况。

在本发明实施例中,数据节点以集群的方式来部署,在数据节点集群中存在有至少两个数据节点,通常的情况是数据节点集群中会存在大量的数据节点,路由层设备为提高数据的读取速率,可以根据一致性哈希算法确定数据的存储和读取节点。以某个数据的存储为例,数据节点总个数为N,通过一致性哈希算法计算出数据对应的哈希值,根据这个哈希值就可以找到对应的节点了,一致哈希算法的好处在于节点个数发生变化(减少或增加)时无需重新计算哈希值,保证数据储存或读取时可以正确、快速地找到对应的节点。分布式缓存能够高性能地读取数据、能够动态地扩展缓存节点、能够自动发现和切换故障节点、能够自动均衡数据分区,部署和维护都十分方便。

在本发明的一些实施例中,本发明实施例提供的数据处理方法,除了执行前述步骤之外,该方法还可以执行如下步骤:

A1、路由层设备周期性的发送心跳检测包到数据节点集群中的所有数据节点;

A2、路由层设备判断在预置的时间阈值内是否接收到数据节点集群中的数据节点发送的心跳响应包;

A3、路由层设备将没有向路由层设备发送心跳响应包的数据节点的节点状态设置为不可用服务。

其中,本发明实施例中为了保证业务处理的可靠性和高性能,路由层设备还可以实时的维护数据节点集群,路由层设备需要对数据节点集群中的数据节点进行状态检查,从而实时的发现数据节点是否存在故障,从而保证业务处理的可靠性。具体的,本发明实施例中路由层设备通过周期性的发送心跳检测包的方式来完成数据节点的状态检查。例如路由层设备可以采用周期性群发的方式来发送心跳检测包,具体预置的周期可以结合应用场景来确定,若需要保证较高的业务处理可靠性,则心跳检测包的发送周期可以设置的小一些。当路由层设备向数据节点集群中的所有数据节点都发送心跳检测包之后,路由层设备开始接收心跳响应包,对于已经向路由层设备发送心跳响应包且能够被路由层设备接收到的数据节点,路由层设备将其节点状态设置为可用服务,路由层设备还可以配置时间阈值,从而判断在时间阈值内是否接收到数据节点集群中的数据节点发送的心跳响应包,若路由层设备在时间阈值内没有接收到某些数据节点发送的心跳响应包,则路由层设备会标记该数据节点为不可用服务,不可用服务是指数据节点无法和路由层设备保持通信、无法提供数据服务。路由层设备通过心跳检测机制可以实时的掌握数据节点集群中所有数据节点的节点状态。

进一步的,在本发明执行前述步骤A1至A3所述的状态检查应用场景下,步骤A3路由层设备将没有向路由层设备发送心跳响应包的数据节点的节点状态设置为不可用服务之后,本发明实施例提供的数据处理方法,还可以包括如下步骤:

A4、路由层设备向节点状态为不可用服务的第二数据节点继续发送心跳检测包;

A5、路由层设备在预置的时间阈值内接收到第二数据节点发送的心跳响应包时,恢复第二数据节点的节点状态为可用状态。

其中,路由层设备为了实时的检测数据节点的节点状态,对于通过步骤A3已经标记为不可用服务的数据节点,定义节点状态标记为不可用服务的数据节点为第二数据节点,这些不可用服务的数据节点还可以被管理员修复,为了能够实时检测到这种被修复的数据节点,路由层设备向节点状态为不可用服务的第二数据节点继续发送心跳检测包,从而路由层设备在预置的时间阈值内接收到第二数据节点发送的心跳响应包时,可以恢复第二数据节点的节点状态为可用状态,可用状态是指数据节点能够和路由层设备保持通信、可以提供数据服务的状态,从而使得被修复的数据节点能够自动的恢复可用状态,而不需要中断分布式数据缓存的业务处理流程。

在本发明的一些实施例中,步骤102路由层设备根据一致性哈希算法从数据节点集群中选取键对应的第一数据节点,包括:

B1、路由层设备读取数据节点集群中每个数据节点的节点状态,节点状态包括:不可用服务,或者可用服务;

B2、路由层设备从节点状态为可用服务的所有数据节点中根据一致性哈希算法选取键对应的第一数据节点。

具体的,本发明实施例中为了保证业务处理的可靠性和高性能,路由层设备还可以实时的维护数据节点集群,在每次选取数据节点用于业务处理时,路由层设备可以先读取数据节点集群中每个数据节点的节点状态,节点状态包括:不可用服务,或者可用服务,例如通过前述步骤A1至A5所示的应用场景下,路由层设备对数据节点的节点状态进了标记,则可以从节点状态为可用服务的所有数据节点中根据一致性哈希算法选取键对应的第一数据节点,对于不可用服务的数据节点则不再选取为提供业务处理的数据节点,从而提高业务处理的可靠性和高性能。

在本发明的一些实施例中,步骤102路由层设备根据一致性哈希算法从数据节点集群中选取键对应的第一数据节点,包括:

C1、路由层设备加载初始的至少两个数据节点构成一致性哈希节点环;

C2、路由层设备根据一致性哈希算法计算键对应一致性哈希节点环上的位置,从该位置出发沿着一致性哈希节点环查找,直到遇见的数据节点即为键对应的第一数据节点。

其中,路由层设备可以通过步骤C1至C2所示完成一致性哈希算法的计算,首先加载初始的至少两个数据节点构成一致性哈希节点环,数据节点集群中初始配置的至少两个数据节点都添加到哈希圆环上,从而构成一致性哈希节点环,当路由层设备接收到数据操作请求时,路由层设备根据一致性哈希算法计算键对应一致性哈希节点环上的位置,这个位置作为起点,从该位置出发沿着一致性哈希节点环查找,例如可以是顺时针方向差值一致性哈希节点环,直到遇见的数据节点即为键对应的第一数据节点,例如通常从起点位置开始,遇到的第一个数据节点即为选取出的第一数据节点。

进一步的,在本发明实施例中路由层设备使用一致性哈希节点环来查找数据节点时,本发明实施例提供的数据处理方法,还可以包括如下步骤:

D1、当数据节点集群中新增加数据节点时,路由层设备将新的数据节点加入到一致性哈希节点环中;

D2、当数据节点集群中存在服务状态为不可服务的数据节点时,路由层设备将服务状态为不可服务的数据节点从一致性哈希节点环中剔除。

其中,本发明实施例中路由层设备使用一致性哈希节点环来查找数据节点,数据节点集群中的容量可以实现动态的有效伸缩,例如需要扩充容量时只需要新的数据节点加入到一致性哈希节点环中即可,下次就可以使用一致性哈希节点环进行数据节点的查找,例如需要缩小容量时可以将不可服务的数据节点从一致性哈希节点环中剔除,扩充容量和缩小容量都只存在少量的数据迁移,保证了数据存储资源的均衡性。

103、路由层设备将数据操作请求转发给第一数据节点,由第一数据节点根据数据操作请求对待处理数据进行业务处理。

在本发明实施例中,路由层设备通过一致性哈希算法从数据节点集群中选择出第一数据节点之后,路由层设备将数据操作请求转发给第一数据节点,第一数据节点可以根据数据操作请求对待处理数据进行业务处理,例如在数据操作请求中通常指示有如何进行业务处理,例如可以是查询数据、更新数据等,此处不做限定,具体取决于应用场景。

通过以上实施例对本发明实施例的描述可知,首先路由层设备接收客户端发送的数据操作请求,数据操作请求包括:待处理数据对应的键,然后路由层设备根据一致性哈希算法从数据节点集群中选取键对应的第一数据节点,数据节点集群中包括:至少两个数据节点,第一数据节点包括至少两个数据节点中的数据节点,最后路由层设备将数据操作请求转发给第一数据节点,由第一数据节点根据数据操作请求对待处理数据进行业务处理。由于路由层设备能够屏蔽数据节点的选择和调度,为数据调用方提供了类似无差别接入的访问接口,因此可以极大的简化数据访问逻辑。另外,本发明实施例中数据节点集群中包括的所有数据节点由路由层设备根据一致性哈希算法来选取其中的一个数据节点进行业务处理,因此单个数据节点之间的业务处理量是均衡的,不需要使用某些数据节点作为冗余备份,因此不会浪费存储资源,提高数据存储资源的利用效率。

为便于更好的理解和实施本发明实施例的上述方案,下面举例相应的应用场景来进行具体说明。本实施例可以基于一致性哈希和心跳状态检测实现数据节点的动态伸缩容量,基本能保证数据节点集群中的节点负载均衡。本发明实施例中,前端的路由层设备从初始配置节点集建立初始连接并置连接可用,业务数据流根据key和一致性哈希算法获取对应的数据节点连接发送请求,路由层设备还可以定时发出心跳检测包,在预置的时间阈值内若后端的数据节点没有响应,则置该节点状态为不可用服务并将其从一致性哈希节点环中剔除,根据数据操作请求中的key获得该key对应的数据所在的数据节点地址,应用到下线的后端数据节点可以达到缩容效果,或者后端的数据节点异常时路由层设备仍为前端提供服务。扩容时,只需重载节点配置插入一致性哈希环。具体实现时后端节点状态变化会触发状态回调机制,后端数据节点状态发生变化,会将该信息反馈到前端的路由层设备触发节点管理,可综合业务需求和当前场景定制拓展逻辑,本发明实施例可以通用到数据缓存服务或其他有/无状态服务中,在后台用户核心数据缓存系统中,本发明实施例在保障可靠性基础上,其为上线后的维护使用带来了很好的便利性。

首先对本发明实施例中路由层设备执行的一致性哈希算法进行举例说明,一致性哈希算法将每个对象映射到圆环边上的一个点,系统再将可用的节点机器映射到圆环的不同位置。查找某个对象对应的机器时,需要用一致哈希算法计算得到对象对应圆环边上位置,沿着圆环边上查找直到遇到某个节点机器,这台机器即为对象应该保存的位置。当删除一台节点机器时,这台机器上保存的所有对象都要移动到下一台机器。添加一台机器到圆环边上某个点时,这个点的下一台机器需要将这个节点前对应的对象移动到新机器上。更改对象在节点机器上的分布可以通过调整节点机器的位置来实现。一致性哈希算法具有冗余少、负载均衡、过渡平滑、存储均衡、关键词单调等优势特性。

如图2所示,为本发明实施例提供的分布式缓存系统的架构部署示意图。分布式缓存系统由3部分组成:客户端,路由层设备,数据节点集群,在图2中,以路由层设备包括多个路由节点为例,数据节点集群包括多个数据节点。

路由层设备加载初始数据节点地址构成一致性哈希节点环,不同数据节点存储分片数据,中间路由层节点完全对等,管理维护后端数据节点的服务状态;客户端直连对等的路由节点。

如图3所示,为本发明实施例提供的路由层设备的业务流程示意图,路由层设备可以包含三部分内容,路由选择、状态检查及伸缩容量,接下来分别进行举例说明。

后端数据节点存储以key-value方式缓存业务数据,路由节点接收客户端的业务key操作(例如查询和更新),根据一致性哈希算法选取key对应的数据节点地址,并将该数据操作请求转发到该数据节点,假设根据一致性哈希算法计算出数据节点N,由该数据节点N接收路由层设备转发的数据操作请求。因为路由层节点完全对等,所以不存在单点故障问题,其中,Router_addr=ConsistentHash(key)。

如图4所示,为本发明实施例提供的路由层设备执行状态检查的应用场景示意图,图4中以一个路由节点执行状态检查为例,路由节点周期发送心跳检测包到后端当前数据节点,心跳通道与业务请求包一致,遵守先入先出的方式,数据节点区别业务包和心跳检测包,如果为心跳检测包则发送心跳响应包给路由节点。如果路由节点超过预设置的时间阈值仍未收到对应数据节点的心跳响应包,则将该数据节点状态置为不可服务,图4中以虚线框所示的数据节点D表示不可服务的数据节点。后续仍保持向该数据节点发送心跳检测包,如有收到数据响应包则重置其服务状态为可用状态。

当数据规模快填满数据节点容量考虑扩容时,仅需将新数据节点地址追加到初始数据节点配置,然后路由节点重载地址配置将其加入到一致性哈希节点环中。在新的一致性哈希节点环中,业务请求将依据之前一致性哈希算法将请求散列到新/老节点中,根据一致性哈希算法的特点,数据只会有少量迁移,均衡性也即将表现。状态检测中的数据节点故障其实也是缩容的一种表现,缩容只需要将机器下架,状态检测一个周期时间内就会感知到其不可服务,路由节点将其从一致性哈希节点环中剔除即完成了缩容过程。缩容和扩容一样都会存在少量的数据迁移,但均衡性也会很快表现。因为路由节点仅做路由选择和节点状态维护,相比直接访问数据节点,其带来的优势有:性能高、轻量级、减少后端缓存服务连接数、易配置。

本发明实施例通过路由层设备屏蔽了数据节点的部署细节与故障切换,为调用方提供了一种类似“无差别”接入的访问接口,极大简化了数据访问逻辑。路由层节点是对等的,可根据业务的访问量来确定实际需要部署多少数据节点,本发明实施例解决了传统分布式缓存系统带来的资源浪费和伸缩容量不便的缺陷,在保障可靠性和高性能的同时,为该类应用场景提供了很好的可维护便利性。

需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。

为便于更好的实施本发明实施例的上述方案,下面还提供用于实施上述方案的相关装置。

请参阅图5-a所示,本发明实施例提供的一种路由层设备500,可以包括:接收模块501、数据节点选择模块502和调度模块503,其中,

接收模块501,用于接收客户端发送的数据操作请求,所述数据操作请求包括:待处理数据对应的键key;

数据节点选择模块502,用于根据一致性哈希算法从数据节点集群中选取所述键对应的第一数据节点,所述数据节点集群中包括:至少两个数据节点,所述第一数据节点包括所述至少两个数据节点中的数据节点;

调度模块503,用于将所述数据操作请求转发给所述第一数据节点,由所述第一数据节点根据所述数据操作请求对所述待处理数据进行业务处理。

在本发明的一些实施例中,如图5-b所示,所述路由层设备500还包括:状态检查模块504,其中,

所述状态检查模块504,用于周期性的发送心跳检测包到所述数据节点集群中的所有数据节点;判断在预置的时间阈值内是否接收到所述数据节点集群中的数据节点发送的心跳响应包;将没有向所述路由层设备发送心跳响应包的数据节点的节点状态设置为不可用服务。

进一步的,在本发明的一些实施例中,所述状态检查模块504,还用于将没有向所述路由层设备发送心跳响应包的数据节点的节点状态设置为不可用服务之后,向节点状态为不可用服务的第二数据节点继续发送心跳检测包;在预置的时间阈值内接收到所述第二数据节点发送的心跳响应包时,恢复所述第二数据节点的节点状态为可用状态。

在本发明的一些实施例中,所述数据节点选择模块502,具体用于读取所述数据节点集群中每个数据节点的节点状态,所述节点状态包括:不可用服务,或者可用服务;从节点状态为可用服务的所有数据节点中根据一致性哈希算法选取所述键对应的第一数据节点。

在本发明的一些实施例中,如图5-c所示,所述数据节点选择模块502,包括:

哈希圆环配置模块5021,用于加载初始的至少两个数据节点构成一致性哈希节点环;

圆环查找模块5022,用于根据一致性哈希算法计算所述键对应所述一致性哈希节点环上的位置,从该位置出发沿着所述一致性哈希节点环查找,直到遇见的数据节点即为所述键对应的第一数据节点。

在本发明的一些实施例中,如图5-d所示,所述路由层设备500还包括:伸缩容量控制模块505,用于当所述数据节点集群中新增加数据节点时,将新的数据节点加入到所述一致性哈希节点环中;当所述数据节点集群中存在服务状态为不可服务的数据节点时,将所述服务状态为不可服务的数据节点从所述一致性哈希节点环中剔除。

通过以上实施例对本发明实施例的描述可知,首先路由层设备接收客户端发送的数据操作请求,数据操作请求包括:待处理数据对应的键,然后路由层设备根据一致性哈希算法从数据节点集群中选取键对应的第一数据节点,数据节点集群中包括:至少两个数据节点,第一数据节点包括至少两个数据节点中的数据节点,最后路由层设备将数据操作请求转发给第一数据节点,由第一数据节点根据数据操作请求对待处理数据进行业务处理。由于路由层设备能够屏蔽数据节点的选择和调度,为数据调用方提供了类似无差别接入的访问接口,因此可以极大的简化数据访问逻辑。另外,本发明实施例中数据节点集群中包括的所有数据节点由路由层设备根据一致性哈希算法来选取其中的一个数据节点进行业务处理,因此单个数据节点之间的业务处理量是均衡的,不需要使用某些数据节点作为冗余备份,因此不会浪费存储资源,提高数据存储资源的利用效率。

图6是本发明实施例提供的一种服务器结构示意图,该服务器1100可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(central processing units,CPU)1122(例如,一个或一个以上处理器)和存储器1132,一个或一个以上存储应用程序1142或数据1144的存储介质1130(例如一个或一个以上海量存储设备)。其中,存储器1132和存储介质1130可以是短暂存储或持久存储。存储在存储介质1130的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器1122可以设置为与存储介质1130通信,在服务器1100上执行存储介质1130中的一系列指令操作。

服务器1100还可以包括一个或一个以上电源1126,一个或一个以上有线或无线网络接口1150,一个或一个以上输入输出接口1158,和/或,一个或一个以上操作系统1141,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。

上述实施例中由服务器所执行的数据处理方法的步骤可以基于该图6所示的服务器结构。

如图7所示,本发明实施例提供一种分布式缓存系统700,包括:客户端701、如图5-a至图5-d中任一项所述的路由层设备702和数据节点集群703,其中,

所述客户端701,用于向所述路由层设备702发送数据操作请求,所述数据操作请求包括:待处理数据对应的键key;

所述数据节点集群703,包括:至少两个数据节点,所述第一数据节点为所述路由层设备选取出的数据节点;

所述第一数据节点,用于根据所述数据操作请求对所述待处理数据进行业务处理。

通过以上实施例对本发明实施例的描述可知,首先路由层设备接收客户端发送的数据操作请求,数据操作请求包括:待处理数据对应的键,然后路由层设备根据一致性哈希算法从数据节点集群中选取键对应的第一数据节点,数据节点集群中包括:至少两个数据节点,第一数据节点包括至少两个数据节点中的数据节点,最后路由层设备将数据操作请求转发给第一数据节点,由第一数据节点根据数据操作请求对待处理数据进行业务处理。由于路由层设备能够屏蔽数据节点的选择和调度,为数据调用方提供了类似无差别接入的访问接口,因此可以极大的简化数据访问逻辑。另外,本发明实施例中数据节点集群中包括的所有数据节点由路由层设备根据一致性哈希算法来选取其中的一个数据节点进行业务处理,因此单个数据节点之间的业务处理量是均衡的,不需要使用某些数据节点作为冗余备份,因此不会浪费存储资源,提高数据存储资源的利用效率。

另外需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本发明提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件的方式来实现,当然也可以通过专用硬件包括专用集成电路、专用CPU、专用存储器、专用元器件等来实现。一般情况下,凡由计算机程序完成的功能都可以很容易地用相应的硬件来实现,而且,用来实现同一功能的具体硬件结构也可以是多种多样的,例如模拟电路、数字电路或专用电路等。但是,对本发明而言更多情况下软件程序实现是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘,U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

综上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照上述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对上述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

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