基于Reactor模式的Muduo网络框架技术研究
发布时间:2017-05-26 14:25
本文关键词:基于Reactor模式的Muduo网络框架技术研究,由笔耕文化传播整理发布。
【摘要】:智能手机的出现,使得传统互联网从PC进化到了PC+移动互联网阶段,各种类型的新的网络应用层出不穷。数量繁多的客户端的出现,对服务器端网络应用提出了高并发、低延迟等新需求。C++在服务端应用开发中被广泛使用,许多高性能计算机后台都是采用C++进行开发的。但是C++开发难度较大,传统的C++开发模型很难应付新的应用需求,因此需要实现现代高性能网络的开发技术。本文通过研究传统网络开发模型在连接建立、数据传输等方面的实现过程,总结出传统网络开发模型的性能瓶颈在于网络IO和多线程并发性能低下。针对传统网络开发模型的瓶颈,本文研究了用于加强网络性能的IO复用技术,以及改善多线程效率低下、提升并发性能的线程池技术,并深入研究了基于上述技术的Reactor模型。但是Reactor模型在性能上的提升是以开发复杂度的增加为代价的,为了降低C++网络应用的开发难度,本文选取了基于Reactor模式的Muduo网络框架,该框架架构清晰,使用也较为简单,能够为C++开发带来不小的便利。本文具体实现了两方面的网络应用,分别是高速缓存的网络IO应用和大数据量并发的低延迟应用,用于检测Muduo网络框架在高速缓存和高并发、低延迟应用等关键网络应用需求上的性能表现。采用Muduo框架模拟实现memcached软件是高速缓存、网络IO应用的典型,通过实现模拟实现该软件的功能并进行性能评测,证实Muduo在网络IO及高速缓存上性能优异。另一方面,即时通信服务属于典型的大数据量并发、低延迟的网络服务,本文通过即时通信服务器的研发与测试,验证Muduo在多线程大数据量并发和消息快速响应等方面能够满足业务性能需求,可以作为传统网络服务支持高并发、低延迟性能需求的重要开发工具。通过理论研究和实际应用软件的性能测试结果分析证明,Muduo网络框架能够满足现代网络应用在性能上的需求,为C++开发此类应用提供了较为优秀的参考。
【关键词】:网络应用 非阻塞IO Reactor Muduo 多线程
【学位授予单位】:武汉邮电科学研究院
【学位级别】:硕士
【学位授予年份】:2016
【分类号】:TP393.02
【目录】:
- 摘要3-4
- Abstract4-9
- 第1章 绪论9-13
- 1.1 研究背景及意义9
- 1.2 课题来源及研究现状9-10
- 1.2.1 课题来源9-10
- 1.2.2 研究现状10
- 1.3 主要研究内容10-11
- 1.4 论文组织结构11-13
- 第2章 高性能网络开发关键应用技术研究13-29
- 2.1 传统网络开发技术13-19
- 2.1.1 TCP通信原理13-15
- 2.1.2 数据处理模型15-16
- 2.1.3 多线程网络模型16-18
- 2.1.4 传统网络开发技术分析18-19
- 2.2 阻塞IO和非阻塞IO19-20
- 2.2.1 阻塞IO(blocking IO)19
- 2.2.2 非阻塞IO(non-blocking IO)19-20
- 2.3 IO复用技术20-23
- 2.3.1 缓冲区21-22
- 2.3.2 IO复用22-23
- 2.4 线程池技术23-24
- 2.5 REACTOR模式24-25
- 2.6 MUDUO网络框架25-28
- 2.6.1 概要简介25
- 2.6.2 框架结构25-27
- 2.6.3 使用方法27-28
- 2.7 本章小结28-29
- 第3章 高速缓存访问的网络IO研究29-36
- 3.1 需求分析和设计29-30
- 3.2 软件架构设计30-33
- 3.2.1 数据结构30
- 3.2.2 网络IO模型30-33
- 3.3 性能测试33-35
- 3.3.1 测试环境33-34
- 3.3.2 测试方法34
- 3.3.3 测试结果与分析34-35
- 3.4 本章小结35-36
- 第4章 大数据量并发的低延迟应用研究与实现36-48
- 4.1 需求分析36-38
- 4.1.1 总体软件架构介绍36-37
- 4.1.2 即时通讯系统需求分析37-38
- 4.2 即时通讯软件设计38-43
- 4.2.1 服务器架构设计38-39
- 4.2.2 通信协议设计39-41
- 4.2.3 业务处理流程41-43
- 4.3 软件测试43-47
- 4.3.1 测试环境43-44
- 4.3.2 测试方法44
- 4.3.3 测试结果与分析44-47
- 4.4 本章小结47-48
- 第5章 总结与展望48-50
- 5.1 完成工作的总结48
- 5.2 技术展望48-50
- 参考文献50-52
- 致谢52-53
- 附录1 攻读硕士学位期间发表的论文53-54
- 附录2 主要英文缩写语对照表54
【参考文献】
中国期刊全文数据库 前10条
1 杨超;徐如志;杨峰;;基于消息队列的多进程数据处理系统[J];计算机工程与设计;2010年13期
2 蒋溢;黄进;王化晶;;基于多线程技术的聊天系统研究[J];计算机工程与设计;2008年15期
3 彭帅;;NIO网络开发设计实践[J];程序员;2008年02期
4 李刚;金蓓弘;;基于线程的并发控制技术研究与应用[J];计算机工程;2007年14期
5 沈杨;廖晔;;线程池技术的应用[J];软件导刊;2007年11期
6 范宝德;马建生;;Java非阻塞通信研究[J];微计算机信息;2006年36期
7 程超;杨风召;;基于Java非阻塞I/O开发高性能网络应用程序[J];电子工程师;2006年10期
8 高正光,李启炎;一种多线程并发环境下的对象缓存模型[J];计算机工程;2005年22期
9 邵鸣年,张昕;一种分布式系统中线程池的设计与实现[J];计算机工程与设计;2005年01期
10 郑燕飞,余海燕;Linux的多线程机制探讨与实践[J];计算机应用;2001年01期
本文关键词:基于Reactor模式的Muduo网络框架技术研究,,由笔耕文化传播整理发布。
本文编号:397139
本文链接:https://www.wllwen.com/guanlilunwen/ydhl/397139.html