CN103338243B - Web节点的缓存数据更新方法和系统 - Google Patents
Web节点的缓存数据更新方法和系统 Download PDFInfo
- Publication number
- CN103338243B CN103338243B CN201310247168.8A CN201310247168A CN103338243B CN 103338243 B CN103338243 B CN 103338243B CN 201310247168 A CN201310247168 A CN 201310247168A CN 103338243 B CN103338243 B CN 103338243B
- Authority
- CN
- China
- Prior art keywords
- web
- server
- data
- node
- key assignments
- 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.)
- Active
Links
Landscapes
- Computer And Data Communications (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种Web节点的缓存数据更新方法和系统,所述方法包括:Web节点在修改本节点缓存的数据后,更新中心节点服务器中相应的数据;并向清除接口服务器发送清除消息,所述清除消息中携带有对应所述数据的键值;所述清除接口服务器将所述清除消息发送到其它Web节点;所述其它Web节点查找本节点中是否缓存有所述键值对应的数据;若有,则将所述键值对应的数据删除;所述其它Web节点若接收到所述数据的请求信息,则从所述中心节点服务器中获取更新后的数据。本发明的技术方案中,其它Web节点在无该数据的情况下,若接收到用户对该数据的请求,则从中心节点服务器获取更新后的数据,避免出现返回更新前的错误数据的现象。
Description
技术领域
本发明涉及互联网技术,尤其涉及一种Web节点的缓存数据更新方法和系统。
背景技术
随着互联网流媒体业务等宽带网络应用的日益丰富,互联网宽带用户数量与日俱增,对骨干网带宽构成了极大的压力。减少用户访问流量的拥塞及用户访问的响应时间,已成为一个重要的问题,在互联网基础上广泛部署了一种分布式缓存的网络架构用以解决这一问题。
分布式缓存的网络架构中,通常包括设置在网络中心节点的中心节点服务器(或称源服务器),以及设置在靠近用户的网络边缘节点设置缓存服务器(或称Web节点)。
Web节点接收到用户通过客户端发送的数据请求信息后,从中心节点服务器获取相应数据向用户返回,并将获取的数据缓存在本地,形成源服务器的部分镜像;从而在其它用户访问该数据时,不必再从中心节点服务器获取数据,从而提高用户访问的响应速度,节省网络带宽,有效地减轻中心节点服务器的负荷。缓存于Web节点的数据可以是微博博文、微博用户的用户信息、论坛或贴吧中各用户的发言等。
这种分布式缓存的网络架构虽然可以节省网络带宽,有效地减轻中心节点服务器的负荷,但是也带来了数据更新的问题:如果用户对某个Web节点中缓存的数据进行修改后,如何对缓存于众多的、其它Web节点中的该数据进行同步更新则成为一个亟待解决的问题。
例如,某个微博用户通过客户端修改了其用户信息后,最近的Web节点将缓存该微博用户修改后的用户信息;然而,此时其它Web节点中则可能仍缓存该微博用户的修改前的用户信息;这将造成在不同地域进行访问时,出现用户信息的数据不一致的情况。目前,为解决该问题,缓存了修改后的数据的Web节点将根据修改后的数据对中心节点服务器中相应的数据进行更新;而其它Web节点则在接收到用户发送的该数据的请求信息后,在判定本节点中该数据的有效期过期后,重新向中心节点服务器获取修改后的数据。然而,这样在数据没有过期之前,其它Web节点将向用户返回修改前的数据;造成其它Web节点上的数据不能及时更新的问题,而出现向用户返回错误数据的情况。
发明内容
本发明的实施例提供了一种Web节点的缓存数据更新方法和系统,使得Web节点中缓存的数据得以及时更新,避免出现向用户返回错误数据的情况。
根据本发明的一个方面,提供了一种Web节点的缓存数据更新方法,包括:Web节点在修改本节点缓存的数据后,更新中心节点服务器中相应的数据;并
向清除接口服务器发送清除消息,所述清除消息中携带有对应所述数据的键值;
所述清除接口服务器将所述清除消息发送到其它Web节点;
所述其它Web节点查找本节点中是否缓存有所述键值对应的数据;若有,则将所述键值对应的数据删除;
所述其它Web节点若接收到所述数据的请求信息,则从所述中心节点服务器中获取更新后的数据。
较佳地,所述清除接口服务器将所述清除消息发送到其它Web节点,具体包括:
所述清除接口服务器将所述清除消息向清除消息发布服务器发送;清除消息发布服务器根据预先存储的各集群服务器的IP地址,向各集群服务器发送所述清除消息;
所述其它Web节点周期性地与服务于本节点的集群服务器进行通信,在确定与之通信的集群服务器接收到所述清除消息后,从该集群服务器获取该清除消息。
进一步,在所述与该集群服务器进行通信之前,还包括:
所述其它Web节点若与该集群服务器建立连接失败,则根据预先存储的所述清除消息发布服务器的IP地址,从所述清除消息发布服务器获取集群服务器的列表;并从所述列表中选取与本节点连接响应速度最快的集群服务器,用以替换原服务于本节点的集群服务器,作为当前的服务于本节点的集群服务器。
进一步,在所述Web节点在修改本节点缓存的数据后,更新中心节点服务器中相应的数据后,还包括:
在每个监测周期到达时,监控服务器向所述清除接口服务器发送清除消息,该清除消息中携带的键值为预先设定的特定键值,并在设定时间段后向各Web节点发送携带有所述特定键值的键值查询指令;
所述清除接口服务器将接收到的清除消息向各Web节点发送,所述Web节点接收到该清除消息后,根据从中解析出的特定键值将本Web节点缓存的特定键值删除;
所述Web节点接收到所述键值查询指令后,根据从中解析出的特定键值,查找本Web节点的缓存中是否存有所述特定键值;若有,则向所述监控服务器发送故障报警信息;之后,所述Web节点将所述特定键值存储于本Web节点的缓存中。
根据本发明的另一个方面,还提供了一种Web节点的缓存数据更新系统,包括:多个Web节点,在其中一个Web节点修改本节点缓存的数据后,该Web节点更新中心节点服务器中相应的数据,并发送清除消息;其中,所述清除消息中携带有对应所述数据的键值;
清除接口服务器,用于接收所述清除消息,并将所述清除消息发送到所述多个Web节点中的其它Web节点;
所述其它Web节点查找本节点中是否缓存有所述键值对应的数据;若有,则将所述键值对应的数据删除;以及所述其它Web节点若接收到所述数据的请求信息,则从所述中心节点服务器中获取更新后的数据。
进一步,所述系统还包括:
监控服务器,用于在每个监测周期到达时,向所述清除接口服务器发送携带特定键值的清除消息,并在设定时间段后向各Web节点发送携带有所述特定键值的键值查询指令;以及
所述Web节点还用于接收到所述键值查询指令后,根据从中解析出的特定键值,查找本Web节点的缓存中是否存有所述特定键值;若有,则向所述监控服务器发送故障报警信息;之后,将所述特定键值存储于本Web节点的缓存中。
根据本发明的另一个方面,还提供了一种Web节点的缓存数据更新系统,包括:多个Web节点,在其中一个Web节点修改本节点缓存的数据后,该Web节点更新中心节点服务器中相应的数据;并发送清除消息;其中,所述清除消息中携带有对应所述数据的键值;
清除接口服务器,用于接收所述Web节点发送的清除消息后,转发该清除消息;
清除消息发布服务器和多个集群服务器,所述清除消息发布服务器用于接收所述清除接口服务器转发的清除消息,并根据预先存储的各集群服务器的IP地址,向各集群服务器发送所述清除消息;
所述多个Web节点中的其它Web节点周期性地与服务于本节点的集群服务器进行通信,在确定与之通信的集群服务器接收到所述清除消息后,从该集群服务器获取该清除消息,查找本节点中是否缓存有所述键值对应的数据;若有,则将所述键值对应的数据删除;以及所述其它Web节点若接收到所述数据的请求信息,则从所述中心节点服务器中获取更新后的数据。
根据本发明的另一个方面,还提供了一种故障监测方法,包括:在每个监测周期到达时,监控服务器向清除接口服务器发送携带特定键值的清除消息,并在设定时间段后向各Web节点发送携带有所述特定键值的键值查询指令;
所述清除接口服务器将接收到的清除消息向各Web节点发送,所述Web节点接收到该清除消息后,根据从中解析出的特定键值将本地缓存的特定键值删除;
所述Web节点接收到所述键值查询指令后,根据从中解析出的特定键值,查找本地缓存中是否存有所述特定键值;若有,则向所述监控服务器发送故障报警信息;之后,所述Web节点将所述特定键值存储于本地缓存中。
本发明的技术方案中,在一个Web节点的缓存数据被修改后,对中心节点服务器中相应的数据进行更新,对其它Web节点中缓存的该数据进行删除;其它Web节点在无该数据的情况下,若接收到用户对该数据的请求,则从中心节点服务器获取更新后的数据,避免出现其它Web节点返回更新前的错误数据的现象。
而且,由于通知其它Web节点删除若干数据的信息量是远小于更新其它Web节点中该数据的信息量;而其它Web节点中该数据不一定会被再次访问到,无访问则无需更新;因此,本发明的Web节点的缓存数据更新系统,在实现更新Web节点缓存数据过程中,比现有系统占用更少的网络资源。
而且,本发明的Web节点的缓存数据更新系统还可以包含监控服务器,可以检测各Web节点的清除功能是否异常,提高了系统的可靠性。
附图说明
图1a、1b为本发明实施例的Web节点的缓存数据更新系统的一种架构图;
图2为本发明实施例的Web节点的缓存数据的一种更新方法的流程图;
图3a、3b为本发明实施例的Web节点的缓存数据更新系统的另一种架构图;
图4为本发明实施例的Web节点的缓存数据的另一种更新方法的流程图;
图5为本发明实施例的对Web节点的缓存数据更新系统进行故障监测的流程图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举出优选实施例,对本发明进一步详细说明。然而,需要说明的是,说明书中列出的许多细节仅仅是为了使读者对本发明的一个或多个方面有一个透彻的理解,即便没有这些特定的细节也可以实现本发明的这些方面。
本申请使用的“模块”、“系统”等术语旨在包括与计算机相关的实体,例如但不限于硬件、固件、软硬件组合、软件或者执行中的软件。例如,模块可以是,但并不仅限于:处理器上运行的进程、处理器、对象、可执行程序、执行的线程、程序和/或计算机。举例来说,计算设备上运行的应用程序和此计算设备都可以是模块。一个或多个模块可以位于执行中的一个进程和/或线程内,一个模块也可以位于一台计算机上和/或分布于两台或更多台计算机之间。
本发明的发明人考虑到,如果在一个Web节点的缓存数据被修改后,对其它Web节点都进行该数据的修改操作将占用大量的网络资源;事实上,有的Web节点中缓存的该数据并不一定会被再次访问到,而对该Web节点中缓存的该数据进行更新将导致网络资源的浪费。
因此,本发明的主要思路为,在一个Web节点的缓存数据被修改后,根据修改后的数据对中心节点服务器中相应的数据进行更新,并对其它Web节点中缓存的该数据进行删除操作;而其它Web节点在该数据被删除后,若接收到用户发送的该数据的请求信息,则可以从中心节点服务器获取修改后的数据向用户返回,使得该Web节点中缓存的数据得以及时更新,避免出现向用户返回错误数据的情况。
而且,通知Web节点删除某个数据的信息量将是非常小的,从而在网络中传递该删除信息不会占用大量网络资源。
下面结合附图详细说明本发明实施例的技术方案。本发明实施例提供的Web节点的缓存数据更新系统,如图1所示,包括:分布于各处的Web节点101、设置于网络中心节点处的中心节点服务器102、清除接口服务器103;其中,Web节点101为多个。
图1所示的Web节点的缓存数据更新系统进行Web节点的缓存数据更新方法的流程,如图2所示,具体包括如下步骤:
S201:客户端向Web节点A发送数据请求信息。
具体地,用户通过客户端向Web节点A发送数据请求信息。其中,Web节点A为上述多个Web节点101中,其中一个Web节点。
S202:Web节点A根据接收到的数据请求信息,返回相应数据。
具体地,Web节点A根据接收到的数据请求信息,在本Web节点的缓存中查找是否有该数据请求信息所请求的数据:若有,则将该数据返回给客户端;否则,Web节点A从中心节点服务器102获取该数据请求信息所请求的数据,将获得的数据返回给客户端,并存储在本Web节点的缓存中。
事实上,Web节点101从中心节点服务器102获取数据请求信息所请求的数据时,还可以同时获取对应该数据的键值。所述键值是对应数据的唯一标识,可以是根据其对应的数据的生成时间和属性生成的;例如,对于某个用户的注册信息,可以根据注册时间,以及用户ID生成对应该用户的注册信息的键值。中心节点服务器102中保存了数据及其对应的键值。
S203:用户对客户端接收到的Web节点A发送的数据进行修改后,将修改后的数据向Web节点A发送。
S204:Web节点A在接收到用户发送的修改后的数据后,修改本Web节点缓存中对应的数据。
S205:Web节点A将接收到修改后的数据,发送给中心节点服务器102;中心节点服务器102更新相应的数据。
具体地,Web节点A在修改本Web节点缓存的数据后,将修改后的数据发送给中心节点服务器102;中心节点服务器102根据接收到的修改后的数据,更新本服务器中相应的数据。
S206:Web节点A向清除接口服务器103发送清除消息。
具体地,Web节点A在修改本Web节点缓存的数据后,向清除接口服务器103上报清除消息,该清除消息中携带有被修改的数据所对应的键值;若被修改的数据有多个,则对应这些被修改的数据的键值也有多个,则发送的清除消息中可携带包含多个修改的数据的键值的列表。
S207:清除接口服务器103将接收到的清除消息向其它Web节点发送。
具体地,清除接口服务器103接收到清除消息后,向Web节点101中的其它Web节点下发该清除消息。
作为一种更优的实施方式,清除接口服务器103在向其它Web节点发送清除消息之前,还可检测与各Web节点之间的连接状态,若检测到与某个Web节点之间无法建立连接,则将该Web节点标记为离线,并不再向该Web节点发送清除消息,以节省清除接口服务器103的资源。
S208:其它Web节点接收到清除接口服务器103发送的清除消息后,查找本Web节点中是否缓存有该清除消息涉及的数据;若有,则将该清除消息涉及的数据删除。
具体地,其它Web节点接收到清除接口服务器103发送的清除消息后,从中获取携带的键值;根据获取的键值查找本Web节点中是否缓存有该键值对应的数据;若有,则将该键值对应的数据删除。由于清除消息中可能携带多个键值,因此根据一个清除消息Web节点有可能删除多个数据。
S209:其它Web节点(比如其它Web节点中的Web节点B)若接收到客户端发送的被删除的数据的数据请求信息,则将该请求信息发送给中心节点服务器102。
具体地,在其它Web节点(比如其它Web节点中的Web节点B)根据清除消息删除了相应数据后,若Web节点B接收到客户端发送的数据请求信息,该数据请求信息是用于请求之前已删除的数据的,则Web节点B在本Web节点的缓存中查找该数据请求信息所请求的数据,由于该数据已被删除,因此,Web节点B将该数据请求信息发送给中心节点服务器102,向中心节点服务器102请求获取该数据。
S210:中心节点服务器102向Web节点B返回更新后的数据。
具体地,中心节点服务器102接收到Web节点B发送的请求信息后,根据该请求信息向Web节点B返回相应的数据,该数据在之前已经由Web节点A更新。
S211:Web节点B向客户端返回更新后的数据。
具体地,Web节点B接收到中心节点服务器102返回的更新后的数据后,向客户端返回该更新后的数据,并将更新后的数据缓存于本地;客户端将该更新后的数据呈现给用户。
由于Web节点B根据清除消息删除了对应数据后,若接收到用户对已删除的数据的数据请求信息,由于本Web节点中该数据已不存在,则需要从中心节点服务器102获取相应的更新后的数据向用户返回,从而实现向用户返回更新后的数据,避免了向用户返回错误数据的情况;
而发送到各Web节点的清除消息中仅携带键值,信息量非常小,远小于更新后的数据的信息量,从而在Web网络中向各Web节点传递清除消息比传递更新后的数据所占用的网络资源少;从而以较少网络资源实现Web节点中缓存的数据的及时更新,避免出现向用户返回错误数据。
事实上,在上述步骤中,步骤S205与步骤S206没有严格的先后顺序关系,可以并行执行,也可以先执行步骤S206再执行步骤S205。
在实际应用中,由于设置的Web节点101的数量众多,且为了提高Web节点的缓存数据更新系统的可靠性,本发明提供了一种更优的Web节点的缓存数据更新系统,如图3所示,包括:分布于各处的Web节点301、设置于网络中心节点处的中心节点服务器302、清除接口服务器303,以及清除消息发布服务器304,以及多个集群服务器305。
图3所示的Web节点的缓存数据更新系统进行Web节点的缓存数据更新方法的流程,如图4所示,具体包括如下步骤:
S401:客户端向Web节点C发送数据请求信息。
具体地,用户通过客户端向上述多个Web节点301中的一个Web节点(Web节点C)发送数据请求信息。
S402:Web节点C根据接收到的数据请求信息,返回相应数据。
具体地,Web节点C根据接收到的数据请求信息,在本Web节点的缓存中查找是否有该数据请求信息所请求的数据:若有,则将该数据返回给客户端;否则,Web节点C从中心节点服务器302获取该数据请求信息所请求的数据,将获得的数据返回给客户端,并存储在本Web节点的缓存中。事实上,在中心节点服务器302中存储有各种数据,例如多媒体数据、文本数据、微博博文数据、用户信息数据等,以及对应数据的键值;Web节点301从中心节点服务器302获取数据请求信息所请求的数据时,还可以同时获取对应该数据的键值。
S403:用户对客户端接收到的Web节点C发送的数据进行修改后,将修改后的数据向Web节点C发送。
S404:Web节点C在接收到用户发送的修改后的数据后,修改本Web节点缓存中对应的数据。
S405:Web节点C将接收到修改后的数据,发送给中心节点服务器302;中心节点服务器302更新相应的数据。
具体地,Web节点C在修改本Web节点缓存的数据后,将修改后的数据发送给中心节点服务器302;中心节点服务器302根据接收到的修改后的数据,更新本服务器中相应的数据。
S406:Web节点C向清除接口服务器303发送清除消息。
具体地,Web节点C在修改本Web节点缓存的数据后,向清除接口服务器303上报清除消息,该清除消息中携带有被修改的数据所对应的键值;若被修改的数据有多个,则对应这些被修改的数据的键值也有多个,则发送的清除消息中可携带包含多个修改的数据的键值的列表。
S407:清除接口服务器303将接收到的清除消息向清除消息发布服务器304发送。
S408:清除消息发布服务器304向各集群服务器305转发该清除消息。
具体地,清除消息发布服务器304根据预先存储的各集群服务器的IP地址,向各集群服务器305下发该清除消息。
作为一种更优的实施方式,在清除消息发布服务器304向各集群服务器305发送清除消息之前,清除消息发布服务器304还可检测与各集群服务器305之间的连接状态,若检测到与某个集群服务器之间无法建立连接,则将该集群服务器标记为离线,并不再向该集群服务器发送清除消息,以节省清除消息发布服务器304的资源。
作为一种更优的实施方案,以提高系统的可靠性,系统中的清除消息发布服务器304可以是多个,比如配备两个清除消息发布服务器304。两个清除消息发布服务器304存储有所有的集群服务器的IP地址,但各自分担其中一部分的集群服务器的清除消息转发:两个清除消息发布服务器304同步接收清除接口服务器303发送的清除消息,分别向不同的集群服务器转发接收到的清除消息。
清除接口服务器303还监测与之相连接的两个清除消息发布服务器的连接状态,若监测到其中一个清除消息发布服务器304的连接状态为断开时,则将该清除消息发布服务器标记为离线,不再向该清除消息发布服务器304发送清除消息,并向另一个清除消息发布服务器304发送通知;另一个清除消息发布服务器304接收到该通知后,若接收到清除接口服务器303发送的清除消息,则根据预先存储的所有的集群服务器的IP地址,向所有的集群服务器转发清除消息;从而保证了在一个清除消息发布服务器304出现故障的情况下,另一个清除消息发布服务器304可以承担起所有的集群服务器的清除消息的转发,以保证整个系统的可靠性。
S409:Web节点301中的其它Web节点从服务于本Web节点的集群服务器获取清除消息。
具体地,其它Web节点周期性地与服务于本Web节点的集群服务器进行通信,在确定与之通信的集群服务器接收到清除消息发布服务器304发送的清除消息后,从该集群服务器获取该清除消息。
为进一步保证系统的可靠性,作为一种更优的实施方案,其它Web节点与服务于本Web节点的集群服务器进行通信之前,还可以检测与服务于本Web节点的集群服务器之间的连接状态;若建立连接失败,则根据预先存储的清除消息发布服务器304的IP地址,从清除消息发布服务器304获取集群服务器的列表;并从所述列表中选取与本Web节点连接响应速度最快的集群服务器,用以替换原服务于本Web节点的集群服务器,作为当前的服务于本Web节点的集群服务器。
S409:其它Web节点获取到清除消息后,查找本Web节点中是否缓存有该清除消息涉及的数据;若有,则将该清除消息涉及的数据删除。
具体地,其它Web节点获取到服务于本Web节点的集群服务器发送的清除消息后,从中获取携带的键值;根据获取的键值查找本Web节点中是否缓存有该键值对应的数据;若有,则将该键值对应的数据删除。由于清除消息中可以携带多个键值,因此其它Web节点根据一个清除消息有可能删除多个数据。
S410:其它Web节点(比如其它Web节点中的Web节点D)若接收到客户端发送的被删除数据的数据请求信息,则将该请求信息发送给中心节点服务302。
具体地,在其它Web节点(比如其它Web节点中的Web节点D)根据清除消息删除了相应的数据后,若Web节点D接收到客户端发送的数据请求信息,该数据请求信息是用于请求之前已被删除的数据的,则Web节点D在本Web节点中查找该数据请求信息所请求的数据,由于该数据已被删除,因此,Web节点D将该数据请求信息发送给该中心节点服务器302,向中心节点服务器302请求获取该数据。
S411:中心节点服务器302向Web节点D返回更新后的数据。
具体地,中心节点服务器302接收到Web节点D发送的请求信息后,根据该请求信息向Web节点D返回相应的数据,该数据在之前已经由Web节点C更新。
S412:Web节点D向客户端返回更新后的数据。
具体地,Web节点D接收到中心节点服务器302返回的更新后的数据后,向客户端返回该更新后的数据;客户端将该更新后的数据呈现给用户。
在实际应用中,本发明实施例中如图3所示的Web节点的缓存数据更新系统,除了有上述如图1所示的Web节点的缓存数据更新系统的优点外,在中心节点服务器302通过清除消息发布服务器304和各集群服务器305向其它Web节点传递清除消息,当其它Web节点中的某个Web节点与服务于该Web节点的集群服务器建立连接失败时,可以与其它的集群服务器建立连接,保证清除消息的顺利传递,增强了Web节点的缓存数据更新系统的可靠性。
事实上,在上述步骤中,步骤S405与步骤S406没有严格的先后顺序关系,可以同步执行,也可以先执行步骤S406再执行步骤S405。
上述的各Web节点通常可以被部署于多个IDC(Internet Data Center,互联网数据中心)中。IDC是利用已有的互联网通信线路、带宽资源,建立的标准化的专业机房环境,为客户提供服务器托管、租用以及相关增值等方面的服务,各IDC之间存在着差异,例如,南方电信与北方网通之间的差异。
现有技术方案对各Web节点的缓存数据的更新存在一定的时延,通常不能及时更新位于差异较大的IDC中的各Web节点的缓存数据。而本发明实施例公开的技术方案,在清除消息的跨IDC传递过程中,对清除消息的复制是无冗余的,即使客户端的QPS(Query PerSecond,每秒查询率)再高,也不会增加清除消息在跨IDC传递过程中的耗时,因此本发明的技术方案可以及时更新位于差异较大的IDC中的各Web节点的缓存数据。
而且,本发明的技术方案中由于通过在应用层发送清除消息来达到发明目的,对于不同协议、或具有硬件差异的IDC中的Web节点或服务器在应用层是完全透明的;不用考虑IDC之间的差异。换言之,本发明实施例提供的技术方案可以面对跨地域的IDC实现Web节点的缓存数据的更新,即保证不同IDC中Web节点数据一致性的同步。
为了能够定位Web节点的缓冲数据更新系统的异常Web节点,提高系统的可靠性,作为一种更优的实施方案,系统中还可以包括监控服务器;例如如图1a所示的系统中增加监控服务器109后,构成如图1b所示的具有故障监测功能的Web节点的缓存数据更新系统;或者,如图3a所示的系统中增加监控服务器309后,构成如图3b所示的具有故障监测功能的Web节点的缓存数据更新系统。
图1b和图3b所示的具有故障监测功能的Web节点的缓存数据更新系统中,各Web节点中还设置有检测程序,使得Web节点可以配合监控服务器实现故障监测功能。
在实际应用中,可以对系统进行周期性的故障监测;在每个监测周期中,对系统进行故障监测的过程,如图5所示,包括如下步骤;在下述步骤中提及的监控服务器具体可以是图1b中的监控服务器109,或者是图3b中的监控服务器309;在下述步骤中提及的Web节点可以是图1b中的Web节点101,也可以是图3b中的Web节点301。
S501:在每个监测周期到达时,监控服务器向清除接口服务器发送携带特定键值的清除消息。
具体地,在每个监测周期到达时,监控服务器向清除接口服务器发送清除消息,该清除消息中携带的键值为预先设定的特定键值,该特定键值用以指示出该清除消息为专用于故障检测的清除消息;该特定键值的具体值可以由技术人员根据实际情况设定为某个值。
S502:清除接口服务器将接收到的清除消息向各Web节点发送。
具体地,图1b所示系统中的清除接口服务器103,将接收到的清除消息向各Web节点101发送。
或者,图3b所示系统中的清除接口服务器303将接收的清除消息向清除消息发布服务器304发送;清除消息发布服务器304向各集群服务器305转发该清除消息;各Web节点301从服务于本Web节点的集群服务器305获取该清除消息。
S503:Web节点接收到清除消息后,将本Web节点的缓存中的特定键值删除。
具体的,接收到清除消息的Web节点从中解析出特定键值后,根据解析出的特定键值将本Web节点的缓存中的特定键值删除。
S504:监控服务器在发送携带特定键值的清除消息后,隔设定时间段(比如20秒)向各Web节点发送携带所述特定键值的键值查询指令。
S505:Web节点在接收到键值查询指令后,从中解析出特定键值,并查找本Web节点的缓存中是否存储有该特定键值;若有,则向监控服务器发送故障报警信息。
具体地,监控服务器发送的键值查询指令可以调用Web节点中的检测程序(Web程序),检测程序被调用后执行如下:从键值查询指令中解析出本周期的特定键值,并查找本Web节点的缓存中是否存储有该特定键值;若有,则确定涉及本Web节点的清除消息的传递路径存在故障,向监控服务器发送故障报警信息;若无,则确认无故障,可继续正常工作。
S506:Web节点将键值查询指令中携带的特定键值存储到本Web节点的缓存中,以备下个监测周期中使用。
本发明的技术方案中,在一个Web节点的缓存数据被修改后,对中心节点服务器中相应的数据进行更新,对其它Web节点中缓存的该数据进行删除;其它Web节点在无该数据的情况下,若接收到用户对该数据的请求,则从中心节点服务器获取更新后的数据,避免出现其它Web节点返回更新前的错误数据的现象。
而且,由于通知其它Web节点删除若干数据的信息量是远小于更新其它Web节点中该数据的信息量;而其它Web节点中该数据不一定会被再次访问到,无访问则无需更新;因此,本发明的Web节点的缓存数据更新系统,在实现更新Web节点缓存数据过程中,比现有系统占用更少的网络资源。
而且,本发明的Web节点的缓存数据更新系统还可以包含监控服务器,可以监测各Web节点的清除功能是否异常,提高了系统的可靠性。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读取存储介质中,如:ROM/RAM、磁碟、光盘等。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (6)
1.一种Web节点的缓存数据更新方法,其特征在于,包括:
Web节点在修改本节点缓存的数据后,更新中心节点服务器中相应的数据;并
向清除接口服务器发送清除消息,所述清除消息中携带有对应所述数据的键值;
所述清除接口服务器将所述清除消息发送到其它Web节点;
所述其它Web节点查找本Web节点中是否缓存有所述键值对应的数据;若有,则将所述键值对应的数据删除;
所述其它Web节点若接收到所述数据的请求信息,则从所述中心节点服务器中获取更新后的数据;
在所述Web节点在修改本节点缓存的数据后,更新中心节点服务器中相应的数据后,所述方法还包括:
在每个监测周期到达时,监控服务器向所述清除接口服务器发送清除消息,该清除消息中携带的键值为预先设定的特定键值,并在设定时间段后向各Web节点发送携带有所述特定键值的键值查询指令;
所述清除接口服务器将接收到的清除消息向各Web节点发送,所述Web节点接收到该清除消息后,根据从中解析出的特定键值将本Web节点缓存的特定键值删除;
所述Web节点接收到所述键值查询指令后,根据从中解析出的特定键值,查找本Web节点的缓存中是否存有所述特定键值;若有,则向所述监控服务器发送故障报警信息;若无,所述Web节点将所述特定键值存储于本Web节点的缓存中。
2.如权利要求1所述的方法,其特征在于,所述清除接口服务器将所述清除消息发送到其它Web节点,具体包括:
所述清除接口服务器将所述清除消息向清除消息发布服务器发送;清除消息发布服务器根据预先存储的各集群服务器的IP地址,向各集群服务器发送所述清除消息;
所述其它Web节点周期性地与服务于本节点的集群服务器进行通信,在确定与之通信的集群服务器接收到所述清除消息后,从该集群服务器获取该清除消息。
3.如权利要求2所述的方法,其特征在于,与该集群服务器进行通信之前,还包括:
所述其它Web节点若与该集群服务器建立连接失败,则根据预先存储的所述清除消息发布服务器的IP地址,从所述清除消息发布服务器获取集群服务器的列表;并从所述列表中选取与本节点连接响应速度最快的集群服务器,用以替换原服务于本节点的集群服务器,作为当前的服务于本节点的集群服务器。
4.一种Web节点的缓存数据更新系统,其特征在于,包括:
多个Web节点,在其中一个Web节点修改本节点缓存的数据后,该Web节点更新中心节点服务器中相应的数据,并发送清除消息;其中,所述清除消息中携带有对应所述数据的键值;
清除接口服务器,用于接收所述清除消息,并将所述清除消息发送到所述多个Web节点中的其它Web节点;
所述其它Web节点查找本节点中是否缓存有所述键值对应的数据;若有,则将所述键值对应的数据删除;以及所述其它Web节点若接收到所述数据的请求信息,则从所述中心节点服务器中获取更新后的数据;以及
所述系统还包括:
监控服务器,用于在每个监测周期到达时,向所述清除接口服务器发送携带特定键值的清除消息,并在设定时间段后向各Web节点发送携带有所述特定键值的键值查询指令;以及
所述Web节点还用于接收到所述键值查询指令后,根据从中解析出的特定键值,查找本Web节点的缓存中是否存有所述特定键值;若有,则向所述监控服务器发送故障报警信息;若无,将所述特定键值存储于本Web节点的缓存中。
5.一种Web节点的缓存数据更新系统,其特征在于,包括:
多个Web节点,在其中一个Web节点修改本节点缓存的数据后,该Web节点更新中心节点服务器中相应的数据;并发送清除消息;其中,所述清除消息中携带有对应所述数据的键值;
清除接口服务器,用于接收所述Web节点发送的清除消息后,转发该清除消息;
清除消息发布服务器和多个集群服务器,所述清除消息发布服务器用于接收所述清除接口服务器转发的清除消息,并根据预先存储的各集群服务器的IP地址,向各集群服务器发送所述清除消息;
所述多个Web节点中的其它Web节点周期性地与服务于本Web节点的集群服务器进行通信,在确定与之通信的集群服务器接收到所述清除消息后,从该集群服务器获取该清除消息,查找本节点中是否缓存有所述键值对应的数据;若有,则将所述键值对应的数据删除;以及所述其它Web节点若接收到所述数据的请求信息,则从所述中心节点服务器中获取更新后的数据;
所述系统还包括:
监控服务器,用于在每个监测周期到达时,向所述清除接口服务器发送携带特定键值的清除消息,并在设定时间段后向各Web节点发送携带有所述特定键值的键值查询指令;以及
所述Web节点还用于接收到所述键值查询指令后,根据从中解析出的特定键值,查找本Web节点的缓存中是否存有所述特定键值;若有,则向所述监控服务器发送故障报警信息;若无,将所述特定键值存储于本Web节点的缓存中。
6.如权利要求5所述的系统,其特征在于,
所述其它Web节点还用于若与所述服务于本节点的集群服务器建立连接失败,则根据预先存储的所述清除消息发布服务器的IP地址,从所述清除消息发布服务器获取集群服务器的列表;并从所述列表中选取与本节点连接响应速度最快的集群服务器,用以替换原服务于本节点的集群服务器,作为当前的服务于本节点的集群服务器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310247168.8A CN103338243B (zh) | 2013-06-20 | 2013-06-20 | Web节点的缓存数据更新方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310247168.8A CN103338243B (zh) | 2013-06-20 | 2013-06-20 | Web节点的缓存数据更新方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103338243A CN103338243A (zh) | 2013-10-02 |
CN103338243B true CN103338243B (zh) | 2017-06-13 |
Family
ID=49246337
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310247168.8A Active CN103338243B (zh) | 2013-06-20 | 2013-06-20 | Web节点的缓存数据更新方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103338243B (zh) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104899106B (zh) * | 2014-03-07 | 2018-05-08 | 阿里巴巴集团控股有限公司 | 接口服务异常时的处理方法和装置 |
US10298713B2 (en) * | 2015-03-30 | 2019-05-21 | Huawei Technologies Co., Ltd. | Distributed content discovery for in-network caching |
CN105512198A (zh) * | 2015-11-27 | 2016-04-20 | Tcl集团股份有限公司 | 一种中央服务器的数据转移存储实现方法及系统 |
CN106021468B (zh) * | 2016-05-17 | 2019-11-19 | 上海携程商务有限公司 | 分布式缓存和本地缓存的更新方法和系统 |
CN106060138A (zh) * | 2016-06-06 | 2016-10-26 | 北京小米移动软件有限公司 | 更新数据的方法及装置 |
CN107645516A (zh) * | 2016-07-20 | 2018-01-30 | 平安科技(深圳)有限公司 | 应用软件数据缓存方法和装置 |
CN106354851A (zh) * | 2016-08-31 | 2017-01-25 | 广州市乐商软件科技有限公司 | 数据缓存方法及装置 |
CN106230978A (zh) * | 2016-08-31 | 2016-12-14 | 广州市乐商软件科技有限公司 | 分布式缓存同步方法、装置及系统 |
CN107018170B (zh) * | 2016-10-27 | 2020-09-08 | 阿里巴巴集团控股有限公司 | 一种数据同步方法和设备 |
CN106921648A (zh) * | 2016-11-15 | 2017-07-04 | 阿里巴巴集团控股有限公司 | 数据存储方法、应用服务器及远程存储服务器 |
CN106790562A (zh) * | 2016-12-26 | 2017-05-31 | 中国建设银行股份有限公司 | 一种分布式缓存系统、方法及装置 |
CN108255848B (zh) * | 2016-12-29 | 2022-06-24 | 阿里巴巴集团控股有限公司 | 实现条件更新的方法、设备及系统 |
CN108429778A (zh) * | 2017-02-15 | 2018-08-21 | 北京京东尚科信息技术有限公司 | 一种选择下游业务系统集群的方法和装置 |
CN108829713B (zh) * | 2018-05-04 | 2021-10-22 | 华为技术有限公司 | 分布式缓存系统、缓存同步方法和装置 |
CN110784498B (zh) * | 2018-07-31 | 2022-05-27 | 阿里巴巴集团控股有限公司 | 一种个性化数据容灾方法及装置 |
CN114945026A (zh) * | 2022-04-24 | 2022-08-26 | 网易(杭州)网络有限公司 | 数据处理方法、装置和系统 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1578956A (zh) * | 2001-08-30 | 2005-02-09 | Bea系统公司 | 具有并行检查的群集高速缓存 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7120747B2 (en) * | 2004-03-15 | 2006-10-10 | International Business Machines Corporation | Lower overhead shared cache invalidations |
CN101753373A (zh) * | 2008-12-19 | 2010-06-23 | 中兴通讯股份有限公司 | 一种海量告警的查询方法及系统 |
US9607044B2 (en) * | 2011-03-31 | 2017-03-28 | Tibco Software Inc. | Systems and methods for searching multiple related tables |
CN102867070A (zh) * | 2012-09-29 | 2013-01-09 | 瑞庭网络技术(上海)有限公司 | 更新key-value分布式存储系统缓存的方法 |
-
2013
- 2013-06-20 CN CN201310247168.8A patent/CN103338243B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1578956A (zh) * | 2001-08-30 | 2005-02-09 | Bea系统公司 | 具有并行检查的群集高速缓存 |
Also Published As
Publication number | Publication date |
---|---|
CN103338243A (zh) | 2013-10-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103338243B (zh) | Web节点的缓存数据更新方法和系统 | |
US10929435B2 (en) | Content delivery network analytics management via edge stage collectors | |
CN104935654B (zh) | 一种服务器集群系统中的缓存方法、写入点客户端和读客户端 | |
EP2563062B1 (en) | Long connection management apparatus and link resource management method for long connection communication | |
US20130179793A1 (en) | Enhancing visualization of relationships and temporal proximity between events | |
CN109218349A (zh) | 一种管理服务器集群的方法及装置 | |
CN105306585B (zh) | 一种多数据中心的数据同步方法 | |
CN107544837B (zh) | 云服务设备性能数据采集系统、方法和装置 | |
CN110071978A (zh) | 一种集群管理的方法及装置 | |
CN107181821A (zh) | 一种基于sse规范的消息推送方法及装置 | |
CN106411629A (zh) | 一种用于监控cdn节点的状态的方法和设备 | |
CN107040576A (zh) | 信息推送方法及装置、通讯系统 | |
CN108566291A (zh) | 一种事件处理的方法、服务器及系统 | |
CN107229425A (zh) | 一种数据存储方法及装置 | |
CN103995901B (zh) | 一种确定数据节点失效的方法 | |
US9398434B2 (en) | Method and system for zone analysis in a charging system | |
CN108464031B (zh) | 电信网络中的基于数据库的冗余 | |
CN110061876A (zh) | 运维审计系统的优化方法及系统 | |
US9043274B1 (en) | Updating local database and central database | |
CN107180034A (zh) | MySQL数据库的集群系统 | |
US10715608B2 (en) | Automatic server cluster discovery | |
CN107800501A (zh) | 一种时间同步方法、装置及系统 | |
CN106657360A (zh) | 一种Linux系统下NIS服务器的同步方法和系统 | |
CN115665263A (zh) | 一种流量调拨方法、装置、服务器及存储介质 | |
CN114301763A (zh) | 分布式集群故障的处理方法及系统、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20230421 Address after: Room 501-502, 5/F, Sina Headquarters Scientific Research Building, Block N-1 and N-2, Zhongguancun Software Park, Dongbei Wangxi Road, Haidian District, Beijing, 100193 Patentee after: Sina Technology (China) Co.,Ltd. Address before: 100080, International Building, No. 58 West Fourth Ring Road, Haidian District, Beijing, 20 floor Patentee before: Sina.com Technology (China) Co.,Ltd. |