首页> 中文学位 >基于协程的web服务器原型的设计与实现
【6h】

基于协程的web服务器原型的设计与实现

代理获取

目录

声明

1绪论

1.1 研究背景和意义

1.2 国内外研究现状

1.3 主要工作和创新

1.4 论文组织结构

2相关技术介绍

2.1 协程

2.3 web服务器

3系统总体分析和设计

3.1 系统的需求分析

3.2 协程库的分析和设计

3.3 web服务器的总体设计

3.4 协程在web服务器中的运用

4系统详细设计和实现

4.1 协程库的实现

4.2 日志和配置管理模块

4.3 定时器模块

4.4 进程管理模块

4.5 协程管理模块

4.6 HTTP处理模块

4.7 FASTCGI处理模块

4.8 本章小结

5测试和性能评价

5.1 协程库的测试

5.2 web服务器功能测试

5.3 web服务器性能测试

结论

参考文献

致谢

展开▼

摘要

网络已经成为人们生活中不可或缺的一部分,然而这对网络服务的重要组成部分——web服务器带来了严峻的挑战。如何提高web服务器的并发已成为一个亟需解决的问题。目前,业界有水平扩展和垂直扩展两种方式来解决该问题。然而,水平扩展成本高;垂直扩展方式中的多进程、多线程效果有限,事件驱动开发难度大。现有的方法都不尽如人意。
  随着go语言的问世,人们又重燃了对协程这一古老概念的兴趣。协程具有切换时间短,遇堵塞可以主动让出 CPU的特点,而这些都是高并发的有利因素。于是本文利用其来提高 web服务器的并发。本文设计了一个轻量级的 C语言协程库。该协程库是非对称的,结合web服务器的特点,使用epoll模型作为调度器。该协程库是stackful的,它提供两种模式:栈模式和堆模式。使用共享栈解决栈模式下空间有限的问题。该协程库提供完整的数据结构和封装,具有语言第一类对象。实验表明,其性能高于进程和线程,和主流协程库不相上下。
  本文利用以上协程库和Reactor模式,实现了一个多进程加协程的高性能web服务器。该web服务器是一个原型。它利用多进程来充分发挥CPU多核优势,利用协程增加每一个进程的并发。该web服务器的设计具有模块化,不仅可以解析静态页面,也可以处理 PHP动态请求。系统被划分为日志管理模块,配置管理模块,进程管理模块,协程管理模块,定时器模块,HTTP处理模块和FASTCGI处理模块等7个模块。实验表明,该web服务器运行良好,其并发表现好于Nginx和Apache。

著录项

相似文献

  • 中文文献
  • 外文文献
  • 专利
代理获取

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号