一种分布式缓存控制方法、装置及系统的制作方法

文档序号:7741264阅读:84来源:国知局
专利名称:一种分布式缓存控制方法、装置及系统的制作方法
技术领域
本发明涉及通信领域,尤其涉及一种分布式缓存控制方法、装置及系统。

背景技术
随着各种系统数据量、用户量、并发量的大幅度增长,越来越多的系统采用缓存来提高系统的性能。单纯的本地缓存或者单机缓存因为资源有限,对系统性能的提升有限,因此,分布式缓存应运而生,成为了提高系统性能的应用主流。
如何在分布式的不同服务器中分配缓存的数据以及对缓存的访问,对系统的资源利用和性能有着很大的影响。鉴于此,目前有许多关于如何对分布式缓存进行控制的研究。现有的分布式缓存控制系统主要采用负载均衡技术,其技术方案为在缓存服务器集群和客户端之间设置一台或多台或多层负载均衡服务器,客户端发送数据访问请求至负载均衡服务器,由负载均衡服务器转发至缓存集群中相应的某台缓存服务器。
发明人在实施本发明的过程中发现,现有的分布式缓存控制系统无法对分布式缓存服务器进行灵活控制,其主要存在以下缺陷 1、对协议有固定要求。现有的系统中,客户端访问负载均衡服务器,负载均衡服务器访问缓存服务器,均要求采用HTTP协议(Hypertext TransferProtocol,超文本传输协议); 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的配置模块中;根据该配置信息进行数据访问协议以及路由信息的加载;具体地,对于数据访问协议的预加载,比如预先加载API(ApplicationProgramming Interface,应用程序编程接口)协议,或预先加载IP协议(InternetProtocol,网络之间互连协议)等,该预先加载的协议即为后续的数据访问所基于的协议。对于路由信息的预加载需要通过相应的算法或路由策略来实现,比如,利用上述的哈希取余算法或一致性哈希算法,可计算得到各缓存数据分别所在的缓存服务器,由此构建相应的路由信息,具体实现中,该路由信息可以路由表的形式存在,其表征了数据和分布式缓存服务器位置的映射关系,该路由信息存储于上述配置模块中,在分布式缓存控制装置20启动后,由该初始化模块201对该路由信息进行预加载。
可以理解的是,此处预加载的协议以及路由信息仅为举例,其他情况可进行类似的分析,例如,预加载的协议可以进行扩展;当预加载的协议为HTTP协议时,即与现有的缓存系统相兼容;例如确定路由信息的算法可以进行扩展;当通过现有的简单哈希算法构建路由信息时,其与现有的缓存系统相兼容;再如该路由信息并不仅限于路由表的形式,也可以不使用路由表,直接在数据访问时运用上述的各算法或路由策略进行计算得到路由,在此不进行赘述。如前所述,由于预加载的协议可扩展,因此,使缓存系统的数据访问不再受到协议的限制,使分布式缓存的控制更为灵活。
该配置模块202,用于存储配置信息,所述配置信息包括数据和缓存服务器位置的映射关系、数据刷新策略信息、数据加载策略信息、缓存策略信息、路由策略信息和缓存服务器的状态信息中的任一种或多种。具体实现中,该配置模块202对分布式缓存控制装置的相关配置信息进行统一管理,并根据应用更新其配置信息,以供其他模块(比如初始化模块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的数据时,分布式缓存控制装置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。
进一步参见图4,该响应模块207还包括缓存控制单元74。
该缓存控制单元74,用于控制所述目标缓存服务器更新自身的缓存数据;一般地,该缓存控制单元74还用于控制远端的缓存服务器30缓存的生命周期,比如控制缓存服务器30从数据库中加载数据,控制缓存服务器30刷新缓存数据等。
本发明通过预先加载数据访问协议,使客户端对分布式缓存控制装置的访问,以及分布式缓存控制装置对缓存服务器的访问均能支持多种数据访问协议;并可根据各缓存器的状态信息,通过预加载的路由信息对所使用的缓存服务器进行灵活切换,能够更有效、更灵活实现对分布式缓存的控制。
为了更清楚的说明本发明,下面将上述分布式缓存控制装置对分布式缓存进行控制的方法进行详细介绍。
请参见图6,为本发明的分布式缓存控制方法的第一实施例的流程图;如图6所示,该分布式缓存控制方法包括 S101,根据配置信息,预先加载数据访问协议和路由信息; 具体实现中,在客户端10使用分布式缓存控制装置20之前,需要先启动该分布式缓存控制装置20,以进行初始化工作,在分布式缓存控制装置20启动后,分布式缓存控制装置20从配置模块202中读取相关配置信息,根据该配置信息进行数据访问协议以及路由信息的加载;具体地,对于数据访问协议的预加载,比如预先加载API协议,或预先加载IP协议等,该预先加载的协议即为后续的数据访问所基于的协议。对于路由信息的预加载需要通过相应的算法或路由策略来实现,比如,利用上述的哈希取余算法或一致性哈希算法,可计算得到各缓存数据分别所在的缓存服务器30,根据计算得到的各缓存服务器30以及其所缓存的数据,构建相应的路由信息,具体实现中,该路由信息以路由表的形式被加载,并存储于配置模块202中,该路由信息表征了数据和分布式缓存服务器位置的映射关系。
可以理解的是,此处预加载的协议以及路由信息仅为举例,其他情况可进行类似的分析,例如,预加载的协议可以进行扩展;当预加载的协议为HTTP协议时,即与现有的缓存系统相兼容;例如确定路由信息的算法可以进行扩展;当通过现有的简单哈希算法构建路由信息时,其与现有的缓存系统相兼容;再如该路由信息并不仅限于路由表的形式,也可以不使用路由表,直接在数据访问时运用上述的各算法或路由策略进行计算得到路由,在此不进行赘述。
S102,根据所述预加载的数据访问协议,接收客户端的数据访问请求; S103,根据所述预加载的路由信息,查找所述数据访问请求所请求的数据所在的至少一个缓存服务器30;如前所述,数据访问请求所请求的数据可以存储于某一个缓存服务器30中,或同时存储于多个缓存服务器30中,分布式缓存控制装置20根据预加载的路由信息,查找相应的数据所在的至少一个缓存服务器30。
S104,根据所述查找到的各缓存服务器30的状态信息,选择其中一个缓存服务器30作为目标缓存服务器;具体地,缓存服务器30的状态信息,包括缓存服务器30的运行状态信息、负载状态信息、连接状态信息等,分布式缓存控制装置20选择处于正常运行状态、正常负载状态以及正常连接状态的缓存服务器作为目标缓存服务器。通过本步骤,可对所使用的缓存服务器进行灵活切换,当系统中的某个缓存服务器发生故障时,不影响整个缓存系统的通信,使缓存服务器集群的单点障碍不会对缓存系统性能造成任何影响,提高了缓存系统的性能。
S105,将所述数据访问请求按照所述预加载的数据访问协议转发至所述目标缓存服务器,以响应所述数据访问请求。
本发明通过预先加载数据访问协议,使客户端对分布式缓存控制装置的访问,以及分布式缓存控制装置对缓存服务器的访问均能支持多种数据访问协议;并可根据各缓存器的状态信息,通过预加载的路由信息对所使用的缓存服务器进行灵活切换,能够更有效、更灵活实现对分布式缓存的控制。
请参见图7,为本发明的分布式缓存控制方法的第二实施例的流程图;如图7所示,该方法包括 S201,初始化步骤用于根据配置信息,预先加载数据访问协议和路由信息; 具体实现中,在客户端10使用分布式缓存控制装置20之前,需要先启动该分布式缓存控制装置20,以进行初始化工作,在分布式缓存控制装置20启动后,分布式缓存控制装置20即执行初始化步骤,包括读取相关配置信息,根据该配置信息进行数据访问协议以及路由信息的加载;具体地,对于数据访问协议的预加载,比如预先加载API协议,或预先加载IP协议等,该预先加载的协议即为后续的数据访问所基于的协议。对于路由信息的预加载需要通过相应的算法或路由策略来实现,比如,利用上述的哈希取余算法或一致性哈希算法,可计算得到各缓存数据分别所在的缓存服务器30,根据计算得到的各缓存服务器30以及其所缓存的数据,构建相应的路由信息,具体实现中,该路由信息可以路由表的形式存在,其表征了数据和分布式缓存服务器位置的映射关系,该路由信息存储于上述分布式缓存控制装置20的配置模块202中,在分布式缓存控制装置20启动后,由该初始化步骤对该路由信息进行预加载。
可以理解的是,此处预加载的协议以及路由信息仅为举例,其他情况可进行类似的分析,例如,预加载的协议可以进行扩展;当预加载的协议为HTTP协议时,即与现有的缓存系统相兼容;例如确定路由信息的算法可以进行扩展;当通过现有的简单哈希算法构建路由信息时,其与现有的缓存系统相兼容;再如该路由信息并不仅限于路由表的形式,也可以不使用路由表,直接在数据访问时运用上述的各算法或路由策略进行计算得到路由,在此不进行赘述。
S202,实时监控缓存服务器30的状态,根据所述监控结果,实时更新各个缓存服务器30的状态信息。具体的,对缓存服务器30的监控主要由分布式缓存控制装置20的监控模块203执行,其主要负责监控各个缓存服务器的状态,包括缓存服务器30的运行状态、负载状态、连接状态等,并实时更新存储在分布式缓存控制装置20的配置模块202中的各缓存服务器30的状态信息。
S203,根据预加载的数据访问协议,接收客户端10的数据访问请求。
S204,根据预加载的路由信息,查找所述数据访问请求所请求的数据所在的至少一个缓存服务器30。如前所述,数据访问请求所请求的数据可以存储于某一个缓存服务器30中,或同时存储于多个缓存服务器30中,S102根据预加载的路由信息,查找相应的数据所在的至少一个缓存服务器30中。
S205,查询所述S204查找到的各缓存服务器30的状态信息;具体地,缓存服务器30的状态信息包括运行状态信息、负载状态信息以及连接状态信息; S206,根据所述状态信息,从所述查找到的缓存服务器30中选择其中一个缓存服务器30作为目标缓存服务器。具体实现中,例如当S205查询步骤查询到某个缓存服务器30无法连接,或某个缓存服务器30无法运行等,则S206会排除此类发生故障的缓存服务器30,选取正常状态下的缓存服务器30作为目标缓存服务器,以使数据访问能够顺利进行。由于本步骤需要查询缓存服务器30的状态信息,因此,为了保证通信的顺利以及系统的稳定性,在S206从配置模块202中查询缓存服务器30的状态信息时,该S202需保证S206查询到的各缓存服务器30的状态信息为查询时刻最新的状态信息。通过S206,可对所使用的缓存服务器进行灵活切换,当系统中的某个缓存服务器发生故障时,不影响整个缓存系统的通信,使缓存服务器集群的单点障碍不会对缓存系统性能造成任何影响,提高了缓存系统的性能。
S207,将所述数据访问请求按照所述预加载的数据访问协议转发至所述目标缓存服务器,以访问所述目标缓存服务器;具体实现中,本步骤通过向目标缓存服务器转发数据访问请求以访问该目标缓存服务器,其所基于的数据访问协议由初始化步骤预先加载,其可以和客户端10访问分布式缓存控制装置20的协议相同,也可以不同,其具体根据预先加载的协议决定。
S208,从所述目标缓存服务器中获取所述数据访问请求所请求的数据; S209,将所述获取的数据发送给所述客户端。
S210,控制所述目标缓存服务器更新自身的缓存数据;具体实现中,S210发生在步骤S208之后,其执行主体为分布式缓存控制装置20的响应模块207中的缓存控制单元74,一般地该缓存控制单元74还用于控制缓存服务器30缓存的生命周期,比如控制缓存服务器30从数据库中加载数据,控制缓存服务器30刷新缓存数据等。
通过上述各实施例的描述,本发明通过预先加载数据访问协议,使客户端对分布式缓存控制装置的访问,以及分布式缓存控制装置对缓存服务器的访问均能支持多种数据访问协议;并可根据各缓存器的状态信息,通过预加载的路由信息对所使用的缓存服务器进行灵活切换,能够更有效、更灵活实现对分布式缓存的控制。
以上所揭露的仅为本发明一种较佳实施例而已,当然不能以此来限定本发明之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本发明权利要求所作的等同变化,仍属于发明所涵盖的范围。
权利要求
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.一种分布式缓存控制系统,包括客户端和多个缓存服务器,其特征在于,还包括分布式缓存控制装置,
所述客户端,用于向所述分布式缓存控制装置发送数据访问请求,并接收所述分布式缓存控制装置所发送的所述数据访问请求所请求的数据;
所述分布式缓存控制装置,用于根据配置信息,预先加载数据访问协议和路由信息;根据所述预加载的数据访问协议,接收客户端的数据访问请求;根据所述预加载的路由信息,查找所述数据访问请求所请求的数据所在的至少一个缓存服务器;根据所述查找到的各缓存服务器的状态信息,选择其中一个缓存服务器作为目标缓存服务器;将所述数据访问请求按照所述预加载的数据访问协议转发至所述目标缓存服务器,以响应所述数据访问请求;
所述缓存服务器,用于接收所述分布式缓存控制装置所发送的所述数据访问请求,并提供所述数据访问请求的数据给所述分布式缓存控制装置,以使所述分布式缓存控制装置响应所述客户端的数据访问请求。
全文摘要
本发明公开了一种分布式缓存控制方法,包括根据配置信息,预先加载数据访问协议和路由信息;根据预加载的数据访问协议,接收客户端的数据访问请求;根据预加载的路由信息,查找所述数据访问请求所请求的数据所在的至少一个缓存服务器;根据所述查找到的各缓存服务器的状态信息,选择其中一个缓存服务器作为目标缓存服务器;将所述数据访问请求按照所述预加载的数据访问协议转发至所述目标缓存服务器,以响应所述数据访问请求。相应地,本发明还公开了一种分布式缓存控制装置和系统。本发明能够支持多种数据访问协议,并可根据缓存服务器的状态信息,对所使用的缓存服务器进行灵活切换,实现对分布式缓存的灵活控制。
文档编号H04L12/56GK101764824SQ20101010454
公开日2010年6月30日 申请日期2010年1月28日 优先权日2010年1月28日
发明者蔡振兴 申请人:深圳市同洲电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1