当前位置:主页 > 科技论文 > 软件论文 >

基于Reactor模式的高性能服务端框架技术的研究与实例分析

发布时间:2021-07-27 14:03
  近年来,随着移动互联网的迅速发展,客户端数量呈现出指数式增长,这就对服务端程序的开发带来了巨大的挑战,高并发、低延迟的服务端框架技术是一直以来研究的热点。服务端程序要尽可能使数据在本端处理时间短,以便能及时空出CPU资源去处理后续请求,以解决因请求在队列上堆积造成服务端程序吞吐量急剧降低,甚至宕机问题。为了提升开发效率,在事件驱动机制Reactor模式的基础上,产生了很多高性能的服务端开发框架如ACE、Boost.Asio、libevent、libev等,但在吞吐量、响应时间上仍然存在一定的提升空间。对此本文从通信协议、多路复用机制以及Reactor模式等方面展开研究,分析了当前服务端框架技术的性能瓶颈,对缓冲区、线程池进行了优化工作,并根据实际应用场景优化了日志处理逻辑,最终提升了服务端框架的吞吐量,降低了响应时间。并将该框架应用在了智慧校园系统的开发中。本文主要研究工作及创新如下:(1)本文首先介绍了网络传输技术和多路复用技术,包括Reactor模式的优势、Reactor线程池的设计思想。接着介绍了基于Reactor模式设计的传统服务端框架技术,并对其迭代的过程进行了详细的阐述,然... 

【文章来源】:浙江理工大学浙江省

【文章页数】:65 页

【学位级别】:硕士

【部分图文】:

基于Reactor模式的高性能服务端框架技术的研究与实例分析


图2.1?TCP/IP协议族的分层结构图??链路层:链路层是物理层的传输通道,可通过多种传输介质进行传输,主要是由物理??

流程图,流程图,应用层,包头


浙江理工大学硕士学位论文?基于Reactor的高性服务端框架技术的研究:与实例分析??协议是面向无连接的协议,相比与TCP协议不提供可靠传输,但其结构简单,无需ACK??确认机制等因素使得传输效率较高[31],所以一般在可以容忍部分数据丢失、追求传输效率??的场景中常常采用UDP协议。??网络层:网络层主要承担相邻计算机之间的通信工作,通过填充丨P的方式来决定数据??包的发送路径,然后将数据包发送至合适的网络接口[32—34]。如果数据己发送至对端,则将??包头去掉,随即送至对端传输层做进一步处理。同时网络层还参与传输过程中流量控制、??拥塞机制等流程[35]。??应用层:应用层主要是面向用户的,数据从网卡处接收,经过链路层、网络层、传输??层,逐层去除各层包头数据,最终提供给应用层的将只有用户数据,比如常见的HTTP协??议、RTP协议都是数据用户层协议[36],都是根据特定的使用场景,通过在用户层数据上再??次封装包头的方式来实现的[37]。??2.1.2?Socket网络编程??Socket套接字是处于应用层和传输层中间的抽象层,通过Socket可以将TCP/丨P协议??族中复杂的操作细节抽象成简单的系统API,简化了网络编程。图2.2为客户端与服务器??的Socket通丨目流程。??TCP?Semi??.?SOCkt*!U??ITPClient?|??socketO??i??n^〇?:l?卜繼pt〇..??迓基i到客??—■?wio〇??read()??read()?wriie〇??close〇?read()??ck>se〇??图2.2?Socket通信流程图??6??

模式图,模式图,处理器,应用层


再次通知应用层,直到该文??件描述符再次发可读或者可写事件发生时才会通知应用层。所以EPOLL对比于SELECT??和POLL不仅在上下文切换时交换的数据较少,而且应用层无需去遍历所有文件描述符,??同时EPOLL还可以根据应用场景的不同选取不同的触发方式,达到了较好的并发性能。??2.2_2?Reactor?模式??Reactor模式是Doug?Schmidt提出一种事件驱动的设计模式,其可以同时处理多个输??入,并通过多路复用机制将输入的请求分发给相应的处理器做进一步的处理。如T图2.3??所示,以对单线程Reactor模型来展Reactor模式。??连接粒?‘??事件处理器??????^?客户蜍1??L__?J??1-??Z?:?:?客户粕??HI?L^;?(SELECT^L/EPOLL)??处理器?\?反应堆????=\?^?*哪??注册成下??分犮写亊件I?请求4?I一?::??"^?1?^??处理器????图2.3?Reactor模式图??8??

【参考文献】:
期刊论文
[1]智能家居情境感知服务的运行时建模与执行方法[J]. 陈星,黄志明,叶心舒,马郓,陈艺燕,郭文忠.  软件学报. 2019(11)
[2]多协议融合LPWAN能源物联网云平台的设计[J]. 白若琛,庞成鑫,贾佳,邱曙光,邵嘉,卢小姣.  计算机科学. 2019(S1)
[3]基于Netty的IoT终端通信服务系统设计[J]. 顾振德,刘子辰,龙隆,牟林宏.  计算机应用与软件. 2019(04)
[4]互联网端到端多路径传输跨层优化研究综述[J]. 江卓,吴茜,李贺武,吴建平.  软件学报. 2019(02)
[5]区分站点状态的两级轮询控制系统[J]. 杨志军,孙洋洋.  计算机应用. 2019(05)
[6]基于容器云的微服务系统[J]. 杨迪.  电信科学. 2018(09)
[7]面向射频能量捕获传感网的高吞吐量负载均衡的节点接入方案[J]. 池凯凯,魏欣晨,林一民.  计算机科学. 2018(08)
[8]多核处理器发展趋势及关键技术[J]. 周楠,胡娟,胡海明.  计算机工程与设计. 2018(02)
[9]基于事件驱动的高性能WebSocket服务器的设计与实现[J]. 曹文彬,谭新明,刘备,刘传文.  计算机应用与软件. 2018(01)
[10]一种高并发网络Web应用技术研究[J]. GUL Khan Safi Qamas,王鹏,罗森林,潘丽敏.  信息网络安全. 2017(12)

博士论文
[1]TCP技术在内容分发网络上的应用研究[D]. 章俊.清华大学 2016

硕士论文
[1]基于Netty框架的性能测试系统的设计与实现[D]. 李培殿.北京邮电大学 2019
[2]基于精确测量的TCP拥塞控制[D]. 葛文锦.东南大学 2018
[3]基于Netty的消息中间件的研究与实现[D]. 夏斐.电子科技大学 2018
[4]基于Netty框架的智能终端与服务器通信的研究[D]. 魏莹.西安电子科技大学 2017
[5]基于Kafka的大规模流数据分布式缓存与分析平台[D]. 牛牧.吉林大学 2016
[6]基于ACE框架的局域网渲染集群系统的研究与实现[D]. 万倩倩.东南大学 2016
[7]自主压力测试平台的设计与实现[D]. 郄霖.北京邮电大学 2015
[8]基于Netty的高可服务消息中间件的研究与实现[D]. 崔晓旻.电子科技大学 2014



本文编号:3305924

资料下载
论文发表

本文链接:https://www.wllwen.com/kejilunwen/ruanjiangongchenglunwen/3305924.html


Copyright(c)文论论文网All Rights Reserved | 网站地图 |

版权申明:资料由用户63fd3***提供,本站仅收录摘要或目录,作者需要删除请E-mail邮箱bigeng88@qq.com