一种memcache分布式缓存系统的制作方法_2

文档序号:9791741阅读:来源:国知局
故障,由此再进行主备切换,从原备用节点读取缓存数据。该过程是被动触发的机制,如此造成了无法避免的转发超时。
[0033]本实施例米用1^6口&1;^6+1]1&861^+8¥;[1:(311_8七&七6.sh+memcaches结合;keepalive作为双机热备,magent作为缓存代理,switch_state.sh脚本文件设置新的心跳检测和magent主备切换后台程序,多台memcaches构成分布式缓存集群。所述magent集群代理服务器本身支持一致性哈希算法定位数据在分布式集群下的存储节点,加上本实施例中的脚本设置的心跳检测方式,轮询主节点的memcache服务器的运行状态,一旦有宕机故障出现,立即将其切换为备用节点,而另外选一备用节点作为当前主节点继续进行数据存取。宕机的memcache服务器则进行修复或重启,待恢复正常后,恢复的memcache服务器继续作为备用节点,而不进行还原。
[0034]由于在主动监测到主节点故障就立即进行主备切换,用备用节点的memcache代替故障设备,由于主备缓存数据相同,由此实现无延时缓存,大大提高了memcache分布式缓存系统的稳定性,有效抵抗单点故障对整体系统的影响。而在故障设备恢复后仍保持作为备用节点,避免了恢复的memcache服务器转做主节点后的数据补充过程,简化了系统管理流程。
[0035]作为一种实施例,所述magent集群代理服务器还用于:在监测到所述memcache服务器恢复后,将作为所述当前主节点的memcache服务器中的缓存数据同步到所述恢复的memcache服务器中。
[0036]作为一种实施例,所述magent集群代理服务器对所述当前主节点进行故障监测具体为:
[0037]所述magent集群代理服务器每隔预设时间,主动询问作为当前主节点的memcache服务器的运行状态,当监测到当前主节点的memcache服务器出现故障则触发所述主备切换。
[0038]作为一种实施例,所述magent集群代理服务器还用于:
[0039]将出现故障的memcache服务器切换为备用节点后向管理系统发送状态切换提示
?目息O
[0040]作为一种实施例,所述至少2个所述magent集群代理服务器通过keepalive保活机制对应至一个对外的虚拟IP;在所述magent集群代理服务器出现故障的状态下,待缓存数据通过所述虚拟IP再经由未出现故障的magent集群代理服务器转发至主节点的memcache服务器。
[0041 ] switch_state.sh间隔2秒轮询检查被magent集群代理服务器设置为主节点的memcache服务器的运行状态,当主节点宕机时,自动取消magent进程,并重启新的magent进程,将一备用节点切换为当前主节点,原主节点切换为备用节点,保证任何时间点主节点都处于活跃(active)状态,从而避免了因主节点宕机产生的转发超时问题。同时邮件或其他形式通知管理系统状态(state)切换,管理员应做好后续维护工作。
[0042]switch_state.sh的运行还保证了宕机节点复活后其状态(state)转换为备节点,magent集群代理服务器会将所有客户端请求导向存储完整数据的活跃的当前主节点,从而避免了采用magent集群代理服务器在主节点宕机恢复后请求到空值(NULL)的情况。
[0043]同时为了满足整个平台的高可用性,我们采用keepalive+2magent的构架,整个缓存代理集群向客户端暴露配置的虚拟IP,从而有效避免因单台magent集群代理服务器故障而产生的平台单点故障问题。
[0044]作为另一种实施例,如图2所示,本实施例设置多台memcache服务器A、B、C,通过设置多台memcache服务器,设置了两个备份节点有效保障数据冗余。而在所述magent集群代理服务器中设有监测到主节点宕机时的备用节点选择方案,在进行主备切换时,所述magent集群代理服务器根据该选择方案将预设备用节点切换为当前主节点。
[0045]如图3所示,是设置了3个magent集群代理服务器,由此增强了虚拟IP的高可用。用户从虚拟IP获取实际magent代理服务器的MAC地址,由此链接到实际的服务器上,一旦当前magent故障无法使用,则通过keepalive保活机制切换到另一个magent集群代理服务器上,设置多个magent集群代理服务器同样可增强系统稳定性。
[0046]以上所述仅为本发明的较佳实施例,本领域技术人员知悉,在不脱离本发明的精神和范围的情况下,可以对这些特征和实施例进行各种改变或等同替换。另外,在本发明的教导下,可以对这些特征和实施例进行修改以适应具体的情况及材料而不会脱离本发明的精神和范围。因此,本发明不受此处所公开的具体实施例的限制,所有落入本申请的权利要求范围内的实施例都属于本发明的保护范围。
【主权项】
1.一种memcache分布式缓存系统,其特征在于,包括:至少一个magent集群代理服务器和至少2个memcache服务器,所述magent集群代理服务器通过一致性哈希算法将数据映射至所述memcache服务器中进行缓存; 其中:所述magent集群代理服务器用于: 将其中一台所述memcache服务器作为当前主节点,其他memcache服务器为备用节点,对所述当前主节点进行故障监测; 在监测到所述当前主节点的memcache服务器出现故障时进行主备切换,即从所述备用节点中选择一memcache服务器切换为当前主节点,将出现故障的memcache服务器切换为备用节点; 在监测到所述故障的memcache服务器恢复后,仍将恢复的memcache服务器作为备用节点。2.根据权利要求1所述的系统,其特征在于,所述magent集群代理服务器还用于:在监测到所述memcache服务器恢复后,将作为所述当前主节点的memcache服务器中的缓存数据同步到所述恢复的memcache服务器中。3.根据权利要求1所述的系统,其特征在于,所述magent集群代理服务器对所述当前主节点进行故障监测具体为: 所述magent集群代理服务器每隔预设时间,主动询问作为当前主节点的memcache服务器的运行状态,当监测到当前主节点的memcache服务器出现故障则触发所述主备切换。4.根据权利要求1所述的系统,其特征在于,所述magent集群代理服务器还用于: 将出现故障的memcache服务器切换为备用节点后向管理系统发送状态切换提示信息。5.根据权利要求1所述的系统,其特征在于,所述至少2个所述magent集群代理服务器通过keepalive保活机制对应至一个对外的虚拟IP;在所述magent集群代理服务器出现故障的状态下,待缓存数据通过所述虚拟IP再经由未出现故障的magent集群代理服务器转发至主节点的memcache服务器。
【专利摘要】本发明提供了一种memcache分布式缓存系统,包括:至少一个magent集群代理服务器和至少2个memcache服务器,所述magent集群代理服务器通过一致性哈希算法将数据映射至所述memcache服务器中进行缓存;其中:所述magent集群代理服务器用于:将其中一台所述memcache服务器作为当前主节点,其他memcache服务器为备用节点,对所述当前主节点进行故障监测;在监测到所述当前主节点的memcache服务器出现故障时进行主备切换,即从所述备用节点中选择一memcache服务器切换为当前主节点,将出现故障的memcache服务器切换为备用节点;在监测到所述故障的memcache服务器恢复后,仍将恢复的memcache服务器作为备用节点。
【IPC分类】H04L29/08, H04L12/24
【公开号】CN105554106
【申请号】CN201510934681
【发明人】周光呈
【申请人】上海仪电(集团)有限公司
【公开日】2016年5月4日
【申请日】2015年12月15日
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1