CN106936623A - 分布式缓存系统及缓存集群的管理方法 - Google Patents

分布式缓存系统及缓存集群的管理方法 Download PDF

Info

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
caching
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
Application number
CN201511034982.7A
Other languages
English (en)
Inventor
姜中明
刘丹
文立家
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing 58 Information Technology Co Ltd
Original Assignee
Beijing 58 Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing 58 Information Technology Co Ltd filed Critical Beijing 58 Information Technology Co Ltd
Priority to CN201511034982.7A priority Critical patent/CN106936623A/zh
Publication of CN106936623A publication Critical patent/CN106936623A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols 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]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0631Management 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring 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管理器检测缓存集群中每个缓存节点的状态,在确定缓存节点状态异常时,发起报警。
CN201511034982.7A 2015-12-31 2015-12-31 分布式缓存系统及缓存集群的管理方法 Pending CN106936623A (zh)

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 (12)

* Cited by examiner, † Cited by third party
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 中国平安财产保险股份有限公司 服务器集群的运行方法、装置、设备及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
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 亚马逊技术股份有限公司 分布式缓存群集管理

Patent Citations (6)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Title
郭栋等: "基于Memcached的缓存资源集中管理方法", 《计算机技术与发展》 *

Cited By (17)

* Cited by examiner, † Cited by third party
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 中国平安财产保险股份有限公司 服务器集群的运行方法、装置、设备及存储介质

Similar Documents

Publication Publication Date Title
CN106936623A (zh) 分布式缓存系统及缓存集群的管理方法
CN109831500B (zh) Kubernetes集群中配置文件与Pod的同步方法
CN104715001B (zh) 用于对数据处理系统的集群中的共享资源执行写入操作的方法和系统
US9892006B2 (en) Non-blocking listener registration in the presence of data grid nodes joining the cluster
US9367261B2 (en) Computer system, data management method and data management program
CN105049502B (zh) 一种云端网络管理系统中设备软件更新的方法和装置
CN105069152B (zh) 数据处理方法及装置
US9537951B2 (en) Management of network devices within a dispersed data storage network
CN103024065A (zh) 用于云存储系统的系统配置管理方法
CN113010496B (zh) 一种数据迁移方法、装置、设备和存储介质
CN106603319A (zh) 一种故障处理的方法、管理服务器以及逻辑服务器
CN107404509A (zh) 分布式服务配置系统及信息管理方法
CN106713391A (zh) 一种session信息的共享方法和共享系统
CN108228393A (zh) 一种可扩展的大数据高可用的实现方法
JP2016162389A (ja) シンクライアントシステム、接続管理装置、仮想マシン稼働装置、方法、および、プログラム
CN110334079B (zh) 一种数据迁移方法及装置
CN104516744A (zh) 软件更新方法及系统
US8117181B2 (en) System for notification of group membership changes in directory service
EP3570169B1 (en) Method and system for processing device failure
CN108200151B (zh) 一种分布式存储系统中ISCSI Target负载均衡方法和装置
CN105323271B (zh) 一种云计算系统以及云计算系统的处理方法和装置
CN113726546A (zh) 配置方法、装置、系统、计算设备及存储介质
CN106657360A (zh) 一种Linux系统下NIS服务器的同步方法和系统
CN106792843B (zh) 一种设备管理方法及装置
CN116346834A (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