缓存服务器、更新服务器及数据更新方法与流程

文档序号:11843419阅读:4370来源:国知局
缓存服务器、更新服务器及数据更新方法与流程

本发明涉及内容分发网络领域,特别是涉及一种缓存服务器、更新服务器及数据更新方法。



背景技术:

内容分发网络(Content Delivery Network,CDN),通过在网络各处放置缓存服务器,在现有的互联网基础之上构建一层智能虚拟网络,将网站的内容发布到最接近用户的网络“边缘”,使用户可以就近取得所需的内容,以缓解网络拥挤的状况,提高网站的响应速度。从技术上全面解决由于网络带宽小、用户访问量大、网点分布不均等原因,导致用户访问网站的响应速度慢的问题。

为了保持缓存服务器上存储的数据与对应的源站服务器中对应的数据一致,超文本传输协议(Hyper Text Transfer Protocol,HTTP)规定了一系列标准,对缓存服务器中存储数据进行过期控制。

但是,采用现有的方法对缓存服务器中的数据进行更新时,存在运行开销较大,浪费资源的问题。



技术实现要素:

本发明实施例解决的问题是如何在对缓存服务器中的数据进行更新时降低运行开销,节省资源。

为解决上述问题,本发明实施例提供了一种数据更新方法,所述数据更新方法包括:当接收到数据更新任务时,判断缓存服务器中存储的对应的数据与源站服务器中存储的对应的数据是否一致;当确定所述缓存服务器中存储的对应的数据与从所述源站服务器中存储的对应的数据不一致时,指示所述缓存服务器对所存储的对应的数据进行更新。

可选地,所述判断缓存服务器中存储的对应的数据与从源站服务器中存储的对应的数据是否一致,包括:向所述缓存服务器发送第一数据获取请求,所述第一数据获取请求包括所述缓存服务器中存储的对应的数据的信息,以使得所述缓存服务器返回对应的第一响应消息,所述第一响应消息包括第一数据头部和第一数据本体;接收到所述缓存服务器发送的所述第一数据头部;向所述源站服务器发送第二数据获取请求,所述第二数据获取请求包括所述源站服务器中存储的对应的数据的信息,以使得所述源站服务器返回对应的第二响信息,所述第二响应消息包括第二数据头部和第二数据本体;接收到所述源站服务器发送的第二数据头部;将所述第一数据头部与所述第二数据头部进行对比,当确定所述第一数据头部与所述第二数据头部不一致时,确定所述缓存服务器中存储的对应的数据与所述源站服务器中存储的对应的数据不一致。

可选地,所述指示所述缓存服务器对所存储的对应的数据进行更新,包括:向所述缓存服务器发送第三数据获取请求,所述第三数据获取请求包括所述缓存服务器中存储的对应的数据的信息和强制刷新标识的信息,以使得所述缓存服务器基于从所述第三数据获取请求中解析出的所述数据的信息和强制刷新标识,对存储的对应的数据进行更新。

可选地,所述方法还包括:接收所述缓存服务器对存储的对应的数据更新结束时发送的数据更新结果,并基于所接收到的数据更新结果更新对应的任务进度明细。

可选地,所述方法还包括:当基于所述数据更新结果,确定所述缓存服务器对存储的对应的数据更新失败时,重新执行所述指示所述缓存服务器对所存储的对应的数据进行更新的操作。

本发明实施例还提供了一种缓存服务器的数据更新方法,包括:当接收更新服务器发送的对存储的对应的数据进行更新的指示消息时,对自身存储的对应的数据进行更新。

可选地,在所述接收更新服务器发送的对存储的对应的数据进行更新的指示消息之前,所述方法还包括:接收所述更新服务器发送的第一数据获取请求,所述第一数据获取请求包括所述缓存服务器中存储的对应的数据的信息;当确定自身存在所述对应的数据时,向所述更新服务器发送对应的第一响应消息,所述第一响应消息包括第一数据头部和第一数据本体;当确定自身不存在所述对应的数据时,从源站服务器读取对应的数据,并执行所述向所述更新服务器发送对应的第一响应消息的操作。

可选地,所述当接收更新服务器发送的对存储的对应的数据进行更新的指示消息时,对自身存储的对应的数据进行更新,包括:接收所述更新服务器发送的第三数据获取请求,所述第三数据获取请求包括所述缓存服务器中存储的对应的数据的信息和强制刷新标识的信息;当从所述第三数据获取请求中解析出对应的数据的信息和强制刷新标识时,基于解析得到的对应的数据的信息,判断自身是否存在所述对应的数据;当确定自身不存在所述对应的数据时,从对应的源站服务器中读取所述对应的数据并存储;当确定自身存在对应的数据时,将自身中所存储的对应的数据删除,并从所述源站服务器中读取所述对应的数据并存储。

可选地,所述缓存服务器的数据更新方法还包括:当在对自身的对应的数据更新结束时,生成对应的数据更新结果发送至更新服务器,以使得所述更新服务器基于所述数据更新结果更新对应的任务进度明细。

可选地,当对自身存储的对应的数据更新失败时,还包括:重新执行所述接收所述更新服务器发送的对存储的数据进行更新的指示消息,对自身存储的对应的数据进行更新的操作。

本发明实施例还提供了一种更新服务器,包括:判断单元,适于当接收到数据更新任务时,判断缓存服务器中存储的对应的数据与源站服务器中存储的对应的数据是否一致;指示单元,适于当确定所述缓存服务器中存储的对应的数据与从所述源站服务器中存储的对应的数据不一致时,指示所述缓存服务器对所存储的对应的数据进行更新。

可选地,所述判断单元,适于向所述缓存服务器发送第一数据获取请求,所述第一数据获取请求包括所述缓存服务器中存储的对应的数据的信息,以使得所述缓存服务器返回对应的第一响应消息,所述第一响应消息包括第一数据头部和第一数据本体;接收到所述缓存服务器发送的所述第一数据头部;向所述源站服务器发送第二数据获取请求,所述第二数据获取请求包括所述源站服务器中存储的对应的数据的信息,以使得所述源站服务器返回对应的第二响信息,所述第二响应消息包括第二数据头部和第二数据本体;接收到所述源站服务器发送的第二数据头部;将所述第一数据头部与所述第二数据头部进行对比,当确定所述第一数据头部与所述第二数据头部不一致时,确定所述缓存服务器中存储的对应的数据与所述源站服务器中存储的对应的数据不一致。

可选地,所述指示单元,适于向所述缓存服务器发送第三数据获取请求,所述第三数据获取请求包括所述缓存服务器中存储的对应的数据的信息和强制刷新标识的信息,以使得所述缓存服务器基于从所述第三数据获取请求中解析出的所述数据的信息和强制刷新标识,对存储的对应的数据进行更新。

可选地,所述更新服务器还包括:存储单元,适于接收所述缓存服务器对存储的对应的数据更新结束时发送的数据更新结果,并基于所接收到的数据更新结果更新对应的任务进度明细。

可选地,所述指示单元,还适于当基于所述数据更新结果,确定所述缓存服务器对存储的对应的数据更新失败时,重新执行所述指示所述缓存服务器对所存储的对应的数据进行更新的操作。

本发明实施例还提供了一种缓存服务器,包括:更新单元,适于当接收更新服务器发送的对存储的对应的数据进行更新的指示消息时,对自身存储的对应的数据进行更新。

可选地,所述缓存服务器还包括:数据接收单元,适于在所述接收更新服务器发送的对存储的对应的数据进行更新的指示消息之前,接收所述更新服务器发送的第一数据获取请求,所述第一数据获取请求包括所述缓存服务器中存储的对应的数据的信息;响应单元,适于当确定自身存在所述对应的数据时,向所述更新服务器发送对应的第一响应消息,所述第一响应消息包括第一数据头部和第一数据本体;当确定自身不存在所述对应的数据时,从源站服务器读取对应的数据,并执行所述向所述更新服务器发送对应的第一响应消息的操作。

可选地,所述更新单元,适于接收所述更新服务器发送的第三数据获取请求,所述第三数据获取请求包括所述缓存服务器中存储的对应的数据的信息和强制刷新标识的信息;当从所述第三数据获取请求中解析出对应的数据的信息和强制刷新标识时,基于解析得到的对应的数据的信息,判断自身是否存在所述对应的数据;当确定自身不存在所述对应的数据时,从对应的源站服务器中读取所述对应的数据并存储;当确定自身存在对应的数据时,将自身中所存储的对应的数据删除,并从所述源站服务器中读取所述对应的数据并存储。

可选地,所述缓存服务器还包括:更新结果发送单元,适于当在对自身的对应的数据更新结束时,生成对应的数据更新结果发送至更新服务器,以使得所述更新服务器基于所述数据更新结果更新对应的任务进度明细。

可选地,所述更新单元,还适于当对自身存储的对应的数据更新失败时,重新执行所述接收所述更新服务器发送的对存储的数据进行更新的指示消息,对自身存储的对应的数据进行更新的操作。

与现有技术相比,本发明的技术方案具有以下的优点:

上述的方案,通过更新服务器执行相应的数据更新任务,对缓存服务器中的数据与源站服务器中存储的对应的数据进行校验,以根据校验结果指示对缓存服务器中存储的数据进行更新,而不是在每次接收到客户端发送的数据获取请求时均向源站服务器发起一次数据校验请求,因而可以降低运行开销,节省资源。

进一步地,在判断缓存服务器中存储的数据与源站服务器中存储的数据是否一致时,仅从缓存服务器和源站服务器中获取存储的对应的数据的第一数据头部和第二数据头部并进行对比,而不是获取对应的数据的全部内容,因此,可以减少更新服务器与缓存服务器和源站服务器的数据交互的数量,并可以提高对比的速度,提升数据更新的效率。

进一步地,通过缓存服务器在执行相应的数据更新结束时,生成对应的数据更新结果的信息,可以对缓存服务器中的数据更新进行全面的掌握,以确保缓存服务器中的数据与源站服务器的数据的一致性。

进一步地,当缓存服务器在对对应的数据更新失败时,通过更新服务器重新指示缓存服务器再次对对应的数据进行更新的方式,以使得缓存服务器可以对更新失败的数据再次尝试进行更新,可以进一步确保缓存服务器中存储的数据与源站服务器存储的数据的一致性。

附图说明

图1是本发明实施例中的一种数据更新方法的流程图;

图2是本发明实施例中的缓存数据更新系统的结构示意图;

图3是本发明实施例中的另一种数据更新过程中的信令交互图;

图4是本发明实施中的一种更新服务器的结构示意图;

图5是本发明实施中的一种缓存服务器的结构示意图。

具体实施方式

为解决现有技术中存在的上述问题,本发明实施例采用的技术方案通过更新服务器执行相应的数据更新任务,对缓存服务器中的数据与源站服务器中存储的对应的数据进行校验,以根据校验结果指示对缓存服务器中存储的数据进行更新,而不是在每次接收到客户端发送的数据获取请求时均向源站服务器发起一次数据校验请求,因而可以降低运行开销,节省资源。

为使本发明的上述目的、特征和优点能够更为明显易懂,下面结合附图对本发明的具体实施例做详细的说明。

图1示出了本发明实施例中的一种数据更新方法的流程图。参见图1,在具体实施中,本发明实施例中的数据更新方法可以包括如下的步骤:

步骤S101:接收用户的数据更新任务。

在具体实施实施中,用户可以根据实际的需要,如用户在对源站中对应的数据更新之后,向更新服务器发送对应的数据更新任务。

步骤S102:判断缓存服务器中存储的与所述数据更新任务对应的数据与源站服务器中存储的对应的数据是否一致;当判断结果为是时,可以不执行任何的操作,反之,则可以执行步骤S103。

在本发明一实施例中,更新服务器可以通模拟客户端发送数据获取请求的方式,从分别从对应的缓存服务器和源站服务器获取与所述数据更新任务对应的数据的控制信息,并根据从缓存服务器获取的对应的数据的控制信息和从源站服务器获取的对应的数据的控制信息,来判断缓存服务器中存储的对应的数据与源站服务器中存储的对应的数据是否一致,以及对缓存服务器中存储的对应的数据与源站服务器中存储的对应的数据进行校验。

步骤S102:指示所述缓存服务器对所存储的对应的数据进行更新。

在具体实施实施中,更新服务器在确定缓存服务器中存储的对应的数据与源站服务器中存储的对应的数据不一致,通过指示缓存服务器对所存储的对应的数据进行更新的方式,可以使得缓存服务器中存储的对应的数据与源站服务器中存储的对应的数据保持一致。

下面将结合图2和图3对本发明实施例中的数据更新方法做进一步详细的介绍。

图2示出了本发明实施例中的一种数据更新系统的结构。参见图2,在具体实施中,本发明实施例中的数据更新系统可以包括更新服务器201、多个缓存服务器202和源站服务器203,其中,更新服务器201分别与缓存服务器202和源站服务器203连接,缓存服务器202还与源站服务器203连接。

下面将结合图3对图2所示的本发明实施例中的数据更新系统的工作原理做进一步详细的介绍。

步骤S301:更新服务器接收用户的数据更新任务,并向所述缓存服务器发送第一数据获取请求。

在具体实施中,用户可以根据实际的需要向更新服务器201输入对应的数据更新任务,以使得更新服务器201执行所述数据更新任务。

在具体实施中,更新服务器201在接收到用户输入的数据更新任务时,可以模拟客户端向缓存服务器202发送对应的第一数据获取请求,即发起超文本传输协议HTTP请求。所述HTTP请求中包括请求获取的对应的数据的信息。

步骤S302:缓存服务器接收所述第一数据获取请求,并向所述更新服务器返回第一响应消息。

在具体实施中,对应的缓存服务器202在接收到更新服务器201发送的第一数据获取请求时,可以从所述第一数据获取请求中解析出请求获取的对应的数据的信息,也即对应的数据的统一资源定位符(URL)的信息,并基于请求获取的对应的数据的URL,确定自身是否存在请求获取的对应的数据。

当确定自身存在请求获取的对应的数据时,缓存服务器202可以生成对应的第一响应消息并发送至所述更新服务器201。所述第一响应消息,也即HTTP响应,包括第一数据头部(或称HTTP头部)和第一数据头部(或称HTTP数据本体)。其中,所述HTTP头部,用于指定HTTP本体中的数据对应的控制信息,所述控制信息包括HTTP数据本体的长度、过期时间、最长生存期、数据类型等;当确定自身不存在请求获取的对应的数据时,缓存服务器202可以从源站抓取请求获取的数据,并根据所抓取的对应的数据的信息向更新服务器201返回所述第一响应消息。

步骤S303:更新服务器接收所述第一响应消息中的第一数据头部。

在具体实施中,因第一响应消息中的第一数据头部中包括第一数据本体的控制信息,通过第一数据头部便可以确定第一数据本体的内容。因此,在本发明一实施例中,更新服务器201在接收完成第一响应消息中的第一数据头部时,通过与缓存服务器202断开连接的方式,中断接收第一响应消息,也即不接收第一响应消息中的第一数据本体的信息,从而可以节省传输资源。

步骤S304:更新服务器向所述源站服务器发送第二数据获取请求。

在具体实施中,为了获取源站服务器203中与所述数据更新任务对应的数据的控制信息,更新服务器201可以模拟缓存服务器202向源站服务器203发送对应的第二数据获取请求,也即发起超文本传输协议(Hyper Text TransferProtocol,HTTP)请求。所述HTTP请求中包括请求获取的对应的数据的信息。

步骤S305:源站服务器接收所述第二数据获取请求,并向所述更新服务器返回第二响应消息。

在具体实施中,对应的源站服务器203在接收到更新服务器201发送的第二数据获取请求时,可以从所述第二数据获取请求中解析出请求获取的对应的数据的信息,也即对应的数据的URL的信息,并基于请求获取的对应的数据的URL,生成第二响应消息并发送至所述更新服务器。其中,第二响应消息与第一响应消息的结构相同,也即包括对应的第二数据头部和第二数据本体的信息。

步骤S306:更新服务器接收所述第二响应消息中的第二数据头部,并将所述第一数据头部与所述第二数据头部进行比较;当确定第一头部与第二头部一致时,不执行任何的操作;反之,则执行步骤S307。

在具体实施中,更新服务器201在所述第三数据获取请求中填写有对应的数据的信息,还携带有对应的强制刷新标识,以使得缓存服务器202在从第三数据获取请求中解析出强制刷新标识时,对对应的数据进行更新。

步骤S307:缓存服务器接收第三数据获取请求,并对自身所存储的对应的数据进行更新。

在具体实施中,缓存服务器202在接收到更新服务器发送的第三数据获取请求时,可以对所接收的第三数据获取请求进行解析,并在解析得到对应的数据的信息和所述强制刷新标识时,首先判断自身是否存在与从第三数据获取请求中解析得到的对应的数据的信息对应的数据;当确定自身存在对应的数据时,缓存服务器202将自身所存储的对应的数据删除,并从源站服务器203抓取对应的数据并存储,从而完成对对应的数据的更新;反之,当确定自身不存在对应的数据时,缓存服务器202则可以直接根据从第三数据获取请求中解析出的对应的数据的信息,从源站服务器203中抓取对应的数据并存储,从而完成对自身的对应的数据的更新。

通过上述的方式,可以使得缓存服务器202和源站服务器203之间的数据保持一致,尤其是对于数据量较大的数据,由于预先已经加载至缓存服务器,当接收到客户端发送的数据获取请求时,无需再从源站读取对应的数据,可以直接将自身所缓存的数据返回给客户端,从而使得用户可以及时、准确地获取所请求的数据,提高数据响应的速度,进而可以提升用户的使用体验。

在具体实施中,为了进一步确保缓存服务器与源站之间的数据一致性,本发明实施例中的数据更新方法还可以包括:

步骤S308:缓存服务器在对自身对应的数据更新结束时,将所述对应的数据更新结果发送至更新服务器。

在具体实施中,所述数据更新结果中包括缓存服务器202对相应的数据进行更新的结果,即数据更新成功或失败的信息。其中,当缓存服务器202从源站服务器203成功读取对应的数据时,则对对应的数据更新成功;反之,则对对应的数据更新失败。

步骤S309:更新服务器基于所述数据更新结果更新对应的任务进度明细。

在具体实施中,由于对应的数据更新结果仅在缓存服务器202在对自身对应的数据更新结束时才发送至更新服务器201,使得更新服务器201根据对应的数据更新结果确定对应的数据的更新状态为成功时,便可以确定缓存服务器202与源站服务器203所存储的对应的数据已经保持一致,此时,更新服务器201可以根据缓存服务器202发送的数据更新结果对自身存储的相应的任务进度明细进行更新。

在具体实施中,更新服务器201在基于缓存服务器202发送的数据更新结果确定对应的数据更新成功时,可以不执行任何的操作,或者当有下一条数据更新任务时,接着执行下一条数据更新任务。

更新服务器201在基于缓存服务器202发送的数据更新结果确定对应的数据更新失败时,则向缓存服务器202重新发送一次第三数据获取请求,以使得缓存服务器202再重新从源站服务器203读取一次对应的数据,以通过指示缓存服务器202再次尝试从源站服务器读取对应的数据,提高数据更新的成功率,确保缓存服务器202和源站服务器203之间数据的一致性。

上述对本发明实施例中的数据更新方法进行了详细的介绍,下面将对上述的方法对应的装置做介绍。

图4示出了本发明实施例中的一种更新服务器的结构。参见图4,在具体实施中,本发明实施例中的更新服务器400可以包括判断单元401和指示单元402,其中:

所述判断单元401,适于当接收到数据更新任务时,判断缓存服务器中存储的对应的数据与源站服务器中存储的对应的数据是否一致。

所述指示单元402,适于当确定所述缓存服务器中存储的对应的数据与从所述源站服务器中存储的对应的数据不一致时,指示所述缓存服务器对所存储的对应的数据进行更新。

在本发明一实施例中,所述判断单元401,适于向所述缓存服务器发送第一数据获取请求,所述第一数据获取请求包括所述缓存服务器中存储的对应的数据的信息,以使得所述缓存服务器返回对应的第一响应消息,所述第一响应消息包括第一数据头部和第一数据本体;接收到所述缓存服务器发送的所述第一数据头部;向所述源站服务器发送第二数据获取请求,所述第二数据获取请求包括所述源站服务器中存储的对应的数据的信息,以使得所述源站服务器返回对应的第二响信息,所述第二响应消息包括第二数据头部和第二数据本体;接收到所述源站服务器发送的第二数据头部;将所述第一数据头部与所述第二数据头部进行对比,当确定所述第一数据头部与所述第二数据头部不一致时,确定所述缓存服务器中存储的对应的数据与所述源站服务器中存储的对应的数据不一致。

在本发明一实施例中,所述指示单元402,适于向所述缓存服务器发送第三数据获取请求,所述第三数据获取请求包括所述缓存服务器中存储的对应的数据的信息和强制刷新标识的信息,以使得所述缓存服务器基于从所述第三数据获取请求中解析出的所述数据的信息和强制刷新标识,对存储的对应的数据进行更新。

在具体实施中,本发明实施例中更新服务器400还可以包括存储单元403,其中:

所述存储单元403,适于接收所述缓存服务器对存储的对应的数据更新结束时发送的数据更新结果,并基于所接收到的数据更新结果更新对应的任务进度明细。

在本发明一实施例中,所述指示单元402,还适于当基于所述数据更新结果,确定所述缓存服务器对存储的对应的数据更新失败时,重新执行所述指示所述缓存服务器对所存储的对应的数据进行更新的操作。

图5示出了本发明实施例中的一种缓存服务器的结构。参见图5,在具体实施中,本发明实施例中的缓存服务器500可以包括更新单元501,其中:

所述更新单元501,适于当接收更新服务器发送的对存储的对应的数据进行更新的指示消息时,对自身存储的对应的数据进行更新。

在具体实施中,本发明实施例中的缓存服务器500还可以包括数据接收单元502,其中:

所述数据接收单元502,适于在所述接收更新服务器发送的对存储的对应的数据进行更新的指示消息之前,接收所述更新服务器发送的第一数据获取请求,所述第一数据获取请求包括所述缓存服务器中存储的对应的数据的信息;响应单元,适于当确定自身存在所述对应的数据时,向所述更新服务器发送对应的第一响应消息,所述第一响应消息包括第一数据头部和第一数据本体;当确定自身不存在所述对应的数据时,从源站服务器读取对应的数据,并执行所述向所述更新服务器发送对应的第一响应消息的操作。

在本发明一实施例中,所述更新单元501,适于接收所述更新服务器发送的第三数据获取请求,所述第三数据获取请求包括所述缓存服务器中存储的对应的数据的信息和强制刷新标识的信息;当从所述第三数据获取请求中解析出对应的数据的信息和强制刷新标识时,基于解析得到的对应的数据的信息,判断自身是否存在所述对应的数据;当确定自身不存在所述对应的数据时,从对应的源站服务器中读取所述对应的数据并存储;当确定自身存在对应的数据时,将自身中所存储的对应的数据删除,并从所述源站服务器中读取所述对应的数据并存储。

在具体实施中,本发明实施例中的缓存服务器500还可以包括更新结果发送单元503,其中:

所述更新结果发送单元503,适于当在对自身的对应的数据更新结束时,生成对应的数据更新结果发送至更新服务器,以使得所述更新服务器基于所述数据更新结果更新对应的任务进度明细。

在本发明一实施例中,所述更新单元501,还适于当对自身的对应的数据更新失败时,重新执行所述接收所述更新服务器发送的对存储的数据进行更新的指示消息,对自身存储的对应的数据进行更新的操作。

采用上述的方案,用户可以在需要时通过更新服务器执行相应的数据更新任务,对缓存服务器中的数据与源站服务器中存储的对应的数据进行校验,以根据校验结果指示对缓存服务器中存储的数据进行更新,而不是在每次接收到客户端发送的数据获取请求时,均向源站服务器发起数据校验请求,因而可以降低运行开销,节省资源。

本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于计算机可读存储介质中,存储介质可以包括:ROM、RAM、磁盘或光盘等。

以上对本发明实施例的方法及系统做了详细的介绍,本发明并不限于此。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各种更动与修改,因此本发明的保护范围应当以权利要求所限定的范围为准。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1