一种自适应的CDN网络缓存技术的制作方法

文档序号:15980421发布日期:2018-11-17 00:15阅读:159来源:国知局

本发明涉及到的自适应缓存技术,具体涉及一种自适应的cdn网络缓存技术。

背景技术

在cdn等分布式系统中,内容通过缓存机制,存储到cdn节点,用户通过cdn节点来获取数据。网络缓存技术是cdn系统中的关键技术,其作用是将用户以前数据请求的响应存放在缓存服务器上,当用户再次发出相同的数据请求时,该请求无需再次发送给web服务器,而是由缓存服务器直接将其缓存副本响应给用户,从而在一定程度上缓解了对网络带宽的占用,同时也减少了用户访问web服务器的延迟。

本发明创造了一种新的自适应网络缓存机制,这种缓存机制具有易于部署、易于扩展等特点。在这种网络缓存机制中,网络网路缓存具有自组织的能力;缓存服务器之间更够进行更好的协作。



技术实现要素:

针对现有技术的不足,本发明公开了一种自适应的cdn网络缓存技术,这种缓存机制具有易于部署、易于扩展等特点。在这种网络缓存机制中,网络网路缓存具有自组织的能力;缓存服务器之间更够进行更好的协作。

本发明通过以下技术方案予以实现:

一种自适应的cdn网络缓存技术,其特征在于:所述缓存技术通过主动网络技术使主动网络中的主动节点自动下载并运行代码,这些代码即为生成缓存系统的程序,这些节点在接收并运行代码以后成为缓存服务器,然后将该缓存服务器添加到缓存系统中,以此类推,可以将更多的主动网络中的主动节点成为缓存服务器、并加入到缓存系统中,相互共享数据的多个缓存服务器来构成一个分布式缓存系统,在分布式缓存系统中,通过多个缓存服务器之间的互相协作,在不同缓存之间共享数据。

优选的,包括以下步骤:

一、建立多层级的缓存服务器组;

二、对缓存服务器进行监控;

三、缓存服务器间数据的扩散。

优选的,所述步骤一中,缓存服务器组采用动态的、多层次的结构,通过交换邻近的缓存群组信息;首先是建立多层次的缓存架构体系,在这个体系中,每一层可以由多组的缓存服务器组成,一组缓存服务器也可以有更高一层的缓存服务器组,高更一层的换成服务器组称作为父层缓存服务器,形成了一个层级的缓存服务器体系,每个缓存服务器组由该组多个缓存服务器成员组成,每组的成员个数介于n和n/2之间,n是一个预先设定的常数值,其中的一个缓存服务器会被指定成管理者,但它同时也是高一层的组成员之一。

优选的,所述步骤一中,具体的构建过程如下:网络中的主动节点监控通过它的数据请求,这个主动节点可以为一台独立的服务器,这台服务器上具备正常的网络通信功能,此时服务器上并未安装缓存系统,该主动节点可以独立地根据网络状况、数据特性和本地用户请求频率等实时状况,当数据请求超过固定的阈值时,该主动节点通过从代码服务器下载缓存代码到该主动节点,并自动安装缓存系统,缓存系统安装成功以后,该主动节点成为一个缓存服务器,我们将它命名为缓存服务器a。

优选的,所述步骤一中,缓存服务器a就向上游缓存服务器组发出加入请求,希望加入到附近的缓存服务器组中,在加入的过程中可能会遇到如下几种情况:

1、如果该缓存服务器a附近没有相应的缓存服务器组,则建立一个新的以该缓存服务器a为管理服务器的缓存服务器组;该缓存服务器组建立以后,缓存服务器a作为管理服务器可吸纳其他缓存服务器加入到本组,并实时核查组内成员数是否超过限定数额,

2、如果该缓存服务器a附近存在缓存服务器组,a选择一个响应时间最短的,或者距离最短的缓存服务器b,发送一个加入请求,缓存服务器b收到请求后,把请求转发给b的管理服务器c,管理服务器c检查其缓存服务器组的组员数量:

(1)如果组员数量小于n,则把缓存服务器a加入到组中;

(2)如果组员数量等于n,管理服务器c建立一个新的缓存服务器组,将一半的组成员移到新组中,同时把a加入到新组中去。

优选的,所述步骤二中,在构建了多层次的拓扑结构之后,管理服务器对缓存服务器列表信息进行维护,维护的方式采用轮询的方式对信息进行收集,管理服务器发出一个周期性的询问消息,每个组成员收到询问之后,把自己的ip附于消息之后,返回给管理服务器,以此作为应答。

优选的,所述步骤二中,如果服务器在等待一段时间后,并没有收到某成员的应答消息,那么再发送二次询问消息,如果仍然没有收到应答,那么该组成员极可能已经发生故障,管理服务器把它从组成员表中移去,通过这种方式,管理服务器就可以收集到完整的该组成员的列表。

优选的,所述步骤三中,每个缓存服务器都使用一个摘要目录来表示自己的本地已缓存数据,而群组中的管理服务器收集本群组内其他所有缓存服务器的摘要目录。

优选的,所述步骤三中,当某个缓存服务器的本地缓存中没有用户请求的数据时,它就把请求转发到管理服务器上,管理服务器在其群组中所有缓存摘要的索引目录中查询,如果查到,则把请求转发到相应的缓存服务器,让该缓存服务器对请求做回应;如果没查到,则把请求直接向web服务器转发,让web服务器来回应,此时缓存服务器就可以从web服务器上将相应的内容下载到本地,同时在该缓存服务器本地中生成一份摘要,并供管理服务器进行收集。。

本发明的有益效果为:

本发明涉及到的自适应缓存技术基于主动网络技术,主动网络技术采用了存储/转发的结构,该技术一个显著的特点是网络节点上的路由器或交换机可对经过它的分组流进行定制处理,这种定制处理并非传统分组交换网络中为了单纯地将分组转发至目的地而对分组头进行的简单处理(如路由器分组头的修改或标记交换机对标记的修改等)。主动网络中的分组除携带净荷数据以外,还有可能携带程序代码,网络内的节点在接收到程序代码以后,可以在自己的运行环境内执行分组中携带的程序,从而改变网络的行为和状态,因此非常适合于建设自适应的cdn分布式的缓存系统。

在本项发明中,通过主动网络技术,可以使主动网络中的主动节点自动下载并运行代码,这些代码即为生成缓存系统的程序。这些节点在接收并运行代码以后成为缓存服务器,然后将该缓存服务器添加到缓存系统中,以此类推,可以将更多的主动网络中的主动节点成为缓存服务器、并加入到缓存系统中。这些能够相互共享数据的多个缓存服务器来构成一个分布式缓存系统。在分布式缓存系统中,通过多个缓存服务器之间的互相协作,在不同缓存之间共享数据,从而提高了缓存效率。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是建立多层级的缓存服务器组的原理框图;

图2是对缓存服务器进行监控的原理框图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明涉及到的自适应缓存技术基于主动网络技术,主动网络技术采用了存储/转发的结构,该技术一个显著的特点是网络节点上的路由器或交换机可对经过它的分组流进行定制处理,这种定制处理并非传统分组交换网络中为了单纯地将分组转发至目的地而对分组头进行的简单处理(如路由器分组头的修改或标记交换机对标记的修改等)。主动网络中的分组除携带净荷数据以外,还有可能携带程序代码,网络内的节点在接收到程序代码以后,可以在自己的运行环境内执行分组中携带的程序,从而改变网络的行为和状态,因此非常适合于建设自适应的cdn分布式的缓存系统。

在本发明中,通过主动网络技术,可以使主动网络中的主动节点自动下载并运行代码,这些代码即为生成缓存系统的程序。这些节点在接收并运行代码以后成为缓存服务器,然后将该缓存服务器添加到缓存系统中,以此类推,可以将更多的主动网络中的主动节点成为缓存服务器、并加入到缓存系统中。这些能够相互共享数据的多个缓存服务器来构成一个分布式缓存系统。在分布式缓存系统中,通过多个缓存服务器之间的互相协作,在不同缓存之间共享数据,从而提高了缓存效率。

本项发明主要有如下几个关键环节,首先是建立多层级的缓存服务器组,其二是对缓存服务器进行有效的监控,最后是实现数据在缓存服务器间的扩散。下面分别对这几部分内容进行描述。

一、如图1所示的建立多层级的缓存服务器组:

建立缓存服务器组是本项发明的第一步。本发明的缓存服务器组采用动态的、多层次的结构,通过交换邻近的缓存群组信息来满足缓存服务器激活监控的设计要求。首先是建立多层次的缓存架构体系,在这个体系中,每一层可以由多组的缓存服务器组成,一组缓存服务器也可以有更高一层的缓存服务器组,高更一层的换成服务器组称作为父层缓存服务器,这样就形成了一个层级的缓存服务器体系。每个缓存服务器组由该组多个缓存服务器成员组成,每组的成员个数介于n和n/2之间,n是一个预先设定的常数值,其中的一个缓存服务器会被指定成管理者,但它同时也是高一层的组成员之一。

具体的构建过程如下:

网络中的主动节点监控通过它的数据请求,这个主动节点可以为一台独立的服务器,这台服务器上具备正常的网络通信功能,此时服务器上并未安装缓存系统。该主动节点可以独立地根据网络状况、数据特性和本地用户请求频率等实时状况。

当数据请求超过固定的阈值时,该主动节点通过从代码服务器下载缓存代码到该主动节点,并自动安装缓存系统,缓存系统安装成功以后,该主动节点成为一个缓存服务器,我们将它命名为缓存服务器a。

然后缓存服务器a就向上游缓存服务器组发出加入请求,希望加入到附近的缓存服务器组中,在加入的过程中可能会遇到如下几种情况:

1、如果该缓存服务器a附近没有相应的缓存服务器组,则建立一个新的以该缓存服务器a为管理服务器的缓存服务器组;该缓存服务器组建立以后,缓存服务器a作为管理服务器可吸纳其他缓存服务器加入到本组,并实时核查组内成员数是否超过限定数额。

2、如果该缓存服务器a附近存在缓存服务器组,a选择一个响应时间最短的,或者距离最短的缓存服务器b,发送一个加入请求,缓存服务器b收到请求后,把请求转发给b的管理服务器c。管理服务器c检查其缓存服务器组的组员数量:

(1)如果组员数量小于n,则把缓存服务器a加入到组中;

(2)如果组员数量等于n,管理服务器c建立一个新的缓存服务器组,将一半的组成员移到新组中,同时把a加入到新组中去。

缓存服务器id编号:为了区别组内不同的缓存服务器,缓存服务器组中的服务器都有其唯一的id编号。为方便管理,我们通常将id编号最低的服务器设置为管理服务器,在上文中所述的管理服务器c其id编号最低。

管理服务器职责:管理服务器的职责是对组内其他服务器进行管理,如增加新的节点缓存服务器;核验组内成员的数量是否超过规定数量。如果该管理服务器的状态变成非激活,则第二低id编号的缓存服务器将取代它,成为管理服务器。

二、如图2所示的对缓存服务器进行监控

节点缓存服务器状态监控功能包括:对正常活动的服务器进行监控,监控其是否运行正常,并记录其运行日志。将服务异常的服务器从列表中移除,从而达到维护其群组内的缓存服务器列表的目的,在移除的同时,系统会发出相应的告警提示,通知管理员对服务器进行维护,被移除的服务器服务恢复正常以后,将被重新加入到服务器列表中。为了实现对节点缓存服务器的监控,需要做好如下两方面的工作。

具体的过程如下:

在构建了多层次的拓扑结构之后,管理服务器对缓存服务器列表信息进行维护,维护的方式采用轮询的方式对信息进行收集。管理服务器发出一个周期性(比如30分钟,1个小时)的询问消息,每个组成员收到询问之后,把自己的ip附于消息之后,返回给管理服务器,以此作为应答。如果服务器在等待一段时间后,并没有收到某成员的应答消息,那么再发送二次询问消息,如果仍然没有收到应答,那么该组成员极可能已经发生故障,管理服务器把它从组成员表中移去。通过这种方式,管理服务器就可以收集到完整的该组成员的列表。

三、缓存服务器间数据的扩散

在分布式缓存系统中,如何保证缓存内容在分布式系统中有效扩散是个核心问题,本发明采用一种使用缓存摘要的通信协作方案作为缓存服务器之间的协作机制。

每个缓存服务器都使用一个摘要目录来表示自己的本地已缓存数据,而群组中的管理服务器收集本群组内其他所有缓存服务器的摘要目录,为了减少管理服务器的负载量,它本身并不缓存其余的数据。这样管理服务器就拥有该群组中所有缓存服务器的缓存摘要,当某个缓存服务器的本地缓存中没有用户请求的数据时,它就把请求转发到管理服务器上,管理服务器在其群组中所有缓存摘要的索引目录中查询,如果查到,则把请求转发到相应的缓存服务器,让该缓存服务器对请求做回应;如果没查到,则把请求直接向web服务器转发,让web服务器来回应,此时缓存服务器就可以从web服务器上将相应的内容下载到本地,同时在该缓存服务器本地中生成一份摘要,并供管理服务器进行收集。

以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

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