一种实现分布式缓存节点动态更新到客户端的方法及系统的制作方法

文档序号:7868090阅读:147来源:国知局
专利名称:一种实现分布式缓存节点动态更新到客户端的方法及系统的制作方法
技术领域
本发明涉及分布式缓存领域,特别涉及一种实现分布式缓存节点动态更新到客户端的方法及系统。
背景技术
分布式缓存由于其性能强大、协议简单、调用高效的优点,使其在互联网中得到广泛应用。当局部缓存节点故障时,可以通过将故障节点删除,新增缓存节点保证分布式缓存 的高效率服务。但是,在分布式缓存提供高效率服务的同时,忽略了客户端缓存节点维护的问题。目前客户端要使用分布式缓存节点,需要预先将分布式缓存节点的集合配置到客户端,由客户端把要存储的数据分布在各个缓存节点上。然而,客户端所配置的缓存节点是预先静态配置的固定的节点集合,在后续分布式缓存节点故障时,所删除的故障节点不能及时从客户端的节点集合中删除,为了保证正常服务新增的节点也不能及时为客户端服务,导致客户端可用的节点越来越少,无法达到高速率存取的效果。

发明内容
有鉴于此,本发明的主要目的在于提供一种实现分布式缓存节点动态更新到客户端的方法及系统以实现删除的故障缓存节点能够及时从客户端的节点集合中删除,新增的缓存节点能够及时为客户端服务的目的。本发明提供了一种实现分布式缓存节点动态更新到客户端的方法,该方法包括根据所接收的新增可用缓存节点的通知,获得新增可用缓存节点的IP地址和端Π ;将该新增可用缓存节点的IP地址和端口增加到缓存节点集合中;根据所接收的删除不可用缓存节点的通知,获得不可用缓存节点的IP地址和端Π ;将该不可用缓存节点的IP地址和端口从缓存节点集合中删除;在客户端应用所述缓存节点集合使客户端将访问请求发送到所述缓存节点集合中的缓存节点。可选地,所述根据所接收的新增可用缓存节点的通知,获得新增可用缓存节点的IP地址和端口,具体在客户端通过监听所述通知获得;所述将该新增可用缓存节点的IP地址和端口增加到缓存节点集合中,具体在客户端将该新增可用缓存节点的IP地址和端口增加到客户端的缓存节点集合中;所述根据所接收的删除不可用缓存节点的通知,获得不可用缓存节点的IP地址和端口,具体在客户端通过监听所述通知获得;所述将该不可用缓存节点的IP地址和端口从缓存节点集合中删除,具体从客户端的缓存节点集合中删除。
可选地,所述根据所接收的新增可用缓存节点的通知,获得新增可用缓存节点的IP地址和端口,具体在状态服务器端通过监听所述通知获得;所述将该新增可用缓存节点的IP地址和端口增加到缓存节点集合中,具体在状态服务器端将该新增可用缓存节点的IP地址和端口增加到状态服务器的缓存节点集合中;所述根据所接收的删除不可用缓存节点的通知,获得不可用缓存节点的IP地址和端口,具体在状态服务器端通过监听所述通知获得;所述将该不可用缓存节点的IP地址和端口从缓存节点集合中删除,具体从状态服务器的缓存节点集合中删除;将所述缓存节点集合作为客户端的缓存节点集合之前,还将所述缓存节点集合从 状态服务器端发送到所述客户端。可选地,所述将缓存节点集合从状态服务器端发送到客户端具体在当前时间距离上一次将缓存节点集合从状态服务器端发送到客户端的时间的时间间隔等于定时时间时发送。可选地,所述将缓存节点集合从状态服务器端发送到客户端具体在接收到客户端更新缓存节点集合请求时发送。可选地,所述客户端具体在连接缓存节点失败时向状态服务器发送所述更新缓存节点集合请求。可选地,所述客户端具体在监听到状态服务器发送更新通知时,向状态服务器发送所述更新缓存节点集合请求;所述状态服务器端具体在将新增可用缓存节点的IP地址和端口增加到状态服务器的缓存节点集合时和将不可用缓存节点的IP地址和端口从缓存节点集合中删除时,发送更新通知。可选地,所述接收新增可用缓存节点的通知和所述删除不可用缓存节点的通知具体从缓存监控服务器获得;其中所述缓存监控服务器具体通过以下步骤生成新增可用缓存节点的通知和删除不可用缓存节点的通知通过获得新增缓存节点的IP地址和端口,生成新增可用缓存节点的通知,所述通知包括该新增缓存节点的IP地址和端口,且将该IP地址和端口保存在缓存监控服务器的缓存节点集合中;从保存的缓存节点集合获得缓存节点的IP地址和端口,向各个缓存节点发出访问,在没收到缓存节点的反馈时,生成删除不可用缓存节点的通知,所述通知包括该没收到反馈的缓存节点的IP地址和端口。本发明还提供一种实现分布式缓存节点动态更新到客户端的系统,该系统包括缓存节点更新模块用于根据所接收的新增可用缓存节点的通知,获得新增可用缓存节点的IP地址和端口,将该新增可用缓存节点的IP地址和端口增加到缓存节点集合中,根据所接收的删除不可用缓存节点的通知,获得不可用缓存节点的IP地址和端口,将该不可用缓存节点的IP地址和端口从缓存节点集合中删除;客户端更新模块用于在客户端应用所述缓存节点集合使客户端将访问请求发送到所述缓存节点集合中的缓存节点。
可选地,所述缓存节点更新模块具体用于在客户端根据所接收的新增可用缓存节点的通知,获得新增可用缓存节点的IP地址和端口,将该新增可用缓存节点的IP地址和端口增加到客户端的缓存节点集合中,根据所接收的删除不可用缓存节点的通知,获得不可用缓存节点的IP地址和端口,将该不可用缓存节点的IP地址和端口从客户端的缓存节点集合中删除。可选地,所述缓存节点更新模块具体用于在状态服务器端根据所接收的新增可用缓存节点的通知,获得新增可用缓存节点的IP地址和端口,将该新增可用缓存节点的IP地址和端口增加到状态服务器的缓存节点集合中,根据所接收的删除不可用缓存节点的通知,获得不可用缓存节点的IP地址和端口,将该不可用缓存节点的IP地址和端口从状态服务器的缓存节点集合中删除;所述缓存节点更新模块还用于将所述缓存节点集合从状态服务器端发送到在客户端的客户端更新模块。可选地,所述缓存节点更新模块具体用于从缓存监控服务器接收新增可用缓存节点的通知和删除不可用缓存节点的通知;缓存监控服务器用于通过获得新增缓存节点的IP地址和端口,生成新增可用缓存节点的通知,所述通知包括该新增缓存节点的IP地址和端口,且将该IP地址和端口保存在缓存监控服务器的缓存节点集合中,通过保存的缓存节点集合获得缓存节点的IP地址和端口,向各个缓存节点发出访问,在没收到缓存节点的反馈时,生成删除不可用缓存节点的通知,所述通知包括该没收到反馈的缓存节点的IP地址和端口。可见本发明具有如下有益效果由于本发明根据所接收的新增可用缓存节点的通知和删除不可用缓存节点的通知,及时得到新增和不可用缓存节点的IP地址和端口,将新增缓存节点的IP地址和端口增加到缓存节点集合中,将不可用缓存节点的IP地址和端口从缓存节点集合中删除,从而得到动态更新的可用缓存节点的集合,在客户端应用所述缓存节点集合使客户端将访问发送到可用节点,实现了删除的故障缓存节点能够及时从客户端的节点集合中删除,新增加的缓存节点能够及时为客户端服务的目的。


图I是本发明一种实现分布式缓存节点动态更新到客户端的方法的流程图;图2是本发明一种实现分布式缓存节点动态更新到客户端的系统的组成图;图3是本发明一种实现分布式缓存节点动态更新到客户端的系统的一实施例组成图;图4是本发明一种实现分布式缓存节点动态更新到客户端的系统的另一实施例组成图。
具体实施例方式为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式
对本发明实施例作进一步详细的说明。
参见图1,为本发明提供的一种实现分布式缓存节点动态更新到客户端的方法的流程图,如图所示,该方法包括S101、根据所接收的新增可用缓存节点的通知,获得新增可用缓存节点的IP地址和端口 ;S102、将该新增可用缓存节点的IP地址和端口增加到缓存节点集合中;S103、根据所接收的删除不可用缓存节点的通知,获得不可用缓存节点的IP地址和端口 ;S104、将该不可用缓存节点的IP地址和端口从缓存节点集合中删除;S105、在客户端应用所述缓存节点集合使客户端将访问请求发送到所述缓存节点集合的缓存节点。应用该实施例实现的方法,根据所接收的新增可用缓存节点的通知和删除不可用缓存节点的通知,及时得到新增和不可用缓存节点的IP地址和端口,将新增缓存节点的IP地址和端口增加到缓存节点集合中,将不可用缓存节点的IP地址和端口从缓存节点集合中删除,从而得到动态更新的可用缓存节点的集合,在客户端应用所述缓存节点集合使客户端将访问发送到可用节点,实现了删除的故障缓存节点能够及时从客户端的节点集合中删除,新增加的缓存节点能够及时为客户端服务的目的。在本发明的一个实施例中,该方法步骤SlOl到S104可以在客户端完成,具体地其中,步骤SlOl根据所接收的新增可用缓存节点的通知,获得新增可用缓存节点的IP地址和端口,具体在客户端通过监听所述通知获得;其中,步骤S102所述将该新增可用缓存节点的IP地址和端口增加到缓存节点集合中,具体在客户端将该新增可用缓存节点的IP地址和端口增加到客户端的缓存节点集合中;其中,步骤S103所述根据所接收的删除不可用缓存节点的通知,获得不可用缓存节点的IP地址和端口,具体在客户端通过监听所述通知获得;其中,步骤S104所述将该不可用缓存节点的IP地址和端口从缓存节点集合中删除,具体从客户端的缓存节点集合中删除。在本发明的另一实施例中,步骤SlOl到S104可以在状态服务器端完成,具体地其中,步骤SlOl所述根据所接收的新增可用缓存节点的通知,获得新增可用缓存节点的IP地址和端口,具体在状态服务器端通过监听所述通知获得;其中,步骤S102所述将该新增可用缓存节点的IP地址和端口增加到缓存节点集合中,具体在状态服务器端将该新增可用缓存节点的IP地址和端口增加到状态服务器的缓存节点集合中;其中,步骤S103所述根据所接收的删除不可用缓存节点的通知,获得不可用缓存节点的IP地址和端口,具体在状态服务器端通过监听所述通知获得;其中,步骤S104所述将该不可用缓存节点的IP地址和端口从缓存节点集合中删除,具体从状态服务器的缓存节点集合中删除;而且,在该实施例中,将所述缓存节点集合作为客户端的缓存节点集合之前,还将所述缓存节点集合从状态服务器端发送到所述客户端;其中,所述将缓存节点集合从状态服务器端发送到客户端具体可以在当前时间距离上一次将缓存节点集合从状态服务器端发送到客户端的时间的时间间隔等于定时时间时发送;还可以在接收到客户端更新缓存节点集合请求时发送。其中,所述客户端具 体可以在连接缓存节点失败时向状态服务器发送所述更新缓存节点集合请求。还可以在监听到状态服务器发送更新通知时,向状态服务器发送所述更新缓存节点集合请求,其中,所述状态服务器端具体在将新增可用缓存节点的IP地址和端口增加到状态服务器的缓存节点集合时和将不可用缓存节点的IP地址和端口从缓存节点集合中删除时,发送更新通知。需要说明的是,其中,步骤S105在客户端应用所述缓存节点集合使客户端将访问请求发送到所述缓存节点集合中的缓存节点,具体可以在客户端应用所述缓存节点集合,采用哈希算法将客户端的访问发送到各个可用缓存节点IP地址和端口。应用该实施例实现的方法,在状态服务器端动态更新可用缓存节点的集合,可以使得各个客户端均从状态服务器获取动态更新的可用缓存节点的集合,保持分布式缓存节点在各个客户端的一致性,使可用的缓存节点都能够及时应用到各个客户端,而不必由各个客户端各自负责缓存节点的动态更新,提高了缓存节点更新的效率和一致性。下面对在以上实施例中步骤SlOl和步骤S103所述接收的通知进行解释,具体地,所述接收新增可用缓存节点的通知和所述删除不可用缓存节点的通知具体可以从缓存监控服务器获得,其中,所述缓存监控服务器具体可以通过以下步骤生成新增可用缓存节点的通知和删除不可用缓存节点的通知通过获得新增缓存节点的IP地址和端口,生成新增可用缓存节点的通知,所述通知包括该新增缓存节点的IP地址和端口,且将该IP地址和端口保存在缓存监控服务器的缓存节点集合中;从保存的缓存节点集合获得缓存节点的IP地址和端口,向各个缓存节点发出访问,在没收到缓存节点的反馈时,生成删除不可用缓存节点的通知,所述通知包括该没收到反馈的缓存节点的IP地址和端口。在本发明中应用缓存监控服务器向缓存节点发出访问,保持与缓存节点的通讯,在没收到缓存节点的反馈时,可以确定该缓存节点故障不可用,返回删除不可用缓存节点的通知,可以实现及时发现节点故障的目的;获得新增缓存节点的IP地址和端口后,将该IP地址和端口保存在缓存监控服务器的缓存节点集合中,并发出新增可用缓存节点的通知,可以实现使客户端的节点集合及时获得新增节点的目的,需要说明的是,该生成新增缓存节点的通知和删除不可用缓存节点的通知的缓存监控服务器仅仅是本发明的一种实施方式,在本发明方法基础上,还可以有其他获得新增缓存节点的通知和删除不可用缓存节点的通知的方法,本发明在此方面不受任何限制。参见图2,为本发明提供的一种实现分布式缓存节点动态更新到客户端的系统,如图所示,该系统包括缓存节点更新模块201 :用于根据所接收的新增可用缓存节点的通知,获得新增可用缓存节点的IP地址和端口,将该新增可用缓存节点的IP地址和端口增加到缓存节点集合中,根据所接收的删除不可用缓存节点的通知,获得不可用缓存节点的IP地址和端口,将该不可用缓存节点的IP地址和端口从缓存节点集合中删除;客户端更新模块202 :用于在客户端应用所述缓存节点集合使客户端将访问请求发送到所述缓存节点集合中的缓存节点。在本发明系统的一个实施例中,参见图3,所述缓存节点更新模块301 :具体可以用于在客户端根据所接收的新增可用缓存节点的通知,获得新增可用缓存节点的IP地址和端口,将该新增可用缓存节点的IP地址和端口增加到客户端的缓存节点集合中,根据所接收的删除不可用缓存节点的通知,获得不可用缓存节点的IP地址和端口,将该不可用缓存节点的IP地址和端口从客户端的缓存节点集合中删除;所述客户端更新模块302 :具体可以用于从所述缓存节点更新模块301接收所述缓存节点集合,在客户端应用所述缓存节点集合使客户端将访问请求发送到所述缓存节点集合中的缓存节点。在本发明系统的另一个实施例中,参见图4,所述缓存节点更新模块401 :具体可 以用于在状态服务器端根据所接收的新增可用缓存节点的通知,获得新增可用缓存节点的IP地址和端口,将该新增可用缓存节点的IP地址和端口增加到状态服务器的缓存节点集合中,根据所接收的删除不可用缓存节点的通知,获得不可用缓存节点的IP地址和端口,将该不可用缓存节点的IP地址和端口从状态服务器的缓存节点集合中删除;所述缓存节点更新模块401 :还用于将所述缓存节点集合从状态服务器发送到所述客户端;所述客户端更新模块402 :具体可以用于从在状态服务器端的缓存节点更新模块401接收所述缓存节点集合,在客户端应用所述缓存节点集合使客户端将访问请求发送到所述缓存节点集合中的缓存节点。其中,上述系统实施例中所述缓存节点更新模块301和401 :具体可以用于从缓存监控服务器接收新增可用缓存节点的通知和删除不可用缓存节点的通知; 其中,所述缓存监控服务器303和403 :具体可以用于通过获得新增缓存节点的IP地址和端口,生成新增可用缓存节点的通知,所述通知包括该新增缓存节点的IP地址和端口,且将该IP地址和端口保存在缓存监控服务器的缓存节点集合中,通过保存的缓存节点集合获得缓存节点的IP地址和端口,向各个缓存节点发出访问,在没收到缓存节点的反馈时,生成删除不可用缓存节点的通知,所述通知包括该没收到反馈的缓存节点的IP地址和端口。需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
权利要求
1.一种实现分布式缓存节点动态更新到客户端的方法,其特征在于,包括 根据所接收的新增可用缓存节点的通知,获得新增可用缓存节点的IP地址和端口 ; 将该新增可用缓存节点的IP地址和端口增加到缓存节点集合中; 根据所接收的删除不可用缓存节点的通知,获得不可用缓存节点的IP地址和端口 ; 将该不可用缓存节点的IP地址和端口从缓存节点集合中删除; 在客户端应用所述缓存节点集合使客户端将访问请求发送到所述缓存节点集合中的缓存节点。
2.根据权利要求I所述的方法,其特征在于,所述根据所接收的新增可用缓存节点的通知,获得新增可用缓存节点的IP地址和端口,具体在客户端通过监听所述通知获得; 所述将该新增可用缓存节点的IP地址和端口增加到缓存节点集合中,具体在客户端将该新增可用缓存节点的IP地址和端口增加到客户端的缓存节点集合中; 所述根据所接收的删除不可用缓存节点的通知,获得不可用缓存节点的IP地址和端口,具体在客户端通过监听所述通知获得; 所述将该不可用缓存节点的IP地址和端口从缓存节点集合中删除,具体从客户端的缓存节点集合中删除。
3.根据权利要求I所述的方法,其特征在于, 所述根据所接收的新增可用缓存节点的通知,获得新增可用缓存节点的IP地址和端口,具体在状态服务器端通过监听所述通知获得; 所述将该新增可用缓存节点的IP地址和端口增加到缓存节点集合中,具体在状态服务器端将该新增可用缓存节点的IP地址和端口增加到状态服务器的缓存节点集合中;所述根据所接收的删除不可用缓存节点的通知,获得不可用缓存节点的IP地址和端口,具体在状态服务器端通过监听所述通知获得; 所述将该不可用缓存节点的IP地址和端口从缓存节点集合中删除,具体从状态服务器的缓存节点集合中删除; 将所述缓存节点集合作为客户端的缓存节点集合之前,还将所述缓存节点集合从状态服务器端发送到所述客户端。
4.根据权利要求3所述的方法,其特征在于,所述将缓存节点集合从状态服务器端发送到客户端具体在当前时间距离上一次将缓存节点集合从状态服务器端发送到客户端的时间的时间间隔等于定时时间时发送。
5.根据权利要求3所述的方法,其特征在于,所述将缓存节点集合从状态服务器端发送到客户端具体在接收到客户端更新缓存节点集合请求时发送。
6.根据权利要求5所述的方法,其特征在于,所述客户端具体在连接缓存节点失败时向状态服务器发送所述更新缓存节点集合请求。
7.根据权利要求5所述的方法,其特征在于,所述客户端具体在监听到状态服务器发送更新通知时,向状态服务器发送所述更新缓存节点集合请求; 所述状态服务器端具体在将新增可用缓存节点的IP地址和端口增加到状态服务器的缓存节点集合时和将不可用缓存节点的IP地址和端口从缓存节点集合中删除时,发送更新通知。
8.根据权利要求I到3任意一项所述的方法,其特征在于,所述接收新增可用缓存节点的通知和所述删除不可用缓存节点的通知具体从缓存监控服务器获得; 其中所述缓存监控服务器具体通过以下步骤生成新增可用缓存节点的通知和删除不可用缓存节点的通知 通过获得新增缓存节点的IP地址和端口,生成新增可用缓存节点的通知,所述通知包括该新增缓存节点的IP地址和端口,且将该IP地址和端口保存在缓存监控服务器的缓存节点集合中; 从保存的缓存节点集合获得缓存节点的IP地址和端口,向各个缓存节点发出访问,在没收到缓存节点的反馈时,生成删除不可用缓存节点的通知,所述通知包括该没收到反馈的缓存节点的IP地址和端口。
9.一种实现分布式缓存节点动态更新到客户端的系统,其特征在于,包括 缓存节点更新模块用于根据所接收的新增可用缓存节点的通知,获得新增可用缓存节点的IP地址和端口,将该新增可用缓存节点的IP地址和端口增加到缓存节点集合中,根据所接收的删除不可用缓存节点的通知,获得不可用缓存节点的IP地址和端口,将该不可用缓存节点的IP地址和端口从缓存节点集合中删除; 客户端更新模块用于在客户端应用所述缓存节点集合使客户端将访问请求发送到所述缓存节点集合中的缓存节点。
10.根据权利要求9所述的系统,其特征在于, 所述缓存节点更新模块具体用于在客户端根据所接收的新增可用缓存节点的通知,获得新增可用缓存节点的IP地址和端口,将该新增可用缓存节点的IP地址和端口增加到客户端的缓存节点集合中,根据所接收的删除不可用缓存节点的通知,获得不可用缓存节点的IP地址和端口,将该不可用缓存节点的IP地址和端口从客户端的缓存节点集合中删除。
11.根据权利要求9所述的系统,其特征在于, 所述缓存节点更新模块具体用于在状态服务器端根据所接收的新增可用缓存节点的通知,获得新增可用缓存节点的IP地址和端口,将该新增可用缓存节点的IP地址和端口增加到状态服务器的缓存节点集合中,根据所接收的删除不可用缓存节点的通知,获得不可用缓存节点的IP地址和端口,将该不可用缓存节点的IP地址和端口从状态服务器的缓存节点集合中删除; 所述缓存节点更新模块还用于将所述缓存节点集合从状态服务器端发送到在客户端的客户端更新模块。
12.根据权利要求9到11任意一项所述的系统,其特征在于,所述缓存节点更新模块具体用于从缓存监控服务器接收新增可用缓存节点的通知和删除不可用缓存节点的通知; 缓存监控服务器用于通过获得新增缓存节点的IP地址和端口,生成新增可用缓存节点的通知,所述通知包括该新增缓存节点的IP地址和端口,且将该IP地址和端口保存在缓存监控服务器的缓存节点集合中,通过保存的缓存节点集合获得缓存节点的IP地址和端口,向各个缓存节点发出访问,在没收到缓存节点的反馈时,生成删除不可用缓存节点的通知,所述通知包括该没收到反馈的缓存节点的IP地址和端口。
全文摘要
本发明公开了一种实现分布式缓存节点动态更新到客户端的方法及系统,包括根据所接收的新增可用缓存节点的通知,获得新增可用缓存节点的IP地址和端口;将该新增可用缓存节点的IP地址和端口增加到缓存节点集合中;根据所接收的删除不可用缓存节点的通知,获得不可用缓存节点的IP地址和端口;将该不可用缓存节点的IP地址和端口从缓存节点集合中删除;在客户端应用所述缓存节点集合使客户端将访问请求发送到所述缓存节点集合中的缓存节点,实现了删除的故障缓存节点能够及时从客户端的节点集合中删除,新增的缓存节点能够及时为客户端服务的目的。
文档编号H04L29/08GK102984267SQ20121052649
公开日2013年3月20日 申请日期2012年12月7日 优先权日2012年12月7日
发明者何洲 申请人:北京搜狐新媒体信息技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1