CN106936623A - 分布式缓存系统及缓存集群的管理方法 - Google Patents
分布式缓存系统及缓存集群的管理方法 Download PDFInfo
- Publication number
- CN106936623A CN106936623A CN201511034982.7A CN201511034982A CN106936623A CN 106936623 A CN106936623 A CN 106936623A CN 201511034982 A CN201511034982 A CN 201511034982A CN 106936623 A CN106936623 A CN 106936623A
- Authority
- CN
- China
- Prior art keywords
- cache
- cluster
- configuration information
- client
- server
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000007726 management method Methods 0.000 title abstract description 22
- 238000000034 method Methods 0.000 claims abstract description 66
- 230000002159 abnormal effect Effects 0.000 claims description 16
- 230000000977 initiatory effect Effects 0.000 claims description 14
- 230000004083 survival effect Effects 0.000 claims description 9
- 238000012545 processing Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 238000011084 recovery Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 230000001427 coherent effect Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000007547 defect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/0631—Management of faults, events, alarms or notifications using root cause analysis; using analysis of correlation between notifications, alarms or events based on decision criteria, e.g. hierarchy, tree or time analysis
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Environmental & Geological Engineering (AREA)
- Information Transfer Between Computers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种分布式缓存系统及缓存集群的管理方法。该系统包括:多个服务器和缓存web管理器,缓存web管理器用于:分配缓存集群,为缓存集群中的缓存节点分配标识并存储,并在分配缓存集群时向服务器发送启动命令。服务器用于:接收缓存web管理器发送的启动命令,根据启动命令启动服务器上的缓存进程,从缓存web管理器获取服务器上的所有缓存节点的标识,检测所有缓存节点的存活状态,若检测到一缓存节点没有存活,立即重新启动服务器上的缓存进程。本发明提供的分布式缓存系统及缓存集群的管理方法,可实现缓存集群的分配更加便捷,缓存进程的启动不需要人工操作,某一缓存进程宕掉时,可自行恢复,也不需要人工操作,更加方便。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种分布式缓存系统及缓存集群的管理方法。
背景技术
随着各公司web站点访问量的上升,web站点的性能作为影响用户体验的关键因素,遇到越来越多的挑战,单纯的扩容机器已经不能满足需求。缓存作为提高数据访问性能的重要技术,在web站点中的应用越来越广泛。然而,随着各公司缓存技术使用的推广,缓存集群的自动化分配、可靠性保证、高效管理变得越来越重要。
Memcached是一种分布式内存对象缓存系统,用于动态网页应用以减轻数据库负载,它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高网站的访问速度。现有的Memcached缓存系统中,包括Memcached客户端和服务器,一个服务器上有多个缓存节点,每个缓存节点为独立的Memcached缓存进程,多个缓存节点组成缓存集群,当有缓存业务申请时,通过管理员手动启动服务器上的缓存进程,Memcached客户端中预先在配置文件中配置并存储缓存集群以及缓存集群中的缓存节点列表,当Memcached客户端接收到缓存访问请求时,由Memcached客户端根据一致性哈希算法将该缓存访问请求分发到其中一个缓存节点上。
现有的缓存系统存在以下缺陷:服务器上的缓存进程需要通过管理员手动启动,在某一缓存进程宕掉时,也需要通过管理员手动重启恢复,很不方便,在缓存集群中的服务器比较多的情况下,这种缺点更为突出。
发明内容
本发明提供一种分布式缓存系统及缓存集群的管理方法,以解决现有的缓存系统中缓存进程需要人工启动以及在缓存进程宕掉时需要人工重启的问题。
第一方面,本发明提供一种分布式缓存系统,包括:多个服务器和缓存web管理器;其中,
所述缓存web管理器用于:分配缓存集群,为缓存集群中的缓存节点分配标识并存储,并在分配缓存集群时向所述服务器发送启动命令;
所述服务器用于:接收所述缓存web管理器发送的所述启动命令,根据所述启动命令启动所述服务器上的缓存进程,从所述缓存web管理器获取所述服务器上的所有缓存节点的标识,检测所有缓存节点的存活状态,若检测到一缓存节点没有存活,立即重新启动所述服务器上的缓存进程。
进一步地,还包括:配置中心和客户端,所述配置中心用于:
在所述缓存web管理器分配缓存集群或者更新缓存集群中的缓存节点后,将缓存集群的配置信息存储在所述配置中心的内存中,所述配置信息包括:配置生成或更改的时间戳、集群标识ID、所述集群ID对应的缓存集群的缓存节点列表和所述客户端请求所述配置信息的周期;
接收所述客户端周期性发送的请求所述配置信息的命令,读取所述内存,返回所述配置信息给所述客户端;
所述客户端用于:向所述配置中心周期性发送请求所述配置信息的命令,接收所述配置中心返回的所述配置信息。
进一步地,所述缓存web管理器还用于:
在更新缓存集群中的缓存节点之前,更改所述客户端请求所述配置信息的周期。
进一步地,所述客户端具体用于:
首次向所述配置中心发送请求所述配置信息的命令时,若请求失败,则从所述客户端的本地配置文件中读取缓存节点列表,再发起与读取的缓存节点列表中的缓存节点的连接;
接着按照预设周期向所述配置中心发送请求所述配置信息的命令,接收到所述配置中心返回的所述配置信息后,若检测到所述配置信息中的配置生成或更改的时间戳发生变化,则更新所述客户端一致性哈希环中的缓存节点列表,并将所述配置信息更新到所述客户端的本地配置文件中,发起与更新后的缓存节点列表中的缓存节点的连接。
进一步地,所述缓存web管理器还用于:
检测到一服务器宕机后,将发生宕机的服务器上的所有缓存节点迁移至其它空闲服务器。
进一步地,所述缓存web管理器还用于:
检测缓存集群中每个缓存节点的状态,在确定缓存节点状态异常时,发起报警。
第二方面,本发明提供一种缓存集群的管理方法,包括:
缓存web管理器分配缓存集群,为缓存集群中的缓存节点分配标识并存储,并在分配缓存集群时向服务器发送启动命令;
所述服务器接收到所述缓存web管理器发送的所述启动命令后,根据所述启动命令启动所述服务器上的缓存进程;
所述服务器从所述缓存web管理器获取所述服务器上的所有缓存节点的标识,检测所有缓存节点的存活状态,若检测到一缓存节点没有存活,立即重新启动所述服务器上的缓存进程。
进一步地,还包括:
所述缓存web管理器更新缓存集群中的缓存节点;
配置中心在所述缓存web管理器分配缓存集群或者更新缓存集群中的缓存节点后,将缓存集群的配置信息存储在所述配置中心的内存中,所述配置信息包括:配置生成或更改的时间戳、集群标识ID、所述集群ID对应的缓存集群的缓存节点列表和客户端请求所述配置信息的周期;
所述客户端向所述配置中心周期性发送请求所述配置信息的命令;
所述配置中心接收到所述请求所述配置信息的命令后,读取所述内存,返回所述配置信息给所述客户端;
所述客户端接收所述配置中心返回的所述配置信息。
进一步地,所述缓存web管理器在更新缓存集群中的缓存节点之前,还包括:
所述缓存web管理器更改所述客户端请求所述配置信息的周期。
进一步地,所述客户端向所述配置中心周期性发送请求所述配置信息的命令,包括:
所述客户端首次向所述配置中心发送请求所述配置信息的命令时,若请求失败,则从所述客户端的本地配置文件中读取缓存节点列表,再发起与读取的缓存节点列表中的缓存节点的连接;
接着所述客户端按照预设周期向所述配置中心发送请求所述配置信息的命令;
所述客户端接收所述配置中心返回的所述配置信息之后,还包括:
检测所述配置信息中的配置生成或更改的时间戳是否发生变化,若是,则更新所述客户端一致性哈希环中的缓存节点列表,并将所述配置信息更新到所述客户端的本地配置文件中,发起与更新后的缓存节点列表中的缓存节点的连接。
进一步地,还包括:
所述缓存web管理器检测到一服务器宕机后,将发生宕机的服务器上的所有缓存节点迁移至其它空闲服务器。
进一步地,还包括:
所述缓存web管理器检测缓存集群中每个缓存节点的状态,在确定缓存节点状态异常时,发起报警。
本发明提供的分布式缓存系统及缓存集群的管理方法,通过缓存web管理器分配缓存集群,为缓存集群中的缓存节点分配标识并存储,并在分配缓存集群时向服务器发送启动命令,服务器在接收到启动命令后,启动服务器上的缓存进程,这样可实现缓存集群的分配更加便捷,缓存进程的启动不需要人工操作。且通过服务器从缓存web管理器获取该服务器上的所有缓存节点的标识,检测所有缓存节点的存活状态,若检测到一缓存节点没有存活,立即重新启动该服务器上的缓存进程,进而可实现某一缓存进程宕掉时,可自行恢复,也不需要人工操作,更加方便。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明分布式缓存系统实施例一的结构示意图;
图2为本发明分布式缓存系统实施例二的结构示意图;
图3为本发明缓存集群的管理方法实施例一的流程图;
图4为本发明缓存集群的管理方法实施例二的流程图;
图5为本发明缓存集群的管理方法中动态扩容的处理过程示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明分布式缓存系统实施例一的结构示意图,如图1所示,本实施例的系统可以包括:多个服务器11和缓存web管理器12,其中,缓存web管理器12用于:分配缓存集群,为缓存集群中的缓存节点分配标识并存储,并在分配缓存集群时向服务器11发送启动命令。服务器11用于:接收缓存web管理器12发送的启动命令,根据启动命令启动服务器11上的缓存进程,从缓存web管理器12获取服务器11上的所有缓存节点的标识,检测所有缓存节点的存活状态,若检测到一缓存节点没有存活,立即重新启动服务器11上的缓存进程。具体地,系统中还包括客户端,服务器11启动了自身的缓存进程后,通过客户端接收缓存访问请求,并根据缓存访问请求执行相应的缓存服务,如根据一致性哈希算法将该缓存访问请求分发到其中一个缓存节点上。
进一步地,缓存web管理器12还用于:检测到一服务器宕机后,将发生宕机的服务器上的所有缓存节点迁移至其它空闲服务器,这样可以解决在某一服务器宕机后所带来的问题,实现缓存集群的容灾。
进一步地,缓存web管理器还用于:检测缓存集群中每个缓存节点的状态,在确定缓存节点状态异常时,发起报警。具体地,确定缓存节点状态异常,包括以下三种情况:
一、若检测到缓存节点拒绝连接时间超过预设时间,则确定缓存节点状态异常;或者,
二、周期性向缓存节点发送get命令,连续超时时间大于预设时间,或者连续超时次数大于预设次数,则确定缓存节点状态异常;或者,
三、周期性向缓存节点发送stats命令,统计缓存节点状态信息,若命中率低于预设阈值,则确定缓存节点状态异常。
具体地,缓存web管理器12可以使管理员能够自动化分配、部署及管理缓存集群,还可使业务人员能够查看缓存集群详情、缓存节点的状态监控及能够对缓存集群进行报警控制,进而可提供灵活的监控报警,以便管理员做出相应的处理。
本实施例提供的分布式缓存系统,通过缓存web管理器分配缓存集群,为缓存集群中的缓存节点分配标识并存储,并在分配缓存集群时向服务器发送启动命令,服务器在接收到启动命令后,启动服务器上的缓存进程,这样可实现缓存集群的分配更加便捷,缓存进程的启动不需要人工操作。且通过服务器从缓存web管理器获取该服务器上的所有缓存节点的标识,检测所有缓存节点的存活状态,若检测到一缓存节点没有存活,立即重新启动该服务器上的缓存进程,进而可实现某一缓存进程宕掉时,可自行恢复,也不需要人工操作,更加方便。
图2为本发明分布式缓存系统实施例二的结构示意图,如图2所示,本实施例的系统在图1所示系统的基础上,还可以包括:配置中心13和客户端14,配置中心13用于:在缓存web管理器12分配缓存集群或者更新缓存集群中的缓存节点后,将缓存集群的配置信息存储在配置中心13的内存中,该内存如为Redis,配置信息包括:配置生成或更改的时间戳、集群标识(Identity,简称:ID)、集群ID对应的缓存集群的缓存节点列表和客户端请求配置信息的周期,接收客户端14周期性发送的请求配置信息的命令,读取内存,返回配置信息给客户端14。
客户端14用于:向配置中心13周期性发送请求配置信息的命令,接收配置中心13返回的配置信息。进一步地,缓存web管理器12还用于:在更新缓存集群中的缓存节点之前,更改客户端请求配置信息的周期。
其中,客户端14具体用于:首次向配置中心发送请求配置信息的命令时,若请求失败,则从客户端的本地配置文件中读取缓存节点列表,再发起与读取的缓存节点列表中的缓存节点的连接。接着按照预设周期向配置中心发送请求配置信息的命令,接收到配置中心返回的配置信息后,若检测到配置信息中的配置生成或更改的时间戳发生变化,则更新客户端一致性哈希环中的缓存节点列表,并将配置信息更新到客户端的本地配置文件中,发起与更新后的缓存节点列表中的缓存节点的连接。其中,客户端的本地配置文件是缓存集群相关配置的说明,如包括数据中心的IP端口号、集群ID、Key前缀、与服务器建立网络连接的参数、请求最大超时时间、序列化方式等设置。
本实施例中,通过在分布式缓存系统中设置配置中心和客户端,当用户通过缓存web管理器对缓存集群进行分配或更新缓存集群中的缓存节点后,更新缓存集群中的缓存节点例如添加至少一个缓存节点,都通知到配置中心,配置中心存储分配后的缓存集群的配置信息,再通过客户端周期性地从配置中心请求不断更新的缓存集群的配置信息,发起与更新的缓存集群的配置信息中包含的缓存节点的连接,可实现业务程序运行时缓存集群的动态扩容,解决了现有的缓存系统在应用程序启动运行后,可使用的缓存服务内存不可以动态扩容的问题。
进一步地,缓存web管理器还包括缓存申请模块、数据中心管理模块和物理机管理模块,其中,缓存申请模块将原来的oa沟通、邮件申请、邮件审批流程标准化,如处理缓存申请、方便系统管理员查看缓存申请及查看审批,数据中心管理模块添加或删除数据中心,物理机管理模块添加或删除物理机,数据中心管理模块、物理机管理模块方便缓存系统管理员对所有缓存资源统筹规划。
需要说明的是,缓存集群扩容时,不同客户端拉取到新的配置信息的时间不同,短时间内配置可能会不一致,为了降低缓存配置不一致带来的风险,扩容之前,首先需要调整配置拉取间隔,将其缩减到最短,即就是缓存web管理器在更新缓存集群中的缓存节点之前,更改客户端请求配置信息的周期。另外,在集群扩容时,每次只扩展一个节点,客户端稳定运行一段时间后再扩展下一个节点。因为成倍数量的节点扩展,可能会导致客户端一致性哈希环上所有缓存节点重新分布,缓存内存命中率几乎降为零。
本实施例中,进一步地,缓存web管理器12还用于:检测到一服务器宕机后,将发生宕机的服务器上的所有缓存节点迁移至其它空闲服务器。这样可以解决在某一服务器宕机后所带来的问题,实现缓存集群的容灾。
进一步地,缓存web管理器还用于:检测缓存集群中每个缓存节点的状态,在确定缓存节点状态异常时,发起报警。
图3为本发明缓存集群的管理方法实施例一的流程图,如图3所示,本实施例的方法可以包括:
S101、缓存web管理器分配缓存集群,为缓存集群中的缓存节点分配标识并存储,并在分配缓存集群时向服务器发送启动命令。
具体地,用户在缓存web管理器上提交缓存申请,缓存web管理器确定集群ID,数据中心名称、缓存规格等参数。缓存系统管理员选择与机房最近的数据中心,例如以8个节点为单位分配缓存集群,并为每个缓存节点分配一个标识。缓存系统管理员提交分配配置,缓存web管理器会调用zookeeper服务,发送启动命令到服务器,由服务器启动服务器上的缓存进程。
S102、服务器接收到缓存web管理器发送的启动命令后,根据启动命令启动服务器上的缓存进程。
S103、服务器从缓存web管理器获取服务器上的所有缓存节点的标识,检测所有缓存节点的存活状态,若检测到一缓存节点没有存活,立即重新启动服务器上的缓存进程。
其中,服务器启动了自身的缓存进程后,通过客户端接收缓存访问请求,并根据缓存访问请求执行相应的缓存服务,如根据一致性哈希算法将该缓存访问请求分发到其中一个缓存节点上。
进一步地,还可以包括:缓存web管理器检测到一服务器宕机后,将发生宕机的服务器上的所有缓存节点迁移至其它空闲服务器,这样可以解决在某一服务器宕机后所带来的问题,实现缓存集群的容灾。
进一步地,还可以包括:缓存web管理器检测缓存集群中每个缓存节点的状态,在确定缓存节点状态异常时,发起报警。具体地,确定缓存节点状态异常,包括以下三种情况:
一、若检测到缓存节点拒绝连接时间超过预设时间,则确定缓存节点状态异常;或者,
二、周期性向缓存节点发送get命令,连续超时时间大于预设时间,或者连续超时次数大于预设次数,则确定缓存节点状态异常;或者,
三、周期性向缓存节点发送stats命令,统计缓存节点状态信息,若命中率低于预设阈值,则确定缓存节点状态异常。
具体地,缓存web管理器可以使管理员能够自动化分配、部署及管理缓存集群,还可使业务人员能够查看缓存集群详情、缓存节点的状态监控及能够对缓存集群进行报警控制,进而可提供灵活的监控报警,以便管理员做出相应的处理。
本实施例提供的缓存集群的管理方法,通过缓存web管理器分配缓存集群,为缓存集群中的缓存节点分配标识并存储,并在分配缓存集群时向服务器发送启动命令,服务器在接收到启动命令后,启动服务器上的缓存进程,这样可实现缓存集群的分配更加便捷,缓存进程的启动不需要人工操作。且通过服务器从缓存web管理器获取该服务器上的所有缓存节点的标识,检测所有缓存节点的存活状态,若检测到一缓存节点没有存活,立即重新启动该服务器上的缓存进程,进而可实现某一缓存进程宕掉时,可自行恢复,也不需要人工操作,更加方便。
图4为本发明缓存集群的管理方法实施例二的流程图,如图4所示,本实施例的方法在图3所示实施例的基础上,还可以包括:
S201、缓存web管理器更改客户端请求配置信息的周期。
S202、缓存web管理器更新缓存集群中的缓存节点。
S203、配置中心在缓存web管理器分配缓存集群或者更新缓存集群中的缓存节点后,将缓存集群的配置信息存储在配置中心的内存中,配置信息包括:配置生成或更改的时间戳、集群标识ID、集群ID对应的缓存集群的缓存节点列表和客户端请求配置信息的周期。
S204、客户端向配置中心周期性发送请求配置信息的命令。
具体地,客户端首次向配置中心发送请求配置信息的命令时,若请求失败,则从客户端的本地配置文件中读取缓存节点列表,再发起与读取的缓存节点列表中的缓存节点的连接。
接着客户端按照预设周期向配置中心发送请求配置信息的命令。
S205、配置中心接收到请求配置信息的命令后,读取内存,返回配置信息给客户端。
S206、客户端接收配置中心返回的配置信息。
进一步地,客户端接收配置中心返回的配置信息之后,还包括:
检测配置信息中的配置生成或更改的时间戳是否发生变化,若是,则更新客户端一致性哈希环中的缓存节点列表,并将配置信息更新到客户端的本地配置文件中,发起与更新后的缓存节点列表中的缓存节点的连接。
进一步地,还可以包括:缓存web管理器检测到一服务器宕机后,将发生宕机的服务器上的所有缓存节点迁移至其它空闲服务器,这样可以解决在某一服务器宕机后所带来的问题,实现缓存集群的容灾。
进一步地,还可以包括:缓存web管理器检测缓存集群中每个缓存节点的状态,在确定缓存节点状态异常时,发起报警。
本实施例中,通过在分布式缓存系统中设置配置中心和客户端,当用户通过缓存web管理器对缓存集群进行分配或更新缓存集群中的缓存节点后,更新缓存集群中的缓存节点例如添加至少一个缓存节点,都通知到配置中心,配置中心存储分配后的缓存集群的配置信息,再通过客户端周期性地从配置中心请求不断更新的缓存集群的配置信息,发起与更新的缓存集群的配置信息中包含的缓存节点的连接,可实现业务程序运行时缓存集群的动态扩容,解决了现有的缓存系统在应用程序启动运行后,可使用的缓存服务内存不可以动态扩容的问题。
图5为本发明缓存集群的管理方法中动态扩容的处理过程示意图,如图5所示,动态扩容的处理过程包括:
S301、管理员通过缓存web管理器更改要扩容的缓存集群配置信息的拉取间隔,也就是更改客户端请求配置信息的周期,并更新到Redis中。
S302、客户端向配置中心周期性发送请求配置信息的命令。
即就是客户端周期性向配置中心拉取新的配置信息。
S303、配置中心从Redis读取新的配置,返回给客户端新的请求配置信息的周期。
S304、管理员通过缓存web管理器,对缓存集群进行扩容,并更新配置信息到Redis。
S305、缓存web管理器同时向服务器发送命令,启动新分配的缓存节点进程。
S306、客户端按照新的周期周期性向配置中心发送请求配置信息的命令,配置中心从Redis读取新的配置信息,返回给客户端新的缓存集群的配置信息,客户端更新一致性hash环上的缓存节点列表。
S307、客户端向新添加的缓存节点发起连接。
如图5中缓存集群中原有的缓存节点为Memcached#1-Memcached#8一共8个缓存节点,新添加的缓存节点为Memcached#9-Memcached#16。
需要说明的是,缓存集群扩容时,不同客户端拉取到新的配置信息的时间不同,短时间内配置可能会不一致,为了降低缓存配置不一致带来的风险,扩容之前,首先需要调整配置拉取间隔,将其缩减到最短,即就是缓存web管理器在更新缓存集群中的缓存节点之前,更改客户端请求配置信息的周期。另外,在集群扩容时,每次只扩展一个节点,客户端稳定运行一段时间后再扩展下一个节点。因为成倍数量的节点扩展,可能会导致客户端一致性哈希环上所有缓存节点重新分布,缓存内存命中率几乎降为零。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (12)
1.一种分布式缓存系统,其特征在于,包括:多个服务器和缓存web管理器;其中,
所述缓存web管理器用于:分配缓存集群,为缓存集群中的缓存节点分配标识并存储,并在分配缓存集群时向所述服务器发送启动命令;
所述服务器用于:接收所述缓存web管理器发送的所述启动命令,根据所述启动命令启动所述服务器上的缓存进程,从所述缓存web管理器获取所述服务器上的所有缓存节点的标识,检测所有缓存节点的存活状态,若检测到一缓存节点没有存活,立即重新启动所述服务器上的缓存进程。
2.根据权利要求1所述的系统,其特征在于,还包括:配置中心和客户端,所述配置中心用于:
在所述缓存web管理器分配缓存集群或者更新缓存集群中的缓存节点后,将缓存集群的配置信息存储在所述配置中心的内存中,所述配置信息包括:配置生成或更改的时间戳、集群标识ID、所述集群ID对应的缓存集群的缓存节点列表和所述客户端请求所述配置信息的周期;
接收所述客户端周期性发送的请求所述配置信息的命令,读取所述内存,返回所述配置信息给所述客户端;
所述客户端用于:向所述配置中心周期性发送请求所述配置信息的命令,接收所述配置中心返回的所述配置信息。
3.根据权利要求2所述的系统,其特征在于,所述缓存web管理器还用于:
在更新缓存集群中的缓存节点之前,更改所述客户端请求所述配置信息的周期。
4.根据权利要求2所述的系统,其特征在于,所述客户端具体用于:
首次向所述配置中心发送请求所述配置信息的命令时,若请求失败,则从所述客户端的本地配置文件中读取缓存节点列表,再发起与读取的缓存节点列表中的缓存节点的连接;
接着按照预设周期向所述配置中心发送请求所述配置信息的命令,接收到所述配置中心返回的所述配置信息后,若检测到所述配置信息中的配置生成或更改的时间戳发生变化,则更新所述客户端一致性哈希环中的缓存节点列表,并将所述配置信息更新到所述客户端的本地配置文件中,发起与更新后的缓存节点列表中的缓存节点的连接。
5.根据权利要求1-4任一项所述的系统,其特征在于,所述缓存web管理器还用于:
检测到一服务器宕机后,将发生宕机的服务器上的所有缓存节点迁移至其它空闲服务器。
6.根据权利要求1-4任一项所述的系统,其特征在于,所述缓存web管理器还用于:
检测缓存集群中每个缓存节点的状态,在确定缓存节点状态异常时,发起报警。
7.一种缓存集群的管理方法,其特征在于,包括:
缓存web管理器分配缓存集群,为缓存集群中的缓存节点分配标识并存储,并在分配缓存集群时向服务器发送启动命令;
所述服务器接收到所述缓存web管理器发送的所述启动命令后,根据所述启动命令启动所述服务器上的缓存进程;
所述服务器从所述缓存web管理器获取所述服务器上的所有缓存节点的标识,检测所有缓存节点的存活状态,若检测到一缓存节点没有存活,立即重新启动所述服务器上的缓存进程。
8.根据权利要求7所述的方法,其特征在于,还包括:
所述缓存web管理器更新缓存集群中的缓存节点;
配置中心在所述缓存web管理器分配缓存集群或者更新缓存集群中的缓存节点后,将缓存集群的配置信息存储在所述配置中心的内存中,所述配置信息包括:配置生成或更改的时间戳、集群标识ID、所述集群ID对应的缓存集群的缓存节点列表和客户端请求所述配置信息的周期;
所述客户端向所述配置中心周期性发送请求所述配置信息的命令;
所述配置中心接收到所述请求所述配置信息的命令后,读取所述内存,返回所述配置信息给所述客户端;
所述客户端接收所述配置中心返回的所述配置信息。
9.根据权利要求8所述的方法,其特征在于,所述缓存web管理器在更新缓存集群中的缓存节点之前,还包括:
所述缓存web管理器更改所述客户端请求所述配置信息的周期。
10.根据权利要求8所述的方法,其特征在于,所述客户端向所述配置中心周期性发送请求所述配置信息的命令,包括:
所述客户端首次向所述配置中心发送请求所述配置信息的命令时,若请求失败,则从所述客户端的本地配置文件中读取缓存节点列表,再发起与读取的缓存节点列表中的缓存节点的连接;
接着所述客户端按照预设周期向所述配置中心发送请求所述配置信息的命令;
所述客户端接收所述配置中心返回的所述配置信息之后,还包括:
检测所述配置信息中的配置生成或更改的时间戳是否发生变化,若是,则更新所述客户端一致性哈希环中的缓存节点列表,并将所述配置信息更新到所述客户端的本地配置文件中,发起与更新后的缓存节点列表中的缓存节点的连接。
11.根据权利要求7-10任一项所述的方法,其特征在于,还包括:
所述缓存web管理器检测到一服务器宕机后,将发生宕机的服务器上的所有缓存节点迁移至其它空闲服务器。
12.根据权利要求7-10任一项所述的方法,其特征在于,还包括:
所述缓存web管理器检测缓存集群中每个缓存节点的状态,在确定缓存节点状态异常时,发起报警。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201511034982.7A CN106936623A (zh) | 2015-12-31 | 2015-12-31 | 分布式缓存系统及缓存集群的管理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201511034982.7A CN106936623A (zh) | 2015-12-31 | 2015-12-31 | 分布式缓存系统及缓存集群的管理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106936623A true CN106936623A (zh) | 2017-07-07 |
Family
ID=59444391
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201511034982.7A Pending CN106936623A (zh) | 2015-12-31 | 2015-12-31 | 分布式缓存系统及缓存集群的管理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106936623A (zh) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107463630A (zh) * | 2017-07-14 | 2017-12-12 | 太仓诚泽网络科技有限公司 | 多端网页控制系统 |
CN108540533A (zh) * | 2018-03-14 | 2018-09-14 | 聚好看科技股份有限公司 | 一种应答请求的方法和装置 |
CN109039804A (zh) * | 2018-07-12 | 2018-12-18 | 武汉斗鱼网络科技有限公司 | 一种文件读取方法和电子设备 |
CN109634746A (zh) * | 2018-12-05 | 2019-04-16 | 四川长虹电器股份有限公司 | 一种web集群缓存的利用系统及优化方法 |
CN109657005A (zh) * | 2018-12-10 | 2019-04-19 | 浪潮(北京)电子信息产业有限公司 | 一种分布式集群系统的数据缓存方法、装置及设备 |
CN110399272A (zh) * | 2019-07-29 | 2019-11-01 | 中国工商银行股份有限公司 | 日志处理设备、方法、电子设备及计算机可读存储介质 |
CN110399271A (zh) * | 2019-07-29 | 2019-11-01 | 中国工商银行股份有限公司 | 日志处理设备、方法、电子设备及计算机可读存储介质 |
CN111107120A (zh) * | 2018-10-29 | 2020-05-05 | 亿阳信通股份有限公司 | 一种Redis集群的构建方法及系统 |
CN111242620A (zh) * | 2020-01-15 | 2020-06-05 | 阳光易购(湖南)科技有限公司 | 区块链交易系统的数据缓存及查询方法、终端及存储介质 |
CN111541555A (zh) * | 2020-03-24 | 2020-08-14 | 中国平安人寿保险股份有限公司 | 群聊优化方法及相关产品 |
CN111639061A (zh) * | 2020-05-26 | 2020-09-08 | 深圳壹账通智能科技有限公司 | Redis集群中数据管理方法、装置、介质及电子设备 |
CN115001956A (zh) * | 2022-05-24 | 2022-09-02 | 中国平安财产保险股份有限公司 | 服务器集群的运行方法、装置、设备及存储介质 |
CN117251341A (zh) * | 2023-09-27 | 2023-12-19 | 中国科学院空天信息创新研究院 | 缓存服务集群实时监控方法、装置、电子设备及介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050172076A1 (en) * | 2004-01-30 | 2005-08-04 | Gateway Inc. | System for managing distributed cache resources on a computing grid |
CN101710341A (zh) * | 2009-12-22 | 2010-05-19 | 北京航空航天大学 | 一种透明、通用的文件缓存系统 |
US20120331084A1 (en) * | 2011-06-24 | 2012-12-27 | Motorola Mobility, Inc. | Method and System for Operation of Memory System Having Multiple Storage Devices |
CN103475690A (zh) * | 2013-06-17 | 2013-12-25 | 携程计算机技术(上海)有限公司 | Memcached节点配置方法及装置 |
CN104580432A (zh) * | 2014-12-23 | 2015-04-29 | 上海帝联信息科技股份有限公司 | memcached系统及内存缓存数据提供、维护和集群维护方法及装置 |
CN104823170A (zh) * | 2012-11-26 | 2015-08-05 | 亚马逊技术股份有限公司 | 分布式缓存群集管理 |
-
2015
- 2015-12-31 CN CN201511034982.7A patent/CN106936623A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050172076A1 (en) * | 2004-01-30 | 2005-08-04 | Gateway Inc. | System for managing distributed cache resources on a computing grid |
CN101710341A (zh) * | 2009-12-22 | 2010-05-19 | 北京航空航天大学 | 一种透明、通用的文件缓存系统 |
US20120331084A1 (en) * | 2011-06-24 | 2012-12-27 | Motorola Mobility, Inc. | Method and System for Operation of Memory System Having Multiple Storage Devices |
CN104823170A (zh) * | 2012-11-26 | 2015-08-05 | 亚马逊技术股份有限公司 | 分布式缓存群集管理 |
CN103475690A (zh) * | 2013-06-17 | 2013-12-25 | 携程计算机技术(上海)有限公司 | Memcached节点配置方法及装置 |
CN104580432A (zh) * | 2014-12-23 | 2015-04-29 | 上海帝联信息科技股份有限公司 | memcached系统及内存缓存数据提供、维护和集群维护方法及装置 |
Non-Patent Citations (1)
Title |
---|
郭栋等: "基于Memcached的缓存资源集中管理方法", 《计算机技术与发展》 * |
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107463630A (zh) * | 2017-07-14 | 2017-12-12 | 太仓诚泽网络科技有限公司 | 多端网页控制系统 |
CN108540533A (zh) * | 2018-03-14 | 2018-09-14 | 聚好看科技股份有限公司 | 一种应答请求的方法和装置 |
CN108540533B (zh) * | 2018-03-14 | 2021-01-22 | 聚好看科技股份有限公司 | 一种应答请求的方法和装置 |
CN109039804B (zh) * | 2018-07-12 | 2020-08-25 | 武汉斗鱼网络科技有限公司 | 一种文件读取方法和电子设备 |
CN109039804A (zh) * | 2018-07-12 | 2018-12-18 | 武汉斗鱼网络科技有限公司 | 一种文件读取方法和电子设备 |
CN111107120B (zh) * | 2018-10-29 | 2022-09-02 | 亿阳信通股份有限公司 | 一种Redis集群的构建方法及系统 |
CN111107120A (zh) * | 2018-10-29 | 2020-05-05 | 亿阳信通股份有限公司 | 一种Redis集群的构建方法及系统 |
CN109634746A (zh) * | 2018-12-05 | 2019-04-16 | 四川长虹电器股份有限公司 | 一种web集群缓存的利用系统及优化方法 |
CN109657005A (zh) * | 2018-12-10 | 2019-04-19 | 浪潮(北京)电子信息产业有限公司 | 一种分布式集群系统的数据缓存方法、装置及设备 |
CN110399271A (zh) * | 2019-07-29 | 2019-11-01 | 中国工商银行股份有限公司 | 日志处理设备、方法、电子设备及计算机可读存储介质 |
CN110399272B (zh) * | 2019-07-29 | 2022-02-18 | 中国工商银行股份有限公司 | 日志处理设备、方法、电子设备及计算机可读存储介质 |
CN110399272A (zh) * | 2019-07-29 | 2019-11-01 | 中国工商银行股份有限公司 | 日志处理设备、方法、电子设备及计算机可读存储介质 |
CN111242620A (zh) * | 2020-01-15 | 2020-06-05 | 阳光易购(湖南)科技有限公司 | 区块链交易系统的数据缓存及查询方法、终端及存储介质 |
CN111541555A (zh) * | 2020-03-24 | 2020-08-14 | 中国平安人寿保险股份有限公司 | 群聊优化方法及相关产品 |
CN111639061A (zh) * | 2020-05-26 | 2020-09-08 | 深圳壹账通智能科技有限公司 | Redis集群中数据管理方法、装置、介质及电子设备 |
CN115001956A (zh) * | 2022-05-24 | 2022-09-02 | 中国平安财产保险股份有限公司 | 服务器集群的运行方法、装置、设备及存储介质 |
CN115001956B (zh) * | 2022-05-24 | 2023-06-16 | 中国平安财产保险股份有限公司 | 服务器集群的运行方法、装置、设备及存储介质 |
CN117251341A (zh) * | 2023-09-27 | 2023-12-19 | 中国科学院空天信息创新研究院 | 缓存服务集群实时监控方法、装置、电子设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106936623A (zh) | 分布式缓存系统及缓存集群的管理方法 | |
CN109842651B (zh) | 一种业务不间断的负载均衡方法和系统 | |
US10511480B2 (en) | Message flow management for virtual networks | |
CN110830283B (zh) | 故障检测方法、装置、设备和系统 | |
CN108132837B (zh) | 一种分布式集群调度系统及方法 | |
CN105049502B (zh) | 一种云端网络管理系统中设备软件更新的方法和装置 | |
US9608831B2 (en) | Migrating a chat message service provided by a chat server to a new chat server | |
CN107404509B (zh) | 分布式服务配置系统及信息管理方法 | |
EP3232609B1 (en) | Locking request processing method and server | |
US11153173B1 (en) | Dynamically updating compute node location information in a distributed computing environment | |
CN104506654B (zh) | 云计算系统及动态主机配置协议服务器备份方法 | |
CN113905005A (zh) | 即时通讯的客户端状态更新方法和装置 | |
JP2016162389A (ja) | シンクライアントシステム、接続管理装置、仮想マシン稼働装置、方法、および、プログラム | |
CN106021070A (zh) | 服务器集群监测方法及装置 | |
CN106685784A (zh) | 虚拟化网络功能vnf实例的伸缩方法及装置 | |
CN106533751B (zh) | 一种sdn控制器集群合并方法及装置 | |
CN108200151B (zh) | 一种分布式存储系统中ISCSI Target负载均衡方法和装置 | |
CN109818785B (zh) | 一种数据处理方法、服务器集群及存储介质 | |
CN108509296B (zh) | 一种处理设备故障的方法和系统 | |
JP6115396B2 (ja) | 情報処理システム,情報処理装置,情報処理装置の制御プログラム,及び情報処理システムの制御方法 | |
CN108228272B (zh) | Web容器生成处理方法、设备以及服务器 | |
CN113726546A (zh) | 配置方法、装置、系统、计算设备及存储介质 | |
CN106792843B (zh) | 一种设备管理方法及装置 | |
CN109005071B (zh) | 一种决策部署方法和调度设备 | |
CN107547622B (zh) | 一种资源调整方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170707 |
|
RJ01 | Rejection of invention patent application after publication |