基于cdn的内容管理系统的制作方法_3

文档序号:8512574阅读:来源:国知局
配模块15用于将任务数据根据区域或运营商进行拆分为子任务,并发送到对应目标Work服务器上,并维护Work服务器与子任务的关联关系。
[0098]具体地,子任务分配模块15将任务数据根据区域或运营商以二选一的方式进行拆分,并采用json数据交换语言进行编码,采用异步通信方式进行发送。
[0099]由于保存了子任务与Work服务器的关联关系,当Work服务器故障时,可根据子任务与Work服务器的关联关系来恢复任务。
[0100]参照图3,Master服务器的工作流程包括以下步骤:
[0101]31)接收客户提交的内容管理请求;
[0102]其中,内容管理请求包括但不限于推送、预取、文件校验(覆盖率)请求等等。
[0103]32)解析验证内容管理请求;
[0104]33)生成任务并保存到数据库中,同时添加到当前任务对应的任务队列中;
[0105]34)获取各个任务队列中的任务,根据客户策略与配置判断是否符合运行条件;
[0106]35)如果符合运行条件,则根据注册的Work服务器的属性、所属运营商及Work服务器的当前负载状态,将任务分解为子任务;将分解生成的子任务发送到对应的Work服务器上,并保存子任务与Work服务器的关联关系;
[0107]36)若不符合运行条件,则不执行任何操作。
[0108]参照图4,Work服务器包括子任务接收模块31、任务计算模块32、消息发送模块33、任务反馈模块34和缓存模块35。其中,任务计算模块32分别与子任务接收模块31、消息发送模块33和缓存模块35相连,消息发送模块33再与任务反馈模块34相连。
[0109]子任务接收模块31用于接收Master服务器发送的子任务,并添加到任务队列中。
[0110]任务计算模块32用于根据缓存模块缓存的客户CDN加速信息,计算任务的所覆盖的内容缓存服务器的范围,并生成任务指令。
[0111]消息发送模块33用于发送任务指令到所有的目标机器。
[0112]具体地,消息发送模块33使用高效的JAVA N1异步通信机制,采用多通道、私有协议发送任务指令到所有的目标机器。
[0113]任务反馈模块34用于接收内容管理客户端反馈的任务结果,并根据任务结果更新任务进度。具体地,任务反馈模块用JAVA N1异步通信机制接收内容管理客户端反馈的任务结果,并根据任务结果更新任务进度。
[0114]缓存模块35用于缓存CDN网络中各个节点的状态,实时更新所有节点的软硬件故障状态;保存和实时更新客户的业务配置数据,以及缓存任务目标的计算结果。
[0115]Work服务器的主要功能是接收分布式调度中心指派的任务,计算任务目标,构造任务指令并发送到目标机器,收集任务结果,并反馈到分布式调度中心的工作。参照图5,Work服务器的工作流程包括以下步骤:
[0116]51)接收并解析Master服务器发送来的子任务,并添加到任务队列中;
[0117]52)获取任务队列中的任务,根据缓存模块的业务信息,计算客户在当前策略下的目标内容缓存服务器的信息;
[0118]53)根据任务类型生成任务指令;
[0119]54)将任务指令添加到消息发送模块。
[0120]消息发送模块以一对多的方式,与目标机器建立连接,并准确高效的发送任务指令。参照图6,消息发送模块的工作流程包括以下步骤:
[0121]61)从任务队列中获取待发送任务指令;
[0122]62)判断是否与目标机器建立连接;若是,转入步骤64);若否,转入步骤63);
[0123]63)新建一个与目标机器的连接;
[0124]64)采用私有协议异步发送任务指令至目标机器;
[0125]65)判断任务指令是否发送成功;若是,流程结束;若客户端反馈失败或指令发送超时导致发送失败,则重试若干次,重试时将任务指令重新添加到任务队列中。
[0126]参照图7,部署在内容缓存服务器上的内容管理客户端Beacon包括依次连接的协议处理模块51、任务执行模块52和任务反馈模块53。
[0127]协议处理模块51用于接收并解析Work服务器发送的任务指令,并添加到任务队列中。
[0128]任务执行模块52用于获取任务队列中任务,并执行任务。
[0129]任务反馈模块53用于向Work服务器反馈任务结果。
[0130]具体地,任务执行模块52的处理流程如下:
[0131]I)判断任务类型;
[0132]2)若是预取任务,则开始下载文件,并定时汇报下载进度到Work服务器;
[0133]3)若是推送任务,则标志文件过期;
[0134]4)若是文件校验任务,则计算对应文件的MD5值;
[0135]5)若是文件转化任务,则根据目标文件进行格式转化。
[0136]在内容分发网络中,为了提高终端客户一次访问的体验,会先于终端客户访问,将文件内容先缓存到内容缓存服务器上,该操作称为预取。参照图8,对于预取任务,其示例执行流程如下:
[0137]81)客户通过API或者页面提交预取任务请求,如http://www.a.com/test, flv ;
[0138]82)客户的任务请求通过负载均衡服务器如Ivs转发到任意一台Master服务器;
[0139]83)Master服务器校验任务数据,并根据对应的预取策略与ZooKe印er登记的Work负载与属性信息,将任务转发到当前较优的Work服务器;
[0140]84) Work服务器计算客户在⑶N网络中的加速范围,并找到加速节点缓存服务器所在的负载均衡服务器,询问预取url:http://www.a.com/test, flv哈希后的对应内容缓存服务器;
[0141]85)负载均衡服务器返回对应的内容缓存服务器ip为2.2.2.2 ;
[0142]86) Work服务器根据计算与询问到的内容缓存服务器的ip地址,使用高性能异步通信与私有协议,发送预取指令到内容缓存服务器的内容管理客户端;内容缓存服务器判断是否已经存在该文件http://www.a.com/test, flv ;如果不存在,则向一级内容缓存服务器1.1.1.1请求该文件;
[0143]87) 一级缓存服务器判断是否存在该文件,如果不存在则向客户源服务器请求文件,即直接到客户域名www.a.com下载文件test, flv文件。
[0144]在内容分发网络中,当客户文件发生变更后,需要对在CDN网络中缓存文件做过期或删除处理,该操作称为推送。参照图9,对于推送任务,其示例流程如下:
[0145]91)客户通过API或者页面提交推送任务请求,如http://www.a.com/test, flv ;
[0146]92)客户的请求通过负载均衡服务器如Ivs转发到任意一台Master服务器;
[0147]93)Master服务器校验任务数据,并根据对应的推送策略与ZooKeeper中登记Work服务器的负载、属性、运营商等信息,将任务分解为多个子任务,并分配到若干个的Work服务器上;
[0148]94) Work服务器计算客户在⑶N网络中的加速范围;
[0149]95) Work服务器使用高性能异步通信与私有协议发送推送指令到一级内容缓存服务器的内容管理客户端上,内容管理客户端推送缓存文件;
[0150]96)当完成所有的一级内容缓存服务器推送后,再发送指令到二级内容缓存服务器推送文件。
[0151]需要说明的是,上述示例仅以两层缓存架构来说明。对于多层缓存架构,可依次推送文件至多级内容缓存服务器上。<
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1