CDN流量采集系统数据中心服务器设计与实现.docVIP

CDN流量采集系统数据中心服务器设计与实现.doc

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
CDN流量采集系统数据中心服务器设计与实现

CDN流量采集系统数据中心服务器的设计与实现   摘 要: CDN流量采集系统是通过CDN流量数据进行采集分析以此来判断CDN服务质量的好坏,其依赖于一个可靠稳定的数据中心服务器。本文详细地论述了数据中心服务器模块所具备的功能,为监测CDN系统的运行和CDN流量统计系统提供了坚实可靠的数据基础 关键词:CDN 流量采集 中心服务器 中图分类号:TP393 文献标识码:A 文章编号:1672-3791(2016)06(a)-0000-00 本文系湖南文理学院2015年校级科研项目《基于数据分流的并行入侵检测系统研究》(项目编号:15YB10) 论文 1.引言 随着我国互联网技术的发展,涌现出了很多的CDN提供商。为了更好地了解CDN服务质量的好坏以便给客户提供优质的服务, CDN提供商往往给出了流量统计、流量监控等服务,这些服务提供的依据,都必须依赖CDN流量采集系统。本文针对系统的核心模块――中心服务器进行设计与实现 2.中心服务器运行流程 中心服务器运行在CDN流量采集系统数据中心,主要包括数据监听线程、线程池模块和数据处理入库线程(也即工作线程)三大功能模块,其作用主要是接收各个节点发送过来的数据,然后存储在数据库中。主要工作流程大致如下: 当启动服务端的程序后,首先应确保程序的单实例运行,然后初始化运行日志,再读取服务器的配置文件后进行环境参数的配置。在上述工作就绪之后,服务器将首先创建网络环境并初始化参数,然后创建并初始化线程池。接收数据进程模块监听着服务器上的端口,如果发现有Client端有数据传输过来,则把Client端的ID号存入连接缓冲区,如果到来的事件是表明有已经连接的客户端的通信数据到来,就向线程池中抛入一个任务。同时唤醒空闲的任务线程来处理相关的业务请求。 当处理线程接收了数据之后,便存入一个内存缓冲区。在缓冲区达到一定的数量的时候,统一插入到数据库中 3.功能设计 3.1监听线程模块 本文设计的服务器程序功能需要在同一时间接收多个CDN节点采集程序发送过来的数据,也就是说,服务器既要监听套接口,又要处理已经连接的套接口,这里就需要用到I/O复用的技术(I/O multiplexing)。监听线程模块为了能够适应接收多个Client的访问请求,有必要加入EPOLL机制。改进后的算法如下: 3.2线程池模块 由于流量采集业务复杂、采集的数据量大,CDN数据中心服务器必须具备较高的性能要求,在数据存储量、吞吐量、响应时间等方面都力争最大化,因此有必要采用线程池技术来实现这些要求 (1)线程池的创建和初始化 在创建一个线程池的过程中我们使用了两个参数,一个是 min_num,表示线程池最小数目,一个是max_num,表示线程池数目的上限。线程池的运行过程中,会让数目维持在这两者之间。这样一方面不会占有过多的资源,另外一方面也不会使得过渡的创建线程而降低线程池的工作效率[2]。在线程池初始化过程中,我们主要做了两个工作。一个是对创建工作线程并对工作线程进行初始化。另外一个是创建一个管理线程,用于动态的管理线程池,让其更好的工作,使得资源更加协调 (2)任务的处理 在客户端请求发送递交到线程池的时候,会对任务进行一系列的处理后,并将其信息回馈给客户端。其中任务放入线程池的策略就是找到第一个处于空闲状态的线程,然后将任务与线程绑定在线程上来达到目的。在修改线程状态的时候先是加锁,完成修改之后再解锁(这是有效控制线程同步运行的关键),并将任务和相关参数绑定到制定的结构中 (3)线程池状态计算和关闭销毁 在线程池的管理中,是用线程池的状态来维护线程池的动态平衡的。管理线程根据线程池的状态做出一定的管理操作。当线程池处于空闲状态返回0,当处于忙碌或者正常状态的时候,返回1。当忙碌线程数目占总线程数目一半及其以上的时候,线程处于忙碌或正常状态。当忙碌线程数目占总线程数目一半以下的时候,线程处于空闲状态。线程池处理完客户请求,不需要的时候,这时候可以关闭并销毁线程池,避免资源的浪费 (4)线程池的监控 线程池在最初创建的时候会创建出一个管理线程,用于对线程池的动态管理。他会每隔一段时间对线程池进行监控,根据它的的状态来进行相应的操作,来创建和销毁线程池中的线程,合理的利用了计算机系统资源 3.3 数据处理入库模块 在系统的实际运行中,我们采用了Mysql数据库。因为Mysql数据库因其是一个快速、多线程、多用户的SQL数据库服务器,其出现虽然只有短短的数年时间,但凭借着“开放源代码”的东风,它从众多的数据库中脱颖而出,成为很多电子商务网站的首选数据库。同时它也提供了很多现成的接口函数,便于我们用C语言对其进

文档评论(0)

linsspace + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档