Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
METHOD, APPARATUS AND SYSTEM FOR DISTRIBUTED CACHE CONTROL
Document Type and Number:
WIPO Patent Application WO/2011/091720
Kind Code:
A1
Abstract:
A method for distributed cache control includes: pre-loading a data access protocol and route information according to the configuration information (S101); according to the pre-loaded data access protocol, receiving a data access request from a client (S102); according to the pre-loaded route information, searching for at least one cache server in which the data requested by the data access request exists(S103); according to the status information of each searched-out cache server, selecting one of the cache servers as the target cache server (S104); according to the pre-loaded data access protocol, forwarding the data access request to the target cache server so as to respond to the data access request (S105). Accordingly, an apparatus and a system for distributed cache control are also provided in the present invention. The present invention can support multiple data access protocols, and can flexibly switch, according to the status information of the cache servers, the cache server being used, thereby enabling flexible control for the distributed cache.

Inventors:
CAI ZHENXING (CN)
Application Number:
PCT/CN2011/070048
Publication Date:
August 04, 2011
Filing Date:
January 06, 2011
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
SHENZHEN COSHIP ELECTRONICS CO (CN)
CAI ZHENXING (CN)
International Classes:
H04L29/06
Domestic Patent References:
WO2009083935A22009-07-09
Foreign References:
CN101764824A2010-06-30
US20020129207A12002-09-12
CN101253488A2008-08-27
CN101222424A2008-07-16
Attorney, Agent or Firm:
UNITALEN ATTORNEYS AT LAW (CN)
北京集佳知识产权代理有限公司 (CN)
Download PDF:
Claims:
权 利 要 求

1、 一种分布式緩存控制方法, 其特征在于, 包括:

根据配置信息预先加载数据访问协议和路由信息;

根据所述预加载的数据访问协议, 接收客户端的数据访问请求; 根据所述预加载的路由信息,查找所述数据访问请求所请求的数据所在的 至少一个緩存服务器;

从查找到的緩存服务器中选择一个緩存服务器作为目标緩存服务器; 将所述数据访问请求按照所述预加载的数据访问协议转发至所述目标緩 存服务器, 以响应所述数据访问请求。

2、 如权利要求 1所述的方法, 其特征在于, 所述根据配置信息预先加载 路由信息包括:

根据配置信息, 选择路由算法;

根据所述路由算法计算各緩存数据所在的各个緩存服务器;

根据计算出的各个緩存服务器, 构建与所述緩存服务器对应的路由信息, 并加载所述路由信息。

3、 如权利要求 1或 2所述的方法, 其特征在于, 在所述预先加载数据访 问协议和路由信息之后, 所述接收客户端的数据访问请求之前, 还包括: 实时监控緩存服务器的状态,并根据监控结果实时更新各个緩存服务器的 状态信息。

4、 如权利要求 3所述的方法, 其特征在于, 所述从查找到的緩存服务器 中选择一个緩存服务器作为目标緩存服务器包括:

查询所述查找到的緩存服务器的状态信息;

根据所述状态信息,从查找到的緩存服务器中选择一个緩存服务器作为目 标緩存服务器。

5、 如权利要求 4所述的方法, 其特征在于, 所述将所述数据访问请求按 照所述预加载的数据访问协议转发至所述目标緩存服务器,以响应所述数据访 问请求包括:

将所述数据访问请求按照所述预加载的数据访问协议转发至所述目标緩 存服务器, 以访问所述目标緩存服务器; 从所述目标緩存服务器中获取所述数据访问请求所请求的数据; 将所述获取的数据发送给所述客户端。

6、 如权利要求 5所述的方法, 其特征在于, 所述从所述目标緩存服务器 中获取所述数据访问请求所请求的数据之后, 还包括:

控制所述目标緩存服务器更新自身的緩存数据。

7、 一种分布式緩存控制装置, 其特征在于, 包括:

初始化模块, 用于根据配置信息, 预先加载数据访问协议和路由信息; 接收模块, 用于根据所述初始化模块预加载的数据访问协议,接收客户端 的数据访问请求;

路由模块, 用于根据所述初始化模块预加载的路由信息, 查找所述接收模 块接收到的数据访问请求所请求的数据所在的至少一个緩存服务器;

选择模块,用于从查找到的緩存服务器中选择一个緩存服务器作为目标緩 存服务器;

响应模块,用于将所述数据访问请求按照所述初始化模块预加载的数据访 问协议转发至所述选择模块所选择的目标緩存服务器,以响应所述数据访问请 求;

配置模块, 用于存储所述配置信息,所述配置信息包括数据和緩存服务器 位置的映射关系、 数据刷新策略信息、 数据加载策略信息、 緩存策略信息、 路 由策略信息和緩存服务器的状态信息中的任一种或多种。

8、 如权利要求 7所述的装置, 其特征在于, 所述初始化模块包括: 协议加载单元, 用于根据所述配置模块中的配置信息,预先加载数据访问 协议;

路由加载单元,用于根据所述配置模块中的配置信息,预先加载路由信息。

9、 如权利要求 8所述的装置, 其特征在于, 所述路由加载单元包括: 算法选择单元, 用于根据配置信息, 选择路由算法;

计算单元, 用于根据所述算法选择单元所选择的路由算法,计算各緩存数 据所在的各个緩存服务器;

路由单元, 用于根据所述计算单元计算出的各个緩存服务器,构建相应的 路由信息, 并加载所述路由信息。 10、 如权利要求 7-9任一项所述的装置, 其特征在于, 还包括: 监控模块, 用于实时监控緩存服务器的状态, 并根据监控结果实时更新各 个緩存服务器的状态信息。

11、 如权利要求 10所述的装置, 其特征在于, 所述选择模块包括: 查询单元,用于从所述配置模块中查询所述路由模块查找到的各緩存服务 器的状态信息;

选择单元, 用于根据所述查询单元查询到的状态信息,从所述路由模块查 找到的緩存服务器中选择一个緩存服务器作为目标緩存服务器。

12、 如权利要求 11所述的装置, 其特征在于, 所述响应模块包括: 第一发送单元,用于将所述数据访问请求按照所述预加载的数据访问协议 转发至所述目标緩存服务器, 以访问所述目标緩存服务器;

获取单元,用于从所述目标緩存服务器中获取所述数据访问请求所请求的 数据;

第二发送单元, 用于将所述获取单元获取的数据发送给客户端。

13、 如权利要求 12所述的装置, 其特征在于, 所述响应模块还包括: 緩存控制单元, 用于控制所述目标緩存服务器更新自身的緩存数据。

14、 一种分布式緩存控制系统, 包括客户端和多个緩存服务器, 其特征在 于, 还包括: 分布式緩存控制装置;

所述客户端,用于向所述分布式緩存控制装置发送数据访问请求, 并接收 所述分布式緩存控制装置所发送的所述数据访问请求所请求的数据;

所述分布式緩存控制装置, 用于根据配置信息,预先加载数据访问协议和 路由信息; 根据所述预加载的数据访问协议, 接收客户端的数据访问请求; 根 据所述预加载的路由信息,查找所述数据访问请求所请求的数据所在的至少一 个緩存服务器;从查找到的緩存服务器中选择一个緩存服务器作为目标緩存服 务器;将所述数据访问请求按照所述预加载的数据访问协议转发至所述目标緩 存服务器, 以响应所述数据访问请求;

所述緩存服务器,用于接收所述分布式緩存控制装置所发送的所述数据访 问请求, 并提供所述数据访问请求的数据给所述分布式緩存控制装置, 以使所 述分布式緩存控制装置响应所述客户端的数据访问请求。

Description:
一种分布式緩存控制方法、 装置及系统

本申请要求于 2010 年 1 月 28 日提交中国专利局、 申请号为 201010104545.9、 发明名称为"一种分布式緩存控制方法、 装置及系统"的中国 专利申请的优先权, 其全部内容通过引用结合在本申请中。

技术领域

本发明涉及通信领域, 尤其涉及一种分布式緩存控制方法、 装置及系统。 背景技术

随着各种系统数据量、 用户量、 并发量的大幅度增长, 越来越多的系统采 用緩存来提高系统的性能。单纯的本地緩存或 者单机緩存因为资源有限,对系 统性能的提升有限, 因此, 分布式緩存应运而生, 成为了提高系统性能的应用 主流。

如何在分布式的不同服务器中分配緩存的数据 以及对緩存的访问,对系统 的资源利用和性能有着很大的影响。鉴于此, 目前有许多关于如何对分布式緩 存进行控制的研究。现有的分布式緩存控制系 统主要采用负载均衡技术, 其技 术方案为:在緩存服务器集群和客户端之间设 置一台或多台或多层负载均衡服 务器,客户端发送数据访问请求至负载均衡服 务器, 由负载均衡服务器转发至 緩存集群中相应的某台緩存服务器。

发明人在实施本发明的过程中发现,现有的分 布式緩存控制系统无法对分 布式緩存服务器进行灵活控制, 其主要存在以下缺陷:

1、 对协议有固定要求。 现有的系统中, 客户端访问负载均衡服务器, 负 载均衡服务器访问緩存服务器, 均要求采用 HTTP协议(Hypertext Transfer Protocol, 超文本传输协议);

2、 无法对目标緩存服务器进行相应的选择。 现有系统中, 緩存服务器集 群的各个服务器必须緩存同样的数据, 因此, 负载均衡服务器只能根据数据访 问请求所请求的数据标识,将请求转发至标识 所指示的某台緩存服务器中, 无 法按照算法将不同数据緩存到不同的服务器, 也无法按照算法将请求转发至不 同的緩存服务器;

3、 负载均衡服务器无法根据緩存服务器的状态进 行调整。 负载均衡服务 器无法对緩存服务器集群中的各緩存服务器的 状态进行监控,当某台緩存服务 器无法连接或出现故障时, 负载均衡月良务器无法跳转对请求的转发, 可能导致 数据访问的失败。

发明内容

本发明的目的在于, 提供一种分布式緩存控制方法、 装置及系统, 能够支 持多种数据访问协议, 并可根据緩存服务器的状态信息,对所使用的 緩存服务 器进行灵活切换, 实现对分布式緩存的灵活控制。

为了实现上述目的,本发明实施例公开了一种 分布式緩存控制方法,包括: 根据配置信息, 预先加载数据访问协议和路由信息;

根据预加载的数据访问协议, 接收客户端的数据访问请求;

根据预加载的路由信息,查找所述数据访问请 求所请求的数据所在的至少 一个緩存服务器;

根据所述查找到的各緩存服务器的状态信息, 选择其中一个緩存服务器作 为目标緩存服务器;

将所述数据访问请求按照所述预加载的数据访 问协议转发至所述目标緩 存服务器, 以响应所述数据访问请求。

相应地, 本发明实施例还公开了一种分布式緩存控制装 置, 包括: 初始化模块, 用于根据配置信息, 预先加载数据访问协议和路由信息; 接收模块, 用于根据所述初始化模块预加载的数据访问协 议,接收客户端 的数据访问请求;

路由模块, 用于根据所述初始化模块预加载的路由信息, 查找所述接收模 块接收到的数据访问请求所请求的数据所在的 至少一个緩存服务器;

选择模块, 用于根据所述路由模块查找到的各緩存服务器 的状态信息,选 择其中一个緩存服务器作为目标緩存服务器;

响应模块,用于将所述数据访问请求按照所述 初始化模块预加载的数据访 问协议转发至所述选择模块所选择的目标緩存 服务器,以响应所述数据访问请 求;

配置模块, 用于存储所述配置信息,所述配置信息包括数 据和緩存服务器 位置的映射关系、 数据刷新策略信息、 数据加载策略信息、 緩存策略信息、 路 由策略信息和緩存服务器的状态信息中的任一 种或多种。 相应地,本发明实施例还提供了一种分布式緩 存控制系统, 包括:客户端、 多个緩存服务器和分布式緩存控制装置,

所述客户端, 用于向所述分布式緩存控制装置发送数据访问 请求, 并接收 所述分布式緩存控制装置所发送的所述数据访 问请求所请求的数据;

所述分布式緩存控制装置, 用于根据配置信息,预先加载数据访问协议和 路由信息; 根据所述预加载的数据访问协议, 接收客户端的数据访问请求; 根 据所述预加载的路由信息,查找所述数据访问 请求所请求的数据所在的至少一 个緩存服务器; 根据所述查找到的各緩存服务器的状态信息, 选择其中一个緩 存服务器作为目标緩存服务器;将所述数据访 问请求按照所述预加载的数据访 问协议转发至所述目标緩存服务器, 以响应所述数据访问请求;

所述緩存服务器,用于接收所述分布式緩存控 制装置所发送的所述数据访 问请求, 并提供所述数据访问请求的数据给所述分布式 緩存控制装置, 以使所 述分布式緩存控制装置响应所述客户端的数据 访问请求。

本发明实施例通过预先加载数据访问协议,使 客户端对分布式緩存控制装 置的访问、以及分布式緩存控制装置对緩存服 务器的访问均能支持多种数据访 问协议; 并可根据各緩存器的状态信息,通过预加载的 路由信息对所使用的緩 存服务器进行灵活切换, 能够更有效、 更灵活地实现对分布式緩存的控制。 附图说明

图 1为本发明的分布式緩存控制系统的实施例的 构示意图;

图 2为本发明的分布式緩存控制装置的实施例的 构示意图;

图 3为本发明的分布式緩存控制装置的初始化模 的结构示意图; 图 4为本发明的分布式緩存控制装置的选择模块 实施例的结构示意图; 图 5为本发明的分布式緩存控制装置的响应模块 实施例的结构示意图; 图 6为本发明的分布式緩存控制方法的第一实施 的流程图;

图 7为本发明的分布式緩存控制方法的第二实施 的流程图。

具体实施方式

下面将结合本发明路由表实施例中的附图,对 本发明实施例中的技术方案 进行清楚、 完整地描述, 显然, 所描述的实施例仅仅是本发明一部分实施例, 而不是全部的实施例。基于本发明中的实施例 , 本领域普通技术人员在没有作 出创造性劳动前提下所获得的所有其他实施例 , 都属于本发明保护的范围。 请参见图 1 , 为本发明的分布式緩存控制系统的实施例的结 构示意图。 如图 1所示, 该分布式緩存控制系统包括: 客户端 10, 分布式緩存控制 装置 20, 以及多个緩存服务器 30, 图中仅对其中一个緩存服务器进行标号, 图中示出 1、 2、 N三个緩存服务器, 但并不限于两个, 其中, 多个緩存服务 器 30构成緩存服务器集群。 其中:

客户端 10, 用于向分布式緩存控制装置 20发送数据访问请求, 并接收所 述分布式緩存控制装置 20发送的所述数据访问请求所请求的数据;

分布式緩存控制装置 20, 用于根据配置信息, 预先加载数据访问协议和 路由信息; 根据预加载的数据访问协议, 接收客户端 10的数据访问请求; 根 据预加载的路由信息,查找所述数据访问请求 所请求的数据所在的至少一个緩 存服务器 30; 根据查找到的各緩存服务器 30的状态信息, 选择其中一个緩存 服务器 30作为目标緩存服务器; 将所述数据访问请求按照预加载的数据访问 协议转发至所述目标緩存服务器, 以响应所述数据访问请求;

緩存服务器 30, 用于接收所述分布式緩存控制装置 20发送的所述数据访 问请求, 并提供所述数据访问请求的数据给所述分布式 緩存控制装置 20, 以 使所述分布式緩存控制装置 20响应所述客户端 10的数据访问请求。

具体实现中, 该多个緩存服务器 30可以对不同的数据进行緩存, 具体地, 可利用相应的算法, 比如: 哈希取余算法或一致性哈希算法, 对需要緩存的数 据进行相应的计算,可使需要緩存的数据分别 存储于不同的緩存服务器 30中。 具体实现中, 例如: 需要对 1000个数据进行緩存, 可利用哈希取余算法, 可 将 1-100的数据存储于緩存服务器 1中, 将 101-200的数据存储于緩存服务器 2中, 以此类推, 则各个緩存服务器中均存储了待緩存数据的一 部分。 此时, 各个緩存服务器中存储了不同的数据。此种緩 存方式, 可以根据每个緩存服务 器的特性緩存不同的数据, 充分利用了緩存服务器的优势。

可以理解的是, 此处各个緩存服务器中存储了不同的緩存数据 仅为举例, 多个緩存服务器中也可存储相同的数据, 比如, 可根据算法, 将 1-100的数据 同时存储于緩存服务器 1、 緩存服务器 2和緩存服务器 5中, 此时, 緩存服务 器 1、 緩存服务器 2和緩存服务器 5中的数据相同, 当各个緩存服务器中均存 储了全部待緩存数据, 即当各个緩存服务器中的数据完全相同时, 与现有的緩 存系统相兼容。 此外, 对于其相应的算法, 比如哈希取余算法或一致性哈希算 法, 均与现有哈希计算方法类似, 在此不进行赞述。

本发明实施例通过预先加载数据访问协议,使 客户端对分布式緩存控制装 置的访问、以及分布式緩存控制装置对緩存服 务器的访问均能支持多种数据访 问协议; 并可根据各緩存器的状态信息,通过预加载的 路由信息对所使用的緩 存服务器进行灵活切换, 能够更有效、 更灵活实现对分布式緩存的控制。

为了更清楚的说明本发明, 下面将对分布式緩存控制装置进行详细介绍。 请参见图 2, 为本发明的分布式緩存控制装置的实施例的结 构示意图; 如 图 2所示, 该分布式緩存控制装置 20包括: 初始化模块 201 , 配置模块 202, 接收模块 204, 路由模块 205 , 选择模块 206和响应模块 207。 其中:

初始化模块 201 ,用于根据配置信息,预先加载数据访问协议 路由信息。 具体实现中,在客户端 10使用该分布式緩存控制装置 20之前, 需要先启 动该分布式緩存控制装置 20, 以进行初始化工作, 该初始化模块 201在分布 式緩存控制装置 20启动后, 读取相关配置信息, 所述配置信息存储于分布式 緩存控制装置 20的配置模块 202中; 根据所述配置信息进行数据访问协议以 及路由信息的加载; 具体地, 对于数据访问协议的预加载, 比如: 预先加载 API ( Application Programming Interface, 应用程序编程接口)协议, 或预先力口 载 IP协议(Internet Protocol, 网络之间互连协议)等, 该预先加载的协议即 为后续的数据访问所基于的协议。对于路由信 息的预加载需要通过相应的算法 或路由策略来实现, 比如, 利用上述的哈希取余算法或一致性哈希算法, 可计 算得到各緩存数据分别所在的緩存服务器, 由此构建相应的路由信息, 具体实 现中, 该路由信息可以优选以路由表的形式存在, 其表征了数据和分布式緩存 服务器位置的映射关系, 该路由信息存储于上述配置模块 202中,在分布式緩 存控制装置 20启动后, 由该初始化模块 201对该路由信息进行预加载。

可以理解的是, 此处预加载的协议以及路由信息仅为举例, 其他情况可进 行类似的分析。 例如, 预加载的协议可以进行扩展; 当预加载的协议为 HTTP 协议时, 即与现有的緩存系统相兼容; 再例如, 确定路由信息的算法可以进行 扩展; 当通过现有的筒单哈希算法构建路由信息时, 其与现有的緩存系统相兼 容; 再如, 该路由信息并不仅限于路由表的形式, 也可以不使用路由表, 直接 在数据访问时运用上述的各算法或路由策略进 行计算得到路由,在此不进行赞 述。 如前所述, 由于预加载的协议可扩展, 因此, 使緩存系统的数据访问不再 受到协议的限制, 使分布式緩存的控制更为灵活。

配置模块 202, 用于存储配置信息, 所述配置信息包括数据和緩存服务器 位置的映射关系、 数据刷新策略信息、 数据加载策略信息、 緩存策略信息、 路 由策略信息和緩存服务器的状态信息中的任一 种或多种。具体实现中,该配置 模块 202对分布式緩存控制装置 20的相关配置信息进行统一管理, 并根据应 用更新其配置信息, 以供其他模块比如初始化模块 201调用。

接收模块 204, 用于根据所述初始化模块 201预加载的数据访问协议, 接 收客户端 10的数据访问请求。

路由模块 205 , 用于根据所述初始化模块 201预加载的路由信息, 查找所 述接收模块 204接收到的数据访问请求所请求的数据所在的 至少一个緩存服 务器 30。 如前所述, 数据访问请求所请求的数据可以存储于某一个 緩存服务 器 30中, 或同时存储于多个緩存服务器 30中, 该路由模块 205 , 需要根据所 述初始化模块 201预加载的路由信息,查找相应的数据所在的 至少一个緩存服 务器 30。

选择模块 206, 用于根据所述路由模块 205查找到的各緩存服务器 30的 状态信息, 选择其中一个緩存服务器 30作为目标緩存服务器; 具体实现中, 緩存服务器 30的状态信息包括: 緩存服务器 30的运行状态信息、 负载状态信 息、 连接状态信息等, 选择模块 206会选择处于正常运行状态、 正常负载状态 以及正常连接状态的緩存服务器作为目标緩存 服务器。 比如, 当路由模块 205 查找到多个緩存服务器 30时, 如果其中某个緩存服务器无法连接, 或某个緩 存服务器无法运行等, 即排除此类发生故障的緩存服务器,选取正常 状态下的 緩存服务器作为目标緩存服务器, 以使数据访问能够顺利进行。通过选择模块 206, 可对所使用的緩存服务器进行灵活切换, 当系统中的某个緩存服务器发 生故障时, 不影响整个緩存系统的通信,使緩存服务器集 群的单点障碍不会对 緩存系统性能造成任何影响, 提高了緩存系统的性能。

响应模块 207, 用于将所述数据访问请求按照所述初始化模块 201预加载 的数据访问协议转发至所述选择模块 206所选择的目标緩存服务器,以响应所 述数据访问请求。

再请参见图 2, 该分布式緩存控制装置 20还包括: 监控模块 203。

该监控模块 203, 用于实时监控緩存服务器 30的状态, 根据监控结果, 实时更新各个緩存服务器 30的状态信息。 具体的, 该监控模块 203主要负责 监控各个緩存服务器 30的状态, 包括緩存服务器 30的运行状态、 负载状态、 连接状态等, 并实时更新存储在配置模块 202中的各緩存服务器 30的状态信 息。 具体实现中, 选择模块 206需要根据緩存服务器 30的状态信息来进行目 标緩存服务器的选择或确定, 因此, 为了保证通信的顺利以及系统的稳定性, 在选择模块 206从配置模块 202中查询緩存服务器 30的状态信息时, 该监控 模块 203需保证选择模块 206查询到的各緩存服务器 30的状态信息为查询时 刻最新的状态信息。

本发明实施例通过预先加载数据访问协议,使 客户端对分布式緩存控制装 置的访问,以及分布式緩存控制装置对緩存服 务器的访问均能支持多种数据访 问协议; 并可根据各緩存器的状态信息,通过预加载的 路由信息对所使用的緩 存服务器进行灵活切换, 能够更有效、 更灵活实现对分布式緩存的控制。

为了更清楚的说明本发明实施例,下面将对分 布式緩存控制装置的初始化 模块进行详细介绍。

请参见图 3, 为本发明实施例的分布式緩存控制装置的初始 化模块的结构 示意图。

如图 3所示, 该初始化模块 201包括: 协议加载单元 21和路由加载单元 22。 其中:

协议加载单元 21 , 用于根据所述配置模块 202中的配置信息, 预先加载 数据访问协议。

具体实现中,在客户端 10使用该分布式緩存控制装置 20之前, 需要先启 动该分布式緩存控制装置 20, 以进行初始化工作, 该协议加载单元 21在分布 式緩存控制装置 20启动后, 读取配置模块 202中的相关配置信息, 根据该配 置信息进行数据访问协议的加载; 比如: 预先加载 API协议, 或预先加载 IP 协议等, 该预先加载的协议即为后续的数据访问所基于 的协议。 路由加载单元 22, 用于根据所述配置模块 202中的配置信息, 预先加载 路由信息。

具体实现中, 该路由加载单元 22在分布式緩存控制装置 20启动后,读取 配置模块 202中的相关配置信息, 包括: 数据和緩存服务器位置的映射关系、 数据刷新策略信息、 数据加载策略信息、 緩存策略信息、路由策略信息和緩存 服务器的状态信息; 根据读取的配置信息进行路由信息的加载。 具体地, 路由 信息表征了数据和分布式緩存服务器位置的映 射关系, 其存储于配置模块 202 中, 可以优选以路由表的形式存在。

再请参见图 3, 该路由加载单元 22 包括: 算法选择单元 211 , 计算单元 212和路由单元 213。 其中:

算法选择单元 211 , 用于根据所述配置模块 202中的配置信息, 选择路由 算法。 具体实现中, 路由算法的选择根据配置信息中的路由策略等 来确定, 路 由算法包括: 普通哈希算法,哈希取余算法和一致性哈希算 法等各种可用于计 算路由的算法。

计算单元 212, 用于根据所述算法选择单元 211所选择的路由算法, 计算 各緩存数据所在的各个緩存服务器 30。 具体实现中, 比如, 利用上述的哈希 取余算法或一致性哈希算法, 可计算得到各緩存数据分别所在的緩存服务器 。 例如: 总共有 1000个数据进行緩存, 可利用哈希取余算法计算得到, 1-100 的数据存储于緩存服务器 1中, 101-200的数据存储于緩存服务器 2中,以此 类推。 其路由的计算结果也与緩存服务器的緩存策略 相对应。

路由单元 213, 用于根据所述计算单元 212计算出的各个緩存服务器 30, 构建相应的路由信息, 并加载所述路由信息。 具体实现中, 当计算得到各緩存 数据所緩存的緩存服务器后, 由此构建相应的路由信息, 具体实现中, 该路由 信息可以优选以路由表的形式存在, 如下表: 数据 緩存服务器

1-100 緩存服务器 1

101-200 緩存服务器 2 当请求访问 1-100的数据时, 分布式緩存控制装置 20即路由至緩存服务 器 1进行访问; 当请求访问 101-200的数据时, 分布式緩存控制装置 20即路 由至緩存服务器 2进行访问, 其他情况类似分析。

可以理解的是, 上述初始化模块 201对协议以及路由信息的预加载、 以及 上述路由表仅为举例, 其他情况可进行类似的分析。 例如, 预加载的协议可以 进行扩展; 当预加载的协议为 HTTP协议时, 即与现有的緩存系统相兼容; 再 例如,确定路由信息的算法可以进行扩展; 当通过现有的筒单哈希算法构建路 由信息时, 其与现有的緩存系统相兼容; 再如, 该路由信息并不仅限于路由表 的形式,也可以不使用路由表, 直接在数据访问时运用上述的各算法或路由策 略进行计算得到路由,在此不进行赘述。如前 所述, 由于预加载的协议可扩展, 因此,使緩存系统的数据访问不再受到协议的 限制,使分布式緩存的控制更为 灵活。

本发明实施例通过预先加载数据访问协议,使 客户端对分布式緩存控制装 置的访问,以及分布式緩存控制装置对緩存服 务器的访问均能支持多种数据访 问协议; 并可根据各緩存器的状态信息,通过预加载的 路由信息对所使用的緩 存服务器进行灵活切换, 能够更有效、 更灵活实现对分布式緩存的控制。

为了更清楚的说明本发明,下面将对分布式緩 存控制装置的选择模块进行 详细介绍。

请参见图 4, 为本发明的分布式緩存控制装置的选择模块的 实施例的结构 示意图。

如图 4所示, 该选择模块 206包括: 查询单元 61和选择单元 62。 其中: 查询单元 61 , 用于从所述配置模块 202中查询所述路由模块 205查找到 的各緩存服务器 30的状态信息。具体实现中,緩存服务器 30的状态信息包括 运行状态信息、 负载状态信息以及连接状态信息, 该查询单元 61 , 可从所述 配置模块 202中查询各个緩存服务器 30的状态信息, 具体地, 从所述配置模 块 202中查询所述路由模块 205查找到的各个緩存服务器 30的状态信息。

选择单元 62, 用于根据所述查询单元 61查询到的状态信息, 从所述路由 模块 205查找到的緩存服务器 30中选择一个緩存服务器 30作为目标緩存服务 器。 具体实现中, 比如: 该查询单元 61查询到某个緩存服务器无法连接, 或 某个緩存服务器无法运行等,该选择单元 62排除此类发生故障的緩存服务器, 选取正常状态下的緩存服务器作为目标緩存服 务器,以使数据访问能够顺利进 行。

本发明实施例通过预先加载数据访问协议,使 客户端对分布式緩存控制装 置的访问,以及分布式緩存控制装置对緩存服 务器的访问均能支持多种数据访 问协议; 并可根据各緩存器的状态信息,通过预加载的 路由信息对所使用的緩 存服务器进行灵活切换, 能够更有效、 更灵活实现对分布式緩存的控制。

为了更清楚的说明本发明实施例,下面将对分 布式緩存控制装置的响应模 块进行详细介绍。

请参见图 5 , 为本发明的分布式緩存控制装置的响应模块的 实施例的结构 示意图。

如图 5所示, 该响应模块 207包括: 第一发送单元 71 , 获取单元 72和第 二发送单元 73。 其中:

第一发送单元 71 , 用于将所述数据访问请求按照预加载的数据访 问协议 转发至所述目标緩存服务器, 以访问所述目标緩存服务器。 具体实现中, 该第 一发送单元 71通过向目标緩存服务器转发数据访问请求以 问该目标緩存服 务器, 其所基于的数据访问协议由初始化模块 201预先加载, 其可以和客户端 10访问分布式緩存控制装置 20的协议相同, 也可以不同, 其具体根据预先加 载的协议决定。

获取单元 72, 用于从所述目标緩存服务器中获取所述数据访 问请求所请 求的数据。

第二发送单元 73 , 用于将所述获取单元 72获取的数据发送给客户端 10。 进一步参见图 5 , 该响应模块 207还包括: 緩存控制单元 74。

该緩存控制单元 74, 用于控制所述目标緩存服务器更新自身的緩存 数据。 一般地,该緩存控制单元 74还可用于控制远端的緩存服务器 30緩存的生命周 期, 比如: 控制緩存服务器 30从数据库中加载数据, 控制緩存服务器 30刷新 緩存数据等。

本发明实施例通过预先加载数据访问协议,使 客户端对分布式緩存控制装 置的访问,以及分布式緩存控制装置对緩存服 务器的访问均能支持多种数据访 问协议; 并可根据各緩存器的状态信息,通过预加载的 路由信息对所使用的緩 存服务器进行灵活切换, 能够更有效、 更灵活实现对分布式緩存的控制。

为了更清楚的说明本发明实施例,下面将上述 分布式緩存控制装置对分布 式緩存进行控制的方法进行详细介绍。

请参见图 6, 为本发明的分布式緩存控制方法的第一实施例 的流程图。 如 图 6所示, 该分布式緩存控制方法包括:

5101 , 根据配置信息, 预先加载数据访问协议和路由信息。

具体实现中,在客户端 10使用分布式緩存控制装置 20之前, 需要先启动 该分布式緩存控制装置 20, 以进行初始化工作, 在分布式緩存控制装置 20启 动后, 分布式緩存控制装置 20从配置模块 202中读取相关配置信息, 根据该 配置信息进行数据访问协议以及路由信息的加 载; 具体地,对于数据访问协议 的预加载, 比如: 预先加载 API协议, 或预先加载 IP协议等, 该预先加载的 协议即为后续的数据访问所基于的协议。对于 路由信息的预加载需要通过相应 的算法或路由策略来实现,比如,利用上述的 哈希取余算法或一致性哈希算法, 可计算得到各緩存数据分别所在的緩存服务器 30, 根据计算得到的各緩存服 务器 30以及其所緩存的数据, 构建相应的路由信息。 具体实现中, 该路由信 息可以优选以路由表的形式被加载, 并存储于配置模块 202中, 该路由信息表 征了数据和分布式緩存服务器位置的映射关系 。

可以理解的是, 此处预加载的协议以及路由信息仅为举例, 其他情况可进 行类似的分析, 例如, 预加载的协议可以进行扩展; 当预加载的协议为 HTTP 协议时, 即与现有的緩存系统相兼容; 再例如, 确定路由信息的算法可以进行 扩展; 当通过现有的筒单哈希算法构建路由信息时, 其与现有的緩存系统相兼 容; 再如, 该路由信息并不仅限于路由表的形式, 也可以不使用路由表, 直接 在数据访问时运用上述的各算法或路由策略进 行计算得到路由,在此不进行赞 述。

5102, 根据所述预加载的数据访问协议, 接收客户端的数据访问请求。

5103 ,根据所述预加载的路由信息,查找所述数据 问请求所请求的数据 所在的至少一个緩存服务器 30; 如前所述, 数据访问请求所请求的数据可以 存储于某一个緩存服务器 30中, 或同时存储于多个緩存服务器 30中, 分布式 緩存控制装置 20根据预加载的路由信息, 查找相应的数据所在的至少一个緩 存服务器 30。

5104, 根据所述查找到的各緩存服务器 30的状态信息, 选择其中一个緩 存服务器 30作为目标緩存服务器。 具体地, 緩存服务器 30的状态信息, 包括 緩存服务器 30的运行状态信息、 负载状态信息、 连接状态信息等, 分布式緩 存控制装置 20选择处于正常运行状态、 正常负载状态以及正常连接状态的緩 存服务器作为目标緩存服务器。通过本步骤, 可对所使用的緩存服务器进行灵 活切换,当系统中的某个緩存服务器发生故障 时,不影响整个緩存系统的通信, 使緩存服务器集群的单点障碍不会对緩存系统 性能造成任何影响,提高了緩存 系统的性能。

5105 ,将所述数据访问请求按照所述预加载的数据 问协议转发至所述目 标緩存服务器, 以响应所述数据访问请求。

本发明实施例通过预先加载数据访问协议,使 客户端对分布式緩存控制装 置的访问,以及分布式緩存控制装置对緩存服 务器的访问均能支持多种数据访 问协议; 并可根据各緩存器的状态信息,通过预加载的 路由信息对所使用的緩 存服务器进行灵活切换, 能够更有效、 更灵活实现对分布式緩存的控制。

请参见图 7, 为本发明的分布式緩存控制方法的第二实施例 的流程图。 如 图 7所示, 该方法包括:

S201 , 初始化步骤: 用于根据配置信息, 预先加载数据访问协议和路由信 具体实现中,在客户端 10使用分布式緩存控制装置 20之前, 需要先启动 该分布式緩存控制装置 20, 以进行初始化工作, 在分布式緩存控制装置 20启 动后, 分布式緩存控制装置 20即执行初始化步骤, 包括: 读取相关配置信息, 根据该配置信息进行数据访问协议以及路由信 息的加载。具体地,对于数据访 问协议的预加载, 比如: 预先加载 API协议, 或预先加载 IP协议等, 该预先 加载的协议即为后续的数据访问所基于的协议 。对于路由信息的预加载需要通 过相应的算法或路由策略来实现, 比如, 利用上述的哈希取余算法或一致性哈 希算法, 可计算得到各緩存数据分别所在的緩存服务器 30, 根据计算得到的 各緩存服务器 30以及其所緩存的数据, 构建相应的路由信息。 具体实现中, 该路由信息可以路由表的形式存在,其表征了 数据和分布式緩存服务器位置的 映射关系,该路由信息存储于上述分布式緩存 控制装置 20的配置模块 202中, 在分布式緩存控制装置 20启动后,由该初始化步骤对该路由信息进行 加载。

可以理解的是, 此处预加载的协议以及路由信息仅为举例, 其他情况可进 行类似的分析。 例如, 预加载的协议可以进行扩展; 当预加载的协议为 HTTP 协议时, 即与现有的緩存系统相兼容; 再例如, 确定路由信息的算法可以进行 扩展; 当通过现有的筒单哈希算法构建路由信息时, 其与现有的緩存系统相兼 容; 再如, 该路由信息并不仅限于路由表的形式, 也可以不使用路由表, 直接 在数据访问时运用上述的各算法或路由策略进 行计算得到路由,在此不进行赞 述。

5202, 实时监控緩存服务器 30的状态, 根据所述监控结果, 实时更新各 个緩存服务器 30的状态信息。具体的,对緩存服务器 30的监控主要由分布式 緩存控制装置 20的监控模块 203执行, 其主要负责监控各个緩存服务器的状 态, 包括緩存服务器 30的运行状态、 负载状态、 连接状态等, 并实时更新存 储在分布式緩存控制装置 20的配置模块 202中的各緩存服务器 30的状态信 息。

5203 , 根据预加载的数据访问协议, 接收客户端 10的数据访问请求。

5204,根据预加载的路由信息, 查找所述数据访问请求所请求的数据所在 的至少一个緩存服务器 30。 如前所述, 数据访问请求所请求的数据可以存储 于某一个緩存服务器 30中, 或同时存储于多个緩存服务器 30中, S102根据 预加载的路由信息, 查找相应的数据所在的至少一个緩存服务器 30中。

5205 , 查询所述 S204查找到的各緩存服务器 30的状态信息。 具体地, 緩 存服务器 30的状态信息包括运行状态信息、负载状态信 以及连接状态信息。

由于 S205步骤需要查询緩存服务器 30的状态信息, 因此, 通过 S202步 骤可以保证 S205步骤查询到的各緩存服务器 30的状态信息为查询时刻最新的 状态信息, 从而保证了通信的顺利以及系统的稳定性。

5206, 根据所述状态信息, 从所述查找到的緩存服务器 30中选择其中一 个緩存服务器 30作为目标緩存服务器。 具体实现中, 例如: 当 S205查询步骤 查询到某个緩存服务器 30无法连接, 或某个緩存服务器 30无法运行等, 则 S206选择步骤会排除此类发生故障的緩存服务 30, 选取正常状态下的緩存 服务器 30作为目标緩存服务器, 以使数据访问能够顺利进行。

通过 S206步骤, 可对所使用的緩存服务器进行灵活切换, 当系统中的某 个緩存服务器发生故障时, 不影响整个緩存系统的通信,使緩存服务器集 群的 单点障碍不会对緩存系统性能造成任何影响, 提高了緩存系统的性能。

5207 ,将所述数据访问请求按照所述预加载的数据 问协议转发至所述目 标緩存服务器, 以访问所述目标緩存服务器。 具体实现中, 本步骤通过向目标 緩存服务器转发数据访问请求以访问该目标緩 存服务器,其所基于的数据访问 协议由 S201初始化步骤预先加载,其可以和客户端 10访问分布式緩存控制装 置 20的协议相同, 也可以不同, 其具体根据预先加载的协议决定。

5208 , 从所述目标緩存服务器中获取所述数据访问请 求所请求的数据。

5209, 将所述获取的数据发送给所述客户端。

5210, 控制所述目标緩存服务器更新自身的緩存数据 。 具体实现中, S210 发生在步骤 S208之后, 其执行主体为分布式緩存控制装置 20的响应模块 207 中的緩存控制单元 74, —般地该緩存控制单元 74还可进一步用于控制緩存服 务器 30緩存的生命周期, 比如: 控制緩存服务器 30从数据库中加载数据, 控 制緩存服务器 30刷新緩存数据等。

通过上述各实施例的描述, 本发明实施例通过预先加载数据访问协议,使 客户端对分布式緩存控制装置的访问,以及分 布式緩存控制装置对緩存服务器 的访问均能支持多种数据访问协议; 并可根据各緩存器的状态信息,通过预加 载的路由信息对所使用的緩存服务器进行灵活 切换, 能够更有效、 更灵活实现 对分布式緩存的控制。

需要说明的是,通过以上的实施方式的描述, 本领域的技术人员可以清楚 地了解到各实施方式可借助软件加必需的通用 硬件平台的方式来实现,当然也 可以通过硬件。基于这样的理解, 上述技术方案本质上或者说对现有技术做出 贡献的部分可以以软件产品的形式体现出来, 该计算机软件产品可以存储在计 算机可读存储介质中, 如 ROM/RAM、 磁碟、 光盘等, 包括若干指令用以使得 一台计算机设备(可以是个人计算机, 服务器, 或者网络设备等)执行各个实 施例或者实施例的某些部分所述的方法。 以上所揭露的仅为本发明一种较佳实施例而已 ,当然不能以此来限定本发 明之权利范围,本领域普通技术人员可以理解 实现上述实施例的全部或部分流 程, 并依本发明权利要求所作的等同变化, 仍属于发明所涵盖的范围。