CN107463468A - 缓存管理方法及其设备 - Google Patents

缓存管理方法及其设备 Download PDF

Info

Publication number
CN107463468A
CN107463468A CN201610387869.5A CN201610387869A CN107463468A CN 107463468 A CN107463468 A CN 107463468A CN 201610387869 A CN201610387869 A CN 201610387869A CN 107463468 A CN107463468 A CN 107463468A
Authority
CN
China
Prior art keywords
cluster
cache
cache cluster
caching
response time
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
CN201610387869.5A
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 Jingdong Century Trading Co Ltd
Beijing Jingdong Shangke Information Technology Co Ltd
Original Assignee
Beijing Jingdong Century Trading Co Ltd
Beijing Jingdong Shangke 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 Jingdong Century Trading Co Ltd, Beijing Jingdong Shangke Information Technology Co Ltd filed Critical Beijing Jingdong Century Trading Co Ltd
Priority to CN201610387869.5A priority Critical patent/CN107463468A/zh
Publication of CN107463468A publication Critical patent/CN107463468A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2017Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where memory access, memory control or I/O control functionality is redundant
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明提供了一种用于管理缓存的缓存管理方法及其设备,其中,所管理的缓存包括多个分布式缓存集群。该方法包括:获取所述多个分布式缓存集群中每个缓存集群的存活状况和响应时间;根据存活状况和响应时间为每个缓存集群分配缓存权重;以及选择缓存权重最高的缓存集群作为数据读写的缓存主集群。上述方案通过对集群健康状态进行监控,对异常情况及时调整反馈,将手动切换缓存集群方式修改为自动切换,有效的提升了系统的响应时间和处理效率。

Description

缓存管理方法及其设备
技术领域
本发明涉及缓存管理领域,具体地,涉及用于管理缓存的方法及其设备。
背景技术
互联网电商行业与传统行业相比具有数据量大,用户访问频率高等特点,与传统行业常见的长尾效应不同的是用户往往更倾向于浏览比较热门的商品,基于此,传统的数据库连接池已很难满足这种应用场景,因此使用缓存便是各大公司的首选。当下使用较多的缓存数据库是Redis。Redis自带的Sentinel主从切换和集群模式为其实现分布式扩展提供了有利的基础。
Sentinel作为保障Redis主从备份的一种高可靠解决方案,其原理是监视多个主从服务器,当某一台主服务器下线时,系统根据先到先得原则将最先申请升级的从服务器升为主服务器,防止了主服务器的宕机带来的系统瘫痪,使数据库的可靠性得到了保障。同时Redis集群使用分片作为Redis的一种分布式数据库解决方案,在系统发生故障的同时能够有效的进行数据复制和故障转移,保证了数据的强一致性。
图1示出了根据现有技术的一种缓存管理方案。
在图1所示的方案中,应用程序调用Redis客户端API,对热点数据进行缓存,以减少到后台系统数据库的连接压力。客户端接管之后的操作,将数据写入分布式缓存中。在图1所示的方案中,在写数据时操作主(Master)节点,在读数据时操作从(Slave)节点,以达到读写分离的原则。上述操作是单集群缓存的数据操作,这种方法在出现网络临时中断或者虚拟机GC时能够及时响应,在毫秒级的时间内便可自动恢复系统。
同时,图1还示出了缓存集群间的主从切换,其能在集群中的某些机器出现宕机的情况下迅速反应,对于临时故障也能有效应对。如果某个集群的网络出现中断,或者其他不可能抗拒的原因造成某个缓存集群无法对请求及时响应,此时的常规方法是切换服务器集群,具体流程如下:
1)应用程序调用缓存无结果,导致频繁对缓存进行读写;
2)系统报警,用户通过应用程序手动更改配置来切换缓存集群;
3)应用程序对缓存数据进行读写操作,缓存调用恢复正常。
然而,图1所示的方案也存在着一些缺陷。例如,应用程序从发现缓存异常到切换集群时间过长,此时应用程序可能已经出现访问困难,甚至是数据库连接池的阻塞,产生一系列的多米诺效应。再例如,通过应用程序手动切换配置需要重启服务器,实时性不高,如果出现无法联系相关人员而不能及时重启,后果将十分严重。在图1所示的方案中,在重启服务器后,之前缓存的数据丢失,应用程序需重写缓存,对系统的响应时间会有影响,加重了系统负载。这种方案耗时较长,反馈执行结果较慢,用户体验性差。此外,图1的方案当对缓存的读写不能及时作出响应,导致产生数据穿透,造成不可挽回的损失。
发明内容
为了解决上述问题中的至少一些,本发明实施例提供了一种用于管理缓存的缓存管理方法及其设备。
根据本发明的一个方案,提供了一种用于管理缓存的缓存管理方法,其中,所述缓存包括多个分布式缓存集群,所述方法包括:获取所述多个分布式缓存集群中每个缓存集群的存活状况和响应时间;根据所述存活状况和响应时间为所述每个缓存集群分配缓存权重;以及选择所述缓存权重最高的缓存集群作为数据读写的缓存主集群。
根据本发明的另一方案,提供了一种用于管理缓存的设备,其中,所述缓存包括多个分布式缓存集群,所述设备包括:检测模块,用于获取所述多个分布式缓存集群中每个缓存集群的存活状况和响应时间;权重分配模块,用于根据所述存活状况和响应时间为所述每个缓存集群分配缓存权重;以及集群管理模块,用于选择所述缓存权重最高的缓存集群作为数据读写的缓存主集群。
上述方案通过对集群健康状态进行监控,对异常情况及时调整反馈,将手动切换缓存集群方式修改为自动切换,有效的提升了系统的响应时间和处理效率,第一时间避免了系统的瘫痪,可有效的防止数据穿透,保障了系统的稳定性和健壮性。
附图说明
通过下面结合附图对发明进行的详细描述,将使本发明的上述特征和优点更加明显,其中:
图1是现有技术的缓存管理方法的示意图;
图2提供了根据本发明的实施例的缓存管理方法的简化流程图;
图3提供了根据本发明的实施例的缓存管理设备的简化框图;
图4示出了根据本发明实施例的用于实现缓存管理方法的系统的逻辑构成示意图;以及
图5示出了根据本发明实施例的缓存管理的一个具体示例的流程图。
具体实施方式
下面,参考附图详细说明本发明的优选实施方式。在附图中,虽然示于不同的附图中,但相同的附图标记用于表示相同的或相似的组件。为了清楚和简明,包含在这里的已知的功能和结构的详细描述将被省略,以避免使本发明的主题不清楚。
图2示出了根据本发明的实施例的缓存管理方法的简化视图,其中,所管理的缓存包括多个分布式缓存集群。在图2所示的方法中,获取该多个分布式缓存集群中每个缓存集群的存活状况和响应时间(步骤S210);根据存活状况和响应时间为每个缓存集群分配缓存权重(步骤S220);以及选择缓存权重最高的缓存集群作为数据读写的缓存主集群(步骤S230)。
本文中所述的缓存集群(在下文中,可简称为集群并与术语集群互换使用)在一些示例中可以是位于某个机房中的缓存的集合,并在该情况下“集群”和“机房”可互换使用。然而在另外一些示例中,本文中所述的缓存集群也可以是不限于某个位置(物理位置和/或逻辑位置)的缓存的集合,而仅仅表示一个或多个缓存的集合。
本文中所述的存活状况可以指集群是否存活和/或集群存活的状态如何。例如,如果集群有响应则是存活集群,而如果没有响应则是非存活集群,且可将其划分到失败队列。根据以下所述的方案,存活集群还可被根据响应时间划分到工作队列和异常队列中。
在一些示例中,图2所示的方法还可包括接收应用程序发送的缓存集群请求,以及根据缓存集群请求为应用程序分配该多个分布式缓存集群中的缓存集群。在一些示例中,例如,可根据缓存集群请求中具体要求的数据流量来分配缓存集群。当然,在其他一些示例中,也可附加地或作为替换根据其他因素分配缓存集群,如各个缓存集群的存活状况、负荷条件、响应时间等。
图2所示的步骤S210至S230可基于缓存集群请求而执行,也可在已为应用程序分配缓存集群之后执行(例如在需要执行缓存集群切换时),本发明不受步骤S210至S230的执行时机的限制。
在一些示例中,获取多个分布式缓存集群中每个缓存集群的存活状况和响应时间可包括:以第一预定时间间隔轮询多个分布式缓存集群中每个缓存集群,以获得针对每个缓存集群的第一响应时间;以及根据第一响应时间将多个分布式缓存集群分配到不同队列中。例如,这里的第一预定时间间隔可以是10s,也可以是更大或更小的时间间隔,本领域技术人员可根据需要进行设置,本发明不受具体时间间隔长度的限制。
具体地,在一些示例中,如果连续N次未检测到缓存集群的响应时间,则缓存集群被分配到失败集群队列中;或如果缓存集群的响应时间连续M次超过第一预定阈值,则缓存集群被分配到异常集群队列中;或如果缓存集群的响应时间连续P次小于第二预定阈值,则缓存集群被分配到工作集群队列中。在这些示例中,M、N和P可以是大于等于1的整数。例如,在一些示例中,M、N、P可以都等于5,第一预定阈值和第二预定阈值可以等于100ms。然而在其他一些示例中,M、N、P可以取彼此不相等的值和/或不等于5的数值,第一预定阈值和第二预定阈值也可以是相同或不相同的数值,其根据具体情况可以等于100ms,也可以是大于或小于100ms的其他值。
在一些示例中,图2所示的方法还可包括:以第二预定时间间隔对工作队列中的每个缓存集群进行轮询,以获得针对每个缓存集群的第二响应时间;以及根据第二响应时间获得每个缓存集群的优先级和/或权重因子。例如,这里的第二预定时间间隔可以是10s,也可以是更大或更小的时间间隔,本领域技术人员可根据需要进行设置,本发明不受具体时间间隔长度的限制。
在一些示例中,图2所示的方法还可包括:根据优先级和/或权重因子向每个缓存集群分配针对用户的读写操作的数据流量。
在一些示例中,图2所示的方案还可包括:启动缓存集群自动切换,当工作队列中的缓存集群的权重因子发生改变时或当工作队列中的缓存集群的对象发生改变时,将权重因子最高的缓存集群切换为缓存主集群;或不启动缓存集群自动切换,当工作队列中的缓存集群的权重因子发生改变时或当工作队列中的缓存集群的对象发生改变时,通知操作人员手动切换缓存集群。
图3示出了与图2所示方法相对应的用于管理缓存的设备的简化框图,其中,所管理的缓存包括多个分布式缓存集群。图3所示的设备包括:检测模块310,用于获取多个分布式缓存集群中每个缓存集群的存活状况和响应时间;权重分配模块320,用于根据存活状况和响应时间为每个缓存集群分配缓存权重;以及集群管理模块330,用于选择缓存权重最高的缓存集群作为数据读写的缓存主集群。
图3所示的设备还可包括:接收模块340,用于接收应用程序发送的缓存集群请求;以及集群分配模块350,用于根据缓存集群请求为应用程序分配多个分布式缓存集群中的缓存集群。如上所述,例如可根据缓存集群请求中具体要求的数据流量来分配缓存集群。当然,在其他一些示例中,也可附加地或作为替换根据其他因素分配缓存集群,如各个缓存集群的存活状态、负荷条件、响应时间等。
在图3所示的框图中,检测模块310可包括:第一轮询子模块312,用于以第一预定时间间隔轮询多个分布式缓存集群中每个缓存集群,以获得针对每个缓存集群的第一响应时间;以及队列分配子模块314,用于根据第一响应时间将多个分布式缓存集群分配到不同队列中。这里的第一预定时间间隔可以是10s,也可以是更大或更小的时间间隔,本领域技术人员可根据需要进行设置,本发明不受具体时间间隔长度的限制。
图3中所示的队列分配子模块314还可被用于:如果连续N次未检测到缓存集群的响应时间,则将缓存集群分配到失败集群队列中;或如果缓存集群的响应时间连续M次超过第一预定阈值,则将缓存集群分配到异常集群队列中;或如果缓存集群的响应时间连续P次小于第二预定阈值,则将缓存集群分配到工作集群队列中。在这些示例中,M、N和P可以是大于等于1的整数。例如,在一些示例中,M、N、P可以都等于5,第一预定阈值和第二预定阈值可以等于100ms。然而在其他一些示例中,M、N、P可以取彼此不相等的值和/或不等于5的数值,第一预定阈值和第二预定阈值也可以是相同或不相同的数值,其根据具体情况可以等于100ms,也可以是大于或小于100ms的其他值。
图3中所示的权重分配模块320可包括:第二轮询子模块322,用于以第二预定时间间隔对工作队列中的每个缓存集群进行轮询,以获得针对每个缓存集群的第二响应时间;权重分配子模块324,用于根据第二响应时间获得针对每个缓存集群的优先级和/或权重因子。同样地,这里的第二预定时间间隔可以是10s,也可以是更大或更小的时间间隔,本领域技术人员可根据需要进行设置,本发明不受具体时间间隔长度的限制。
在一些示例中,权重分配模块320还可包括流量分配子模块326,用于根据获得的优先级和/或权重因子向每个缓存集群分配针对用户的读写操作的数据流量。
图3中所示的集群管理模块330可包括自动切换开关子模块332和切换控制子模块334。自动切换开关子模块332用于设置是否开启自动切换。切换控制子模块334用于:在自动切换开关子模块332设置开启自动切换时,当工作队列中的缓存集群的权重因子发生改变时或当工作队列中的缓存集群的对象发生改变时,将权重因子最高的缓存集群切换为缓存主集群;或者在自动切换开关子模块332设置不开启自动切换时,当工作队列中的缓存集群的权重因子发生改变时或当工作队列中的缓存集群的对象发生改变时,通知操作人员手动切换缓存集群。这里所说的设置可以是由操作员手动设置,但也不排除由本领域技术人员容易想到的各种事件触发的设置。
需要说明的是,图2和图3所示的方法步骤和结构框图仅是为了更清楚地说明本发明而做出的简化视图。在具体的实现中,还可存在更多或更少的步骤/模块。例如,在图3所示的框图中还可添加输入/输出设备、显示设备、存储设备等。这些变型和修改同样在本发明的范围之内。
此外,图3所示的框图中的模块仅是为了使读者理解本发明而做出的示例,在其他示例中,也可以采用与图3所示名称不同的其他名称,或在不同的模块/单元中实现图3所示模块中实现的功能。图4便示出了这样的一种情况。
图4示出了根据本发明实施例的用于实现缓存管理方法的系统的逻辑构成示意图。其中,图4中包括集群注册模块、集群心跳检测模块、集群自动切换模块、集群自动负载模块的设备可对应于图3所示的设备。
图4中示出的应用程序作为数据的出入口,根据业务需求申请缓存集群。可在实际场景中进行缓存集群的动态扩容或者缩容。应用程序可使用客户端API对所需缓存进行读写操作,如果业务场景需要,可通过系统管理模块进行集群多写,保证数据的强一致性。本发明适用于同时多写的集群,但同时也适用于其他情况下的缓存集群。
系统注册模块可以动态更改集群大小。在将缓存数据分别写入分布式集群后,可对缓存集群进行上线和下线。该操作对于应用程序而言完全透明,同时不需要重启任何应用程序。
系统心跳检测模块可对应于图3中的检测模块310,其可执行定时任务,例如,每隔10s轮询读取所有集群队列响应时间,集群列表包括工作队列、失败队列、异常队列。如上所述,也可采用不同于10s的其他轮询时间间隔。系统心跳检测模块的具体操作如下,其中:
1、如果集群连续M次(例如,5次)无响应时间,则将该集群加入失败集群队列,并例如发出系统报警。
2、若集群连续N次(例如,5次)响应时间超过预定阈值δ1(例如,100ms),则将该集群加入异常集群列表,并例如发出报警。
3、集群若连续P次(例如,5次)成功响应,并在预定阈值δ2(例如,100ms)内返回,则将该集群加入至工作队列。从其检测到成功响应的集群例如可以是失败队列集群和异常队列中的集群,也可以是尚未分配队列的集群。
图4中的系统流量负载均衡模块可对应于图3中的权重分配模块320。在一些示例中,系统流量负载均衡模块可每隔时间α4(例如,10s)对工作队列中的集群进行轮询,获取响应时间t1,同时结合机房传播时间t2,可得到每个集群的优先级权重因子ζ,其中,ζ越小,对应集群的优先级越高。
可例如根据以下公式计算权重因子:
n表示权重因子计算中采样(即,轮询)的数目,其值可通过后台进行配置,例如可将默认值设置为100。该值可根据实际情况设置或改变。例如,如果要求更高的准确性,可采用更大的数目(更多次轮询),或如果需要节省计算周期,也可采用更小的数目(更少次轮询),本发明不受具体数值的限制。
以上公式使用在多次轮询中集群的纯响应时间(即,不包括响应的传输时间)的平均来表示该集群的状态,并例如根据所表示的状态来进行负载均衡或选择主集群等。然而,本发明不限于此,也可通过表征集群状态的其他度量来计算该集群的权重因子。
如上所述,也可采用不同于10s的其他轮询时间间隔。如果系统开启自动负载均衡模式,则可根据该权重因子将用户的读取流量分发到多个工作集群。例如,权重因子大(即响应时间快)的集群可分配到更多的流量。
图4中的系统自动切换模块可对应于图3中的集群管理模块330,其可在工作队列集群的权重因子发生改变时,根据自动切换模式开关设置,进行如下操作。
1.若自动切换开关为开,当工作集群的权重因子发生改变,优先切换权重因子最高的集群为缓存主集群。
2.若自动切换开关为开,同时工作队列集群对象发生改变,则重新切换当前队列权重因子最高的集群为主集群。
3.若自动切换开关为关,同时工作队列或者权重因子发生改变,系统不进行自动切换操作,只是通过报警方式告知应用开发人员。此时需通过系统注册模块手动对集群进行上下线操作。
图5示出了根据本发明实施例的缓存管理的一个具体示例的流程图。
如图5中所示,在应用程序部署初期,用户可通过例如集群注册模块添加初始缓存集群配置,并设置默认集群多写,同时设置默认读操作集群。此外,还可例如通过集群注册模块获取集群信息。若用户开启了集群自动切换功能,则系统还可默认使用权重因子最高的集群作为读数据首选集群。
系统在运行期间,集群心跳检测模块可执行心跳检测,例如每隔10s定时发送心跳请求,以获得集群存活状况和响应时间。如上结合图2至图4所述,可例如根据检测结果将系统归为工作队列、失败队列(图5中未示出)和异常队列。同时,当失败队列和异常队列中集群的响应时间恢复正常(例如小于特定阈值)时,则将其重新归入工作队列。
在一些示例中(例如图5所示的示例中),集群自动负载模块进行负载均衡的前提是用户关闭自动切换功能,以到达更好的负载均衡效果并防止自动切换造成的误操作。在该情况下,集群自动负载模块将向各个集群分发用户的缓存读请求,达到负载均衡的功能。然而在其他一些示例中,例如在能够减少或清除误操作的情况下,在进行负载均衡的同时也可以开启自动切换功能。
如果自动切换功能开启,则可通过集群自动切换模块获取工作队列中权重因子最大的集群配置,并将数据读操作自动切换至该集群。
在上述操作结束之后,可返回数据并结束本流程。
以上结合图2至图5所述的技术方案可应用于线上项目供销平台系统,用于缓存系统关键数据,有效的保证了系统的健壮性。使用这种方案,用户访问系统的关键数据时,系统在第一时间通过分布式缓存集群返回数据。同时在缓存机房切换、缓存机房网络中断或者缓存机房系统故障时能及时响应,保证用户请求的实时性,同时系统切换对用户完全透明,有效的提升了用户体验。
本发明的技术方案可采用心跳检测,对系统注册修改的分布式集群进行多集群热部署,以心跳响应时间作为权重因子标识集群状态,定时对工作队列和异常队列进行检测。
在系统开启自动切换模式时,可根据心跳检测的权重因子对工作队列中的集群进行自动切换,有效的降低了系统的响应时间,并避免了单一集群异常造成的数据穿透。
在系统开启负载均衡模式时,可根据心跳检测结果对数据请求操作进行动态分流,保障了系统的稳定性。
需要注意的是,本发明实施例所记载的技术方案在不冲突的情况下可以任意组合。
在本发明所提供的几个实施例中,应该理解到,所揭露的方法和设备,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元,即可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
另外,在本发明各实施例中的各功能单元可以全部集成在一个第二处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上面的描述仅用于实现本发明的实施方式,本领域的技术人员应该理解,在不脱离本发明的范围的任何修改或局部替换,均应该属于本发明的权利要求来限定的范围,因此,本发明的保护范围应该以权利要求书的保护范围为准。

Claims (16)

1.一种用于管理缓存的缓存管理方法,其中,所述缓存包括多个分布式缓存集群,所述方法包括:
获取所述多个分布式缓存集群中每个缓存集群的存活状况和响应时间;
根据所述存活状况和响应时间为所述每个缓存集群分配缓存权重;以及
选择所述缓存权重最高的缓存集群作为数据读写的缓存主集群。
2.根据权利要求1所述的方法,还包括:
接收应用程序发送的缓存集群请求;
根据所述缓存集群请求为所述应用程序分配所述多个分布式缓存集群中的缓存集群。
3.根据权利要求1所述的方法,其中,获取所述多个分布式缓存集群中每个缓存集群的存活状况和响应时间包括:
以第一预定时间间隔轮询所述多个分布式缓存集群中每个缓存集群,以获得针对所述每个缓存集群的第一响应时间;以及
根据所述第一响应时间将所述多个分布式缓存集群分配到不同队列中。
4.根据权利要求3所述的方法,其中,根据所述响应时间将所述多个分布式缓存集群分配到不同队列中包括:
如果连续N次未检测到缓存集群的响应时间,则所述缓存集群被分配到失败集群队列中;或
如果缓存集群的响应时间连续M次超过第一预定阈值,则所述缓存集群被分配到异常集群队列中;或
如果缓存集群的响应时间连续P次小于第二预定阈值,则所述缓存集群被分配到工作集群队列中,
其中,所述M、N和P是大于等于1的整数。
5.根据权利要求4所述的方法,其中,M、N、P等于5,第一预定阈值和第二预定阈值等于100ms。
6.根据权利要求1所述的方法,还包括:
以第二预定时间间隔对工作队列中的每个缓存集群进行轮询,以获得针对所述每个缓存集群的第二响应时间;以及
根据所述第二响应时间获得针对所述每个缓存集群的优先级和/或权重因子。
7.根据权利要求6所述的方法,还包括:
根据所述优先级和/或权重因子向所述每个缓存集群分配针对用户的读写操作的数据流量。
8.根据权利要求1所述的方法,还包括:
启动缓存集群自动切换:
当工作队列中的缓存集群的权重因子发生改变时或当工作队列中的缓存集群的对象发生改变时,将权重因子最高的缓存集群切换为缓存主集群;或
不启动缓存集群自动切换:
当工作队列中的缓存集群的权重因子发生改变时或当工作队列中的缓存集群的对象发生改变时,通知操作人员手动切换缓存集群。
9.一种用于管理缓存的设备,其中,所述缓存包括多个分布式缓存集群,所述设备包括:
检测模块,用于获取所述多个分布式缓存集群中每个缓存集群的存活状况和响应时间;
权重分配模块,用于根据所述存活状况和响应时间为所述每个缓存集群分配缓存权重;以及
集群管理模块,用于选择所述缓存权重最高的缓存集群作为数据读写的缓存主集群。
10.根据权利要求9所述的设备,还包括:
接收模块,用于接收应用程序发送的缓存集群请求;
集群分配模块,用于根据所述缓存集群请求为所述应用程序分配所述多个分布式缓存集群中的缓存集群。
11.根据权利要求9所述的设备,其中,所述检测模块包括:
第一轮询子模块,用于以第一预定时间间隔轮询所述多个分布式缓存集群中每个缓存集群,以获得针对所述每个缓存集群的第一响应时间;以及
队列分配子模块,用于根据所述第一响应时间将所述多个分布式缓存集群分配到不同队列中。
12.根据权利要求11所述的设备,其中,所述队列分配子模块还用于:
如果连续N次未检测到缓存集群的响应时间,则将所述缓存集群分配到失败集群队列中;或
如果缓存集群的响应时间连续M次超过第一预定阈值,则将所述缓存集群分配到异常集群队列中;或
如果缓存集群的响应时间连续P次小于第二预定阈值,则将所述缓存集群分配到工作集群队列中,
其中,所述M、N和P是大于等于1的整数。
13.根据权利要求12所述的设备,其中,M、N、P等于5,第一预定阈值和第二预定阈值等于100ms。
14.根据权利要求9所述的设备,其中,所述权重分配模块包括:
第二轮询子模块,用于以第二预定时间间隔对工作队列中的每个缓存集群进行轮询,以获得针对所述每个缓存集群的第二响应时间;以及
权重分配子模块,用于根据所述第二响应时间获得针对所述每个缓存集群的优先级和/或权重因子。
15.根据权利要求14所述的设备,其中,所述权重分配模块还包括:
流量分配子模块,用于根据所述优先级和/或权重因子向所述每个缓存集群分配针对用户的读写操作的数据流量。
16.根据权利要求9所述的设备,其中,所述集群管理模块包括:
自动切换开关子模块;用于设置是否开启自动切换;以及
切换控制子模块,用于:
在所述自动切换开关子模块设置开启自动切换时,
当工作队列中的缓存集群的权重因子发生改变时或当工作队列中的缓存集群的对象发生改变时,将权重因子 最高的缓存集群切换为缓存主集群;或
在所述自动切换开关子模块设置不开启自动切换时:
当工作队列中的缓存集群的权重因子发生改变时或当工作队列中的缓存集群的对象发生改变时,通知操作人员手动切换缓存集群。
CN201610387869.5A 2016-06-02 2016-06-02 缓存管理方法及其设备 Pending CN107463468A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610387869.5A CN107463468A (zh) 2016-06-02 2016-06-02 缓存管理方法及其设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610387869.5A CN107463468A (zh) 2016-06-02 2016-06-02 缓存管理方法及其设备

Publications (1)

Publication Number Publication Date
CN107463468A true CN107463468A (zh) 2017-12-12

Family

ID=60545534

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610387869.5A Pending CN107463468A (zh) 2016-06-02 2016-06-02 缓存管理方法及其设备

Country Status (1)

Country Link
CN (1) CN107463468A (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108170527A (zh) * 2017-12-15 2018-06-15 北京奇艺世纪科技有限公司 一种异地多活的分布式消息消费方法及装置
CN108199912A (zh) * 2017-12-15 2018-06-22 北京奇艺世纪科技有限公司 一种异地多活的分布式消息的管理、消费方法及装置
CN108322358A (zh) * 2017-12-15 2018-07-24 北京奇艺世纪科技有限公司 异地多活的分布式消息发送、处理、消费方法及装置
CN109766401A (zh) * 2019-01-14 2019-05-17 中煤航测遥感集团有限公司 管道数据存储方法及装置
WO2020192065A1 (zh) * 2019-03-22 2020-10-01 苏宁云计算有限公司 一种跨集群高可用的实现方法、装置、系统及设备
CN112799608A (zh) * 2021-04-13 2021-05-14 北京华益精点生物技术有限公司 血糖数据的存储方法、系统和电子设备
CN114553747A (zh) * 2022-02-22 2022-05-27 度小满科技(北京)有限公司 redis集群的异常检测方法、装置、终端及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101562543A (zh) * 2009-05-25 2009-10-21 阿里巴巴集团控股有限公司 一种缓存数据的处理方法、处理系统和装置
US20120079206A1 (en) * 2010-09-26 2012-03-29 Huawei Technologies Co., Ltd. Method, apparatus, proxy server, and system for selecting cache replacement policies
CN103207841A (zh) * 2013-03-06 2013-07-17 青岛海信传媒网络技术有限公司 基于键值对缓存的数据读写方法及装置
CN103441906A (zh) * 2013-09-25 2013-12-11 哈尔滨工业大学 基于自主计算的代理缓存集群异常检测系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101562543A (zh) * 2009-05-25 2009-10-21 阿里巴巴集团控股有限公司 一种缓存数据的处理方法、处理系统和装置
US20120079206A1 (en) * 2010-09-26 2012-03-29 Huawei Technologies Co., Ltd. Method, apparatus, proxy server, and system for selecting cache replacement policies
CN103207841A (zh) * 2013-03-06 2013-07-17 青岛海信传媒网络技术有限公司 基于键值对缓存的数据读写方法及装置
CN103441906A (zh) * 2013-09-25 2013-12-11 哈尔滨工业大学 基于自主计算的代理缓存集群异常检测系统

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108170527A (zh) * 2017-12-15 2018-06-15 北京奇艺世纪科技有限公司 一种异地多活的分布式消息消费方法及装置
CN108199912A (zh) * 2017-12-15 2018-06-22 北京奇艺世纪科技有限公司 一种异地多活的分布式消息的管理、消费方法及装置
CN108322358A (zh) * 2017-12-15 2018-07-24 北京奇艺世纪科技有限公司 异地多活的分布式消息发送、处理、消费方法及装置
CN109766401A (zh) * 2019-01-14 2019-05-17 中煤航测遥感集团有限公司 管道数据存储方法及装置
WO2020192065A1 (zh) * 2019-03-22 2020-10-01 苏宁云计算有限公司 一种跨集群高可用的实现方法、装置、系统及设备
CN112799608A (zh) * 2021-04-13 2021-05-14 北京华益精点生物技术有限公司 血糖数据的存储方法、系统和电子设备
CN114553747A (zh) * 2022-02-22 2022-05-27 度小满科技(北京)有限公司 redis集群的异常检测方法、装置、终端及存储介质

Similar Documents

Publication Publication Date Title
CN107463468A (zh) 缓存管理方法及其设备
CN108235751B (zh) 识别对象存储设备亚健康的方法、装置和数据存储系统
US8826290B2 (en) Method of monitoring performance of virtual computer and apparatus using the method
CN105468450B (zh) 任务调度方法及系统
CN102694868B (zh) 一种集群系统实现及任务动态分配方法
CN109861878A (zh) kafka集群的topic数据的监控方法及相关设备
CN112667362B (zh) Kubernetes上部署Kubernetes虚拟机集群的方法与系统
CN103684916A (zh) 一种云计算下智能监控分析方法及系统
CN103425645A (zh) 数据库集群单点故障的监控系统及方法
CN111625383B (zh) 进程异常事件处理方法、装置、电子设备及存储介质
CN106209412B (zh) 资源监控系统与其方法
CN108108296A (zh) 一种云测试方法、服务器及客户端
CN104573428B (zh) 一种提高服务器集群资源有效性的方法及系统
CN114265753A (zh) 消息队列的管理方法、管理系统和电子设备
CN109656783A (zh) 系统平台监控方法及装置
CN113422692A (zh) 一种K8s集群内节点故障检测及处理方法、装置及存储介质
CN110099084A (zh) 一种保证存储服务可用性的方法、系统及计算机可读介质
CN110333986A (zh) 一种保障redis集群可用性的方法
JP5740338B2 (ja) 仮想環境運用支援システム
CN111418187A (zh) 云网络中的可伸缩统计和分析机制
CN110515938B (zh) 基于kafka消息总线的数据汇聚存储方法、设备和存储介质
US10169138B2 (en) System and method for self-healing a database server in a cluster
CN114118991A (zh) 第三方系统监控系统、方法、装置、设备及存储介质
CN117453036A (zh) 调整服务器中的设备的功耗的方法、系统及装置
CN117632897A (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: 20171212

RJ01 Rejection of invention patent application after publication