论文部分内容阅读
随着互联网应用技术发展,网络广告内容交易平台成为新的互联应用盈利模式,此类网站往往要同时承担大量用户的的web请求。如何建设快速、大并发量,可持续扩展的web应用架构成为该类应用的关键。如何利用现有的软件资源进行快速的应用整合是网站成功的基础。本文针对大规模互联网广告经营管理需求设计了基于Linux操作系统平台的分布式、大容量、可扩展的互联网广告经营管理系统。实现了互联网广告的发布,广告播放时段交易,以及广告播放统计三个主要的功能,为广告主、广告商,网站管理者提供一个易用、安全、快速的广告交易平台,并且使得广告内容受众能够快速无障碍的浏览到广告内容。本系统采用Browser/Server结构开发,使用Python语言作为基础程序设计语言,根据MVC(Model-View-Controller,模型-视图-控制器)软件开发架构,结合开放源代码的公共组件memcached、memcacheQ、Twisted,实现了系统的分布式用户请求处理,并且保证了系统的高可用性以及系统的可扩展能力。本文对持久性hash算法(Consistent Hashing)进行了介绍和研究,该算法能够较好地解决在分布式缓存节点数变化后大量缓存内容需要重新分配存储节点,造成缓存命中率下降的问题。同时由于Twisted网络框架中没有实现可用的针对memcache服务的分布式算法及其相关协议,所以本系统根据memcache服务的通信协议完成了一个非阻塞的异步分布式memcache服务客户端模块,该扩展模块能够良好地处理大量的缓存内容在不同memcache服务中的分布式存储。本文对基于事件的Twisted网络框架的事件回调机制和事件延迟机制进行了介绍。分析和研究了针对大容量、多连接、高并发的网络应用服务系统应采用何种底层网络IO结构。对常用的基于CGI协议的WEB应用开发方法和基于HTTP服务器的WEB应用开发所能够承受的用户并发数进行了对比测试。同时研究了针对大资料量的先进先出(First-In/First-Out)消息队列系统的分布式处理方法,利用该方法实现了一个用户可接受数据延迟的网络广告播放统计分析子系统。本系统无论从操作系统、程序设计语言、还是各个应用服务组件都使用了开放源代码的产品或组件,充分的利用开放源代码产品和组件不但能够减少企业运营的成本、而且可以获得良好的小区技术支持。开放源代码的产品和组件人人可以任意取得自由软件的原始码,所以软件的很多功能可以相互引用,不用再浪费无谓的时间精力重新开发,这可以大大加强软件开发的质量和速度。