分布式缓存的故障处理方法及装置制造方法及图纸

技术编号:14172652 阅读:85 留言:0更新日期:2016-12-13 00:36
本公开揭示了一种分布式缓存的故障处理方法及装置。所述方法包括:监控分布式缓存中运行的主缓存实例,得到故障的主缓存实例,将所述主缓存实例的从缓存实例替代所述故障的主缓存实例,相应更新所述从缓存实例和故障的主缓存实例之间的主从状态,监听所述主从状态的更新,根据所述主从状态的更新修改代理配置中进行缓存数据访问的服务地址。上述分布式缓存的故障处理方法及装置能够对自动对故障的主缓存实例进行切换,实现缓存实例的高可用性,提高redis的抗风险能力。

Distributed cache fault processing method and device

The invention discloses a method and a device for processing distributed cache faults. The method comprises a main cache instance running monitoring distributed cache in the main cache instance fault, the main cache instances from a cache instance instead of the main cache instances of the fault, the corresponding update from the master-slave state between the main cache instance cache instance and fault monitoring, the master-slave state the update, modify the agent configuration cache data access service address according to the master-slave state update. The fault processing method and the device of the distributed cache can automatically switch the main cache instance to the fault, realize the high availability of the cache instance, and improve the anti risk ability of the redis.

【技术实现步骤摘要】

本公开涉及分布式缓存
,特别涉及一种分布式缓存的故障处理方法及装置
技术介绍
随着互联网流量的日益增大,单台缓存服务器面临大规模数据访问时,常常造成负荷过重而导致过高的响应延迟的缺陷,现有的解决方案中大都采用分布式缓存技术来实现大规模的数据缓存和访问。分布式缓存技术通过一致性哈希算法将数据相对均衡的分布于多个缓存服务器中,而redis(键-值类型的存储系统)作为一种分布式缓存存储系统,由于数据的高效同步和简单的操作命令,得到了广泛的使用。目前,redis一般装设有主缓存服务器和从缓存服务器。主缓存服务器中的redis缓存实例主要负责读写操作,而从缓存服务器中的redis缓存实例只对通过主缓存服务器中redis缓存实例读写的数据进行备份操作,这对于主缓存服务器而言,存在着较大压力。当主缓存服务器因故障宕机时,无法实现主从缓存服务器的自动切换,只能依靠人工干预,而在维护人员不在现场等特殊情况时则造成业务停滞,从而无法实现redis缓存实例的高可用性,大大降低了redis的抗风险能力。
技术实现思路
为了解决相关技术中存在的无法实现redis缓存实例的高可用性,redis缓存的抗风险能力较低的问题,本公开提供了一种分布式缓存的故障处理方法及装置。一种分布式缓存的故障处理方法,其特征在于,所述方法包括:监控分布式缓存中运行的主缓存实例,得到故障的主缓存实例;将所述主缓存实例的从缓存实例替代所述故障的主缓存实例,相应更新所述从缓存实例和故障的主缓存实例之间的主从状态;监听所述主从状态的更新,根据所述主从状态的更新修改代理配置中进行缓存数据访问的服务地址。一种分布式缓存的故障处理装置,其特征在于,所述装置包括:故障监控模块,用于监控分布式缓存中运行的主缓存实例,得到故障的主缓存实例;故障处理模块,用于将所述主缓存实例的从缓存实例替代所述故障的主缓存实例,相应更新所述从缓存实例和故障的主缓存实例之间的主从状态;代理配置修改模块,用于监听所述主从状态的更新,根据所述主从状态的更新修改代理配置中进行缓存数据访问的服务地址。本公开的实施例提供的技术方案可以包括以下有益效果:分布式缓存的运行中,监控运行的主缓存实例,得到故障的主缓存实例,将从缓存实例替代故障的主缓存实例,相应更新从缓存实例和故障的主缓存实例之间的主从状态,监听主从状态的更新,根据主从状态的更新修改代理配置中进行缓存数据访问的服务地址,从而使得后续所进行的数据读取是通过修改后的服务地址实现的,进而即便主缓存实现出现故障也不会对缓存数据的读写造成影响,在主缓存实例出现故障时,自动将从缓存实例替代出现故障的主缓存实例,实现了缓存实例的高可用性,大大提高了redis的抗风险能力。应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本公开。附图说明此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本专利技术的实施例,并于说明书一起用于解释本专利技术的原理。图1是根据一示例性实施例示出的一种分布式缓存的故障处理方法的流程图;图2是图1对应实施例的监控分布式缓存中运行的主缓存实例,得到故障的主缓存实例步骤的流程图;图3是图1对应实施例的触发故障处理操作,使主缓存实例的从缓存实例替代故障的主缓存实例,相应更新从缓存实例和故障的主缓存实例之间的主从状态步骤的流程图;图4是图3对应实施例的根据所述从缓存实例信息选定从缓存实例步骤的流程图;图5是图4对应实施例的在所述正常从缓存实例集合中,选定从缓存实例步骤的流程图;图6是分布式缓存的故障处理的一个具体应用场景图;图7是根据一示例性实施例示出的一种分布式缓存的故障处理装置的框图;图8是图7对应实施例示出的故障监控模块的框图;图9是图7对应实施例示出的故障处理模块的框图;图10是图9对应实施例示出的从缓存选定子模块的框图;图11是图10对应实施例示出的选定单元的框图。具体实施方式这里将详细地对示例性实施例执行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本专利技术相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本专利技术的一些方面相一致的装置和方法的例子。图1是根据一示例性实施例示出的一种分布式缓存的故障处理方法的流程图。如图1所示,该分布式缓存的故障处理方法可以包括以下步骤。在步骤S110中,监控分布式缓存中运行的主缓存实例,得到故障的主缓存实例。分布式缓存部署于机器中,通过机器中运行的实例来实现分布式缓存的主缓存实例。在一示例性实施例中,所指的机器为缓存服务器,一个或者多个缓存服务器形成用以实现数据缓存的服务器框架。主缓存实例是运行于缓存服务器中的redis进程。通过主缓存实例实现对缓存数据的读写操作。在主缓存实例的运行过程中,可能因存在故障导致该主缓存实例停止运行,进而影响对应的缓存数据的读写操作。此时,通过部署于机器中的主从监控哨兵对缓存服务器中所有的主缓存实例进行监控,在主缓存实例出现故障时自动进行维护,以便缓存数据的读写顺利进行。主从监控哨兵是根据主从监控哨兵的状态数据对各主缓存实例进行监控的,状态数据中包含各个主缓存实例信息及对应的从缓存实例信息。根据状态数据,主从监控哨兵对主缓存实例进行监控。在步骤S120中,主缓存实例的从缓存实例替代故障的主缓存实例,相应更新从缓存实例和故障的主缓存实例之间的主从状态。缓存服务器中,还运行着与主缓存实例对应的从缓存实例,从缓存实例用于对主缓存实例处理的数据进行备份操作。当某个主缓存实例出现故障时,主从监控哨兵就会使该故障的主缓存实例的从缓存实例替代该故障的从缓存实例,即将从缓存实例变更为新的主缓存实例,将故障的主缓存实例变更为从缓存实例,随之更新主从监控哨兵的状态数据。例如,缓存服务器中,主缓存实例为缓存实例A,缓存实例A地从缓存实例为缓存实例a,当监控到缓存实例A出现故障时,主从监控哨兵就会使缓存实例a替代缓存实例A,将缓存实例a由从缓存实例变更为主缓存实例,将缓存实例A由主缓存实例变更为从缓存实例。在步骤S130中,监听主从状态的更新,根据主从状态的更新修改代理配置中进行缓存数据访问的服务地址。首先需要进行说明的是,存储了代理配置的缓存出口代理被部署于一机器中,该机器将作为与缓存服务器进行数据交互的接口。代理配置是缓存出口代理中的配置文件,代理配置中的服务地址为指向缓存服务器中缓存数据的地址,根据代理配置中的服务地址,实现对缓存数据的读写操作。进一步的,还在机器中部署了代理监控客户端,代理监控客户端用于进行主从监控哨兵的监控和代理配置的更新。具体的,主从监控哨兵对主缓存实例和从缓存实例的主从状态进行变更后,代理监控客户端监听到主从监控哨兵的变更操作,就会相应地修改代理配置中进行缓存数据访问的服务地址,进而通过新的服务地址指向的主缓存实例进行缓存数据的读写操作。通过如上所述的方法,在主缓存实例出现故障时,能够自动采用对应的从缓存实例替代该故障的主缓存实例,实现了缓存实例的高可用性,大大提高了redis的抗风险能力。图2是根据一示例性实施例示出的对步骤S110的细节的描述。该步骤S110可以包括以下步骤。在步骤S111中,根据预置的时本文档来自技高网...
分布式缓存的故障处理方法及装置

【技术保护点】
一种分布式缓存的故障处理方法,其特征在于,所述方法包括:监控分布式缓存中运行的主缓存实例,得到故障的主缓存实例;将所述主缓存实例的从缓存实例替代所述故障的主缓存实例,相应更新所述从缓存实例和故障的主缓存实例之间的主从状态;监听所述主从状态的更新,根据所述主从状态的更新修改代理配置中进行缓存数据访问的服务地址。

【技术特征摘要】
1.一种分布式缓存的故障处理方法,其特征在于,所述方法包括:监控分布式缓存中运行的主缓存实例,得到故障的主缓存实例;将所述主缓存实例的从缓存实例替代所述故障的主缓存实例,相应更新所述从缓存实例和故障的主缓存实例之间的主从状态;监听所述主从状态的更新,根据所述主从状态的更新修改代理配置中进行缓存数据访问的服务地址。2.根据权利要求1所述的方法,其特征在于,所述监控分布式缓存中运行的主缓存实例,得到故障的主缓存实例的步骤包括:根据预置的时间间隔向所述主缓存实例发送信息请求;接收所述主缓存实例对所述信息请求的回复,根据所述回复识别故障的主缓存实例。3.根据权利要求1所述的方法,其特征在于,所述将所述主缓存实例的从缓存实例替代所述故障的主缓存实例,相应更新所述从缓存实例和故障的主缓存实例之间的主从状态的步骤包括:获取为所述故障的主缓存实例预设的从缓存实例信息;根据所述从缓存实例信息选定从缓存实例;将选定的所述从缓存实例替代所述故障的主缓存实例,相应更新所述选定的从缓存实例和所述故障的主缓存实例之间的主从状态。4.根据权利要求3所述的方法,其特征在于,所述根据所述从缓存实例信息选定从缓存实例的步骤包括:根据所述从缓存实例信息确定所述故障的主缓存实例对应的从缓存实例;向所述从缓存实例发送信息请求;接收所述从缓存实例对所述信息请求的回复,根据所述回复在所述从缓存实例中排除异常的从缓存实例,形成正常从缓存实例集合;在所述正常从缓存实例集合中选定从缓存实例。5.根据权利要求4所述的方法,其特征在于,所述在所述正常从缓存实例集合中选定从缓存实例的步骤包括:获取所述正常从缓存实例集合中从缓存实例对应的优先级;根据所述优先级在所述正常从缓存实例集合中选定从缓存实例。6.一种分布式缓存的故障处理装置...

【专利技术属性】
技术研发人员:雷亚武
申请(专利权)人:深圳市创梦天地科技有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1