论文部分内容阅读
近年来,随着Internet的飞速发展,流媒体点播应用得到了前所未有的发展。传统的流媒体服务器多采用内容分发网络(CDN)与C/S相结合的方式。在这种模式下,随着用户数量的增多,一方面每个用户可获得的下载速度将会降低;另一方面服务器的负载过大,甚至会出现服务器宕机。面对大量用户的并发访问,怎样有效提升整个系统的网络吞吐量,增强服务器的并发性能以及提高用户体验,是当今点播服务器的设计要点。本文结合近年来流行的对等计算(P2P)技术,基于半同步/半异步体系结构设计和实现了一种高性能点播服务器。服务器采用EPOLL作为异步事件通知机制,非阻塞地处理网络I/O事件;利用线程池模拟异步磁盘I/O操作,并采用二级队列进行线程通信。实现了流媒体发布,点播,下载和删除等基本功能。为了选择优质节点作为服务器的直接邻居节点,提高整个网络的服务能力,实现了链接优化功能;为了既保证各个链接带宽的公平性,又能够为热点文件提供更大的动态带宽,服务器提供了流量管理功能;同时,点播和下载虽然在数据请求流程上是相同的,但是点播有实时性要求,于是为提高用户点播体验,系统将为点播请求分配更高的优先级,并对点播请求的数据收发模块做特别的优化处理,将丢弃过时和无效的数据和请求;另外,系统中存在各种定时需求,如链接超时和限速超时,但各种超时长度参差不齐,为了更精确地提供定时服务,分别设计了链接和限速两种定时器;最后,系统采用了Ordered日志模式保证意外宕机之后的文件系统一致性,并设计了基于文本的管理员日志来记录服务器的操作历史,为系统管理提供依据。本系统以Linux 2.6为开发平台,采用C++作为开发语言。通过实际环境和模拟测试验证了服务器功能和性能,从实际效果来看服务器能够持续稳定的给大量用户提供高效的服务,其设计和实现方式具有一定的理论和实际推广价值。