论文部分内容阅读
近年来,随着移动互联网的迅速发展,客户端数量呈现出指数式增长,这就对服务端程序的开发带来了巨大的挑战,高并发、低延迟的服务端框架技术是一直以来研究的热点。服务端程序要尽可能使数据在本端处理时间短,以便能及时空出CPU资源去处理后续请求,以解决因请求在队列上堆积造成服务端程序吞吐量急剧降低,甚至宕机问题。为了提升开发效率,在事件驱动机制Reactor模式的基础上,产生了很多高性能的服务端开发框架如ACE、Boost.Asio、libevent、libev等,但在吞吐量、响应时间上仍然存在一定的提升空间。对此本文从通信协议、多路复用机制以及Reactor模式等方面展开研究,分析了当前服务端框架技术的性能瓶颈,对缓冲区、线程池进行了优化工作,并根据实际应用场景优化了日志处理逻辑,最终提升了服务端框架的吞吐量,降低了响应时间。并将该框架应用在了智慧校园系统的开发中。本文主要研究工作及创新如下:(1)本文首先介绍了网络传输技术和多路复用技术,包括Reactor模式的优势、Reactor线程池的设计思想。接着介绍了基于Reactor模式设计的传统服务端框架技术,并对其迭代的过程进行了详细的阐述,然后对比分析了各个阶段服务端框架技术的特性,最后引出了当前服务端框架技术在吞吐量、响应时间等方面还存在改进空间的观点。(2)在Reactor设计模式的基础上,对整体服务端框架展开了设计工作,包括框架的核心类设计、线程池设计、缓冲区结构设计以及日志结构设计。其中重新设计了缓冲区,提升了数据读入和写出的效率;优化了线程池结构,提升了任务队列处理效率;设计了双缓冲日志结构,提升了日志读写效率。最终实现了一套基于Reactor模式的高性能服务端开发框架,并对该框架进行了吞吐量测试。(3)在本文已设计的服务端框架基础上,开发实现了智慧校园系统,该系统主要与校园智能门锁产生交互,并向WEB端提供数据管理接口。在实现过程中,首先,对该系统进行了详细的需求分析。然后根据需求设计了一套自定义通信协议,服务端程序中所有与校园智能门锁终端的交互过程均遵循该套协议。最后,实现了该系统的各项业务功能,并且对该系统进行了功能测试以及压力测试。