一种CDN系统内任务执行管理的方法与流程

文档序号:13136483阅读:182来源:国知局
一种CDN系统内任务执行管理的方法与流程

本发明涉及互联网技术领域,尤其是涉及一种cdn系统内任务执行管理的方法。



背景技术:

随着社会的发展,互联网用户快速增长带动了互联网经济的蓬勃发展,移动互联网、电子商务、网络视频、品牌网络广告、网上招聘、网络游戏等在极短的时间得到快速发展并积累了众多用户,成为了人们生活中不可或缺的一部分。

让人们越来越关注互联网技术的更新,如何更好更快更方便的共享互联网资源,成为人们共同的焦点。

cdn的全称是contentdeliverynetwork,即内容分发网络。其基本思路是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快、更稳定.通过在网络各处放置节点服务器所构成的在现有的互联网基础之上的一层智能虚拟网络,cdn系统能够实时地根据网络流量和各节点的连接、负载状况以及到用户的距离和响应时间等综合信息将用户的请求重新导向离用户最近的服务节点上.其目的是使用户可就近取得所需内容,解决internet网络拥挤的状况,提高用户访问网站的响应速度。

在cdn业务系统中,经常需要将任务下发到不同的节点,同时还需要监控任务的执行情况、汇总任务执行日志。目前的任务执行管理系统主要存在如下问题:

1.任务请求的接收性能问题。在大型的cdn系统中,节点数量多达成百上千个,如果这些节点同时发起任务请求,这对系统的要求特别高,而目前多数系统受限于并发处理能力,使处理能力成为任务执行管理系统的一个瓶颈。

2.扩展性的问题。在cdn系统中随着节点数的增加,系统处理任务的工作量也随之增加,因此需要系统具备良好的可扩展能力,以适应节点数不断增加的业务环境。而目前的任务执行管理系统往往只按照当时的业务量或者预期设定的业务量进行设计,不具备自主的扩展能力。

3.不具备统一的日志输出功能,对日志不能进行统一的分析、数据挖掘操作,不方便后续的业务分析工作。



技术实现要素:

本发明的目的在于提供一种cdn系统内任务执行管理的方法,以解决上述背景技术中提出的问题和缺陷,可以自行扩展,统一输出日志,并统一分析挖掘,简便有效。

为实现上述目的,本发明提供如下技术方案:

一种cdn系统内任务执行管理的方法,其管理系统由消息转换模块、任务分发模块、日志模块、执行模块、状态控制模块组成,客户端与消息转换模块之间通过信号相连,消息转换模块、任务分发模块、执行模块之间依次通过信号相连,执行模块与消息转换模块也通过信号相连,状态控制模块与消息转换模块、任务分发模块、执行模块分别相连,日志模块与状态控制模块、消息转换模块、任务分发模块、执行模块分别相连;

消息转换模块是本系统的中枢模块,将合乎要求的客户请求传递给任务分发模块,任务分发模块根据客户的请求将任务分发至执行模块,执行模块对客户的请求进行处理,并将执行结果反馈至消息转换模块,再由消息转换模块将执行结果反馈至客户端;

在上述过程中,状态控制模块对客户发送任务请求、请求执行、请求结果的反馈的整个过程中进行状态控制,确保每一环节都能正常进行;日志模块将消息转换模块、任务分发模块、执行模块、状态控制模块所产生的所有日志进行记录;

其中:

消息转换模块:是一个基于http协议的功能模块,负责接收客户端请求,以及接收并反馈任务执行结果给客户端;

任务分发模块:用于将任务分发到各个节点;

日志模块:负责接收所有模块发来的日志,同时要求所有模块产生的日志必须严格按照规范的格式生成;

执行模块:具体执行业务的逻辑的模块,每个执行模块完成一个特定的功能,该功能被看作是最小模块的功能单元,供上层组合调用;

状态控制模块:将客户端发送的每一个任务,对应到该状态控制模块中的一个工作流,每一个工作流均由执行模块实现的最小模块的功能单元组合而成。

在上述技术方案中,消息转换模块一方面负责接收客户端发送的请求,同时该模块具有客户端请求合法性验证功能,可以验证客户端请求的合法性,将通过合法性验证的请求传递给下游模块;对验证不合格的用户请求将予以拒绝;另一方面负责接收下游模块即任务分发模块和执行模块传递过来的任务执行结果,并将任务执行结果发回给客户端。

作为上述技术方案的优选,任务分发模块使用redis作为消息队列,实现一个总线形式的消息传递机制,任何一个模块都可以向这个总线中推送消息,并且指定接收模块,总线形式的消息传递机制就是进行先收拢再发散的过程,即先收拢,从统一的入口进去,完成必要的统一处理逻辑;再发散,按照路由规则到各个组件去处理。

作为上述技术方案的优选,日志模块通过任务id定位到模块日志,每个任务都设置有相应的id,日志模块根据任务的id,定位到所有模块的日志。

在上述技术方案中,消息转换模块、任务分发模块、日志模块、执行模块、状态控制模块均设有多个,工作时,以一个为主要模块,其他为备用模块,当主要模块出现问题时,系统自动切换到备用模块。

在上述技术方案中,发现异常和监控是由状态控制模块来实现,在状态控制模块中会对每个模块的健康值设定一个阈值,工作时由日志模块进行记录每个阈值并传送给状态控制模块进行监测,在该阈值范围内,说明功能正常,如果超出阈值范围,说明服务异常。

本发明的优点:

本发明实施例提供的一种cdn系统内任务执行管理的方法,优点如下:

1.系统具备非常高的请求的接收性能,能达到10kqps以上。

2.系统具备高可用性,当一个模块出现异常时,系统自动切换到备用模块,保障了服务的正常运行,系统能够快速自动的完成故障迁移,不影响整个系统的正常工作。

3.系统具备高可扩展性,当一个模块性能不足时可通过增加模块数量来解决问题,实现业务的平滑升级。比如当执行模块性能不足时,可在日志模块中发现大量的待处理日志,如果这种日志大量出现且较为频繁,说明执行模块的处理性能出现问题。在这种情况下可通过增加服务器设备以及在新增加的服务器上新部署执行模块来解决。

4.系统具备统一的监控功能,能够及时发现各个模块的异常。

5.系统具备统一的日志输出功能,能方便排查具体某个任务某个模块的异常。

附图说明

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

图1为本发明实施例的一种cdn系统内任务执行管理的方法的系统结构示意图。

图2为本发明实施例的一种cdn系统内任务执行管理的方法的消息转换模块的工作示意图。

具体实施方式

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

实施例

如图1-2所示,当客户端发出了更新域名列表的指令,消息转换模块先判断客户的合法性,如果是非法的用户,消息转换模块将拒绝该客户的请求;如果是合法的客户,消息转换模块将客户请求传递给任务分发模块,任务分发模块根据客户的请求将任务分发至执行模块,执行模块对客户更新域名列表的指令进行处理。在执行完任务以后,执行模块将执行结果反馈至消息转换模块,再由消息转换模块将执行结果反馈至客户端。在整个过程中,状态控制模块对客户发送任务请求,到请求的执行、请求结果的反馈这一整个过程中进行状态的监控对异常的情况进行告警。同时日志模块将消息转换模块、任务分发模块、执行模块、状态控制模块所产生的所以日志进行记录。

1.消息转换模块具有如下2个功能:

(1)一方面负责接收客户端发送的请求,同时该模块具有客户端请求合法性验证功能,可以验证客户端请求的合法性,将通过合法性验证的请求传递给下游模块;对验证不合格的用户请求将予以拒绝。

(2)另一方面负责接收下游模块传递过来的任务执行结果,并将任务执行结果发回给客户端。

该功能模块的优势如下:

(1)扩展性好。模块基于http的接口,可以同时部署多个模块,然后通过在前端加一层负载均衡设备,使客户端请求在多个模块之间均衡分配,因此该模块具备良好的扩展性,可以很好地适应大规模用户请求的应用场景。

(2)基于消息对外追求可读性强、对内追求效率的特点,该模块将面向客户端的部分统一到一个模块中,可以统一实现对消息的编解码、格式转换等功能。通过以上设计一方面大大提高了消息的可读性,同时提高了消息格式转换的效率。

2.任务分发模块的优势如下:

(1)利益于redis的性能,任务分发模块有吞吐量大,延迟低的优点。redis是一个远程内存数据库,不仅性能强劲,而且还是一种具有复制特性的数据模型。redis通过复制、持久化和客户端分片等特性,用户可以很方便地将redis扩展成一个能够包含数百gb数据、每秒处理上百万次请求的系统。因此redis的性能非常的优异。该功能模块采用redis作为消息队列,使模块的任务分发功能够适应大吞吐的应用环境。

(2)消息队列的生产者、消费者可以部署在不同的机器、不同的进程中,因此消息队列的整体结构比较灵活,而且扩展性也好,非常适合cdn这种大规模的分布式任务执行管理模式。

3.日志模块具有如下特点:

(1)通过任务id定位到模块日志。每个任务都设置有相应的id,日志模块根据任务的id,定位到所有模块的日志。

(2)实现日志的管理统一与分析。日志模块对日志进行统一的收集与存储,便于对日志进行统一的分析、数据挖掘,便于问题发现及了解业务特点。

4.执行模块:具体执行业务的逻辑的模块,一个模块完成一个特定的功能,:特定的功能是指具体的一个功能模块所能完成的具体的功能,比如说执行模块中的其中一项“静态页面加速”功能,其特定的功能是对用户的静态页面加速请求进行加速处理。

优势如下:

(1)实现的是原子功能,程序的功能结构由多个原子功能根据程序语义与相继展开的编程线索构成,每个原子功能对应一个不可分割的源码语句功能段,因此相同的功能可以简单复用。

原子功能可以理解为最小模块的功能单元。可以这么理解。一项具体的功能由很多项最基本的功能组合在一起实现,而这些最基本的功能就是原子功能。比如一个自行车要跑起来,这是它最基本的功能,而要实现这个功能,需要车胎、车座、脚踏等这些部件实现的最基本的功能组合起来。

(2)利益于redis的消息队列,执行模块可扩展性好,且实现不局限于一种语言。5.状态控制模块:将客户端发送的任务,对应到该模块中的一个工作流,每一个工作流均由执行模块实现的原子功能组合而成。该组合关系,可以通过配置文件来指定,运行时缓存到redis中。该实现优势如下:

(1)如前文所述,redis作为一个远程内存数据库具有非常良好的性能,系统使用redis来缓存任务执行的中间状态,性能较好。

(2)通过修改配置,即可完成各个原子操作间的跳转,而一般的状态机实现则需要通过代码来实现跳转。这一方面提高了系统的可操作性,同时也提高了跳转的效率。

(3)支持任务处理异步执行。在异步执行模式下,各语句执行结束的顺序与语句执行开始的顺序并不一定相同,因此通过异步执行方式使应用程序能摆脱单个任务的牵制,提高了灵活性和应用程序的执行效率;同时系统支持同步查询任务进度。

以上所述仅为本发明的较佳实施方式作了详细说明,但是本发明并不限于上述实施方式,保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内,本发明实施例还可以在不脱离本专利宗旨的前提下做出各种变化。因此,本发明的保护范围应该以权利要求的保护范围为准。

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