• 学前教育
  • 小学学习
  • 初中学习
  • 高中学习
  • 语文学习
  • 数学学习
  • 英语学习
  • 作文范文
  • 文科资料
  • 理科资料
  • 文档大全
  • 当前位置: 雅意学习网 > 语文学习 > 正文

    分布式服务器【浅析一个分布式日志服务器的应用】

    时间:2018-12-23 19:43:12 来源:雅意学习网 本文已影响 雅意学习网手机站

      摘 要:本文论述了一个分布式日志服务器的实现过程。通过对系统需求的介绍,具体描述了系统的设计过程,并对系统中运用的若干关键技术进行了分析,最后总结讨论了该系统的优点。
      关键词:日志服务器 分布式 缓冲 多线程 UDP FTP
      
      引言
      
      日志在实际应用中具有重要的意义。它有助于我们发现系统中存在的问题,以改进产品的质量,也可以从侧面了解用户使用的情况。如果对日志进行更深层次的挖掘,还可以了解用户的潜在需求,为产品开发者提供指导。日志服务器就是用来收集这些日志的平台。本文给出了一个分布式日志服务器的参考应用。
      
      一、需求介绍
      
      本应用主要接收来自小型终端设备的日志信息。终端设备的特点是:1、分布范围很广,分布的范围跨越不同的国家;2、数量很大,达到万级,并且数量仍有不断递增的趋势;3、单个终端在单位时间内发送的日志数量巨大。以上特点无疑就给日志服务器提出了较高的要求,即日志服务器必须能够长时间承受很大的负载,并且能够有很大的数据容量。另外,在这基础上我们还要考虑到将来对系统进行扩展的可能性。
      
      二、系统设计
      
      本系统设计上采用了分布式的架构(架构图见图1)。其中日志接收服务器负责接收来自终端设备的日志数据包,并在经过处理后,传输到日志集中服务器。日志接收服务器分散部署到不同的地点,用于接收来自各个地区的设备的日志。而日志集中服务器负责接收日志接收服务器传输过来的日志文件,并保存到本地的数据库。
      (一)架构图
      
      (二)通讯协议
      1.终端与日志接收服务器间的协议
      对于终端与日志接收服务器之间的协议有两种可选的方案:UDP协议和TCP协议。两种协议各自的特点对比如下表所示:
      
      应用中,结合本应用的特点,我们选择了UDP协议。原因主要有三点:一、本应用收集来自终端的日志,对可靠性要求不是很高,即使有少量数据丢失,也是可以接受的;二、终端发送的日志数据量较小,每个包在100字节左右;三、终端数量巨大,对接收效率的要求非常高。
      2.日志接收服务器与日志集中服务器间的协议
      这个环节的协议也有两种可选方案:FTP(文件传输协议)和HTTP(超文本传输协议)。本系统的实现选择了FTP。主要的考虑如下:一、FTP可以采用成熟的服务器端产品,这无疑能减少开发的时间成本,也加强了可靠性保证;二、FTP有用户验证机制,提供了一定程度的安全性。
      (三)日志接收服务器
      日志接收服务器的作用相当于是一个日志中转站。它接收来自终端的日志包,并将日志传输到日志集中服务器。日志接收服务器的工作流程如图2所示。
      
      以下对日志接收服务器上用到的若干关键技术进行说明:
      1.缓冲技术
      缓冲区是一块空间足够大的内存。接收来自终端的日志包,实际是通过对UDP端口的循环侦听实现的。这一环节对整个系统的性能有着非常重要的影响。因为,一旦接收速度慢,就会导致后续的日志包无法送达,造成丢包。所以,引入缓冲,就是当接收到日志包之后,不进行处理,直接保存到一个缓冲区,这样处理显然就大大提高了接收日志包的速度。引入缓冲还有另外一个好处,就是终端发包的流量是时快时慢的,缓冲区能够对短时间的大流量冲击进行缓冲,避免丢包现象发生。
      2.多线程
      在解析日志包的时候,为了提高解析的效率,引入了多线程机制。多线程机制提高了CPU利用率,在很大程度上改善了效率。
      3.压缩
      在传输文件前,本应用先对文件进行了压缩处理,这主要是出于节省网络流量并且提高传输效率的考虑。因为网络的带宽是一种高成本的资源,进行压缩无疑显得非常必要。
      (四)日志集中服务器
      日志集中服务器是日志的一个总的存储中心。它工作流程如图3所示。
      
      以下对日志集中服务器用到的若干关键技术进行说明:
      1.FTP服务器
      接收来自接收服务器的压缩文件是通过现有的FTP服务器端软件实现的,目前这种软件的选择是很多的,甚至Windows也有自带的FTP服务器。使用FTP服务器大大节省了开发的时间,并且避免了自行开发可能带来的风险。
      2.缓冲技术
      在将日志写入数据库的时候,也采用了缓冲技术。在写数据库的时候,逐条写入速度是很慢的。只有在达到一定量的时候,同时写入才能得到最高的速度。当然,同时写入的量是有一个最优的值,并不是越多越好,这个最优值只有通过反复测试才能找出来。
      
      三、系统的优点
      
      (一)分布式
      只要能保持和集中服务器以及终端设备的网络通讯,日志接收服务器可以根据需要分布部署在不同的地点。分布式的特点为部署提供了很好的灵活性。
      (二)工作效率高
      系统经过反复苛刻的压力测试,并且经过不断的优化,使其具有了非常高的工作效率。测试的结果如下:
      日志接收服务器处理能力≥每秒10000条日志;
      日志集中服务器处理能力≥每秒20000条日志。
      (三)可维护性好
      由于各个子系统之间功能划分明确,相互独立,子系统之间耦合性低,整个系统的可维护性非常好。一旦发生故障,各个子系统可以相互断开,各自测试,进行故障分析,能够在很短时间内找出问题所在。当某一部分进行软件升级维护的时候,也不会影响到其他部分正常工作。
      (四)可扩展性好
      当日志接收服务器需要扩充的时候,可以在需要的地点放置一台接收服务器,在进行配置之后就能进行工作,不会影响到其他服务器。
      当日志集中服务器需要软件硬件升级的时候,可以先将FTP服务器停止,在升级完成之后再启动FTP服务器,日志接收服务器会将这段期间的文件再上传,不会造成数据丢失。
      
      结束语
      
      本系统在开发和测试阶段,通过反复多次的努力,使系统性能得到很大改进。目前,本系统已经投入运行,经受住了大流量数据的压力和长时间不间断运行的考验,实践证明是稳定的、可靠的、高效率的。开发过程中还解决很多其它的技术问题,比如压力测试时采用的模拟器,以及系统运行状况监视器,由于篇幅的限制,在此就不一一论述。
      
      参考文献:
      [1]Java Database Programming Bible, John O’Donahue, 2002.
      [2]Effective TCP/IP Programming,Jon C.Snader,2001.
      [3]黄传动. 通信协议的分布式测试方法研究和测试系统实现[D]. 中国科学技术大学,2006.
      [4]孙家东. 分组无线专用通信系统的研究系统通信协议的设计[D]. 东南大学,2004.

    推荐访问:分布式 浅析 服务器 日志

    • 文档大全
    • 故事大全
    • 优美句子
    • 范文
    • 美文
    • 散文
    • 小说文章