2021
09-29
09-29
解析Linux高性能网络IO和Reactor模型
目录一、基本概念介绍二、网络IO的读写过程三、Linux五种网络IO模型3.1、阻塞式I/O(blockingIO)3.2、非阻塞式I/O(nonblockingIO)3.3、多路复用I/O(IOmultiplexing)3.4、信号驱动式I/O(SIGIO)3.5、异步IO(POSIX的aio_系列函数)四、多路复用IO深入理解一波4.1、select4.2、epoll4.3、epoll相比select的优点4.4、关于epoll的IO模型是同步异步的疑问五、Reactor模型5.1、相关概念介绍5.2、Reactor的一般流程5.3、单线程+Reac...
继续阅读 >
目录一、连接复用二、预连接实现三、源码分析四、优化五、问答一、连接复用对于一个普通的接口请求,通过charles抓包,查看网络请求Timing栏信息,我们可以看到类似如下请求时长信息:Duration175msDNS6msConnect50msTLSHandshake75msRequest1msResponse1msLatency42ms同样的请求,再来一次,时长信息如下所示:Duration39msDNS-Connect-TLSHandshake-Request0...
看过很多博客、文章,东一榔头西一棒子的,总觉得没有一个系列的文章把问题从头到尾说清楚,找东西很困难。有的博客、文章的质量还不算很理想,似是而非,或者重点不明确,或者直接把别人的博客抄袭过来......种种不靠谱,让小白们学习起来很困难,增加了学习曲线的陡峭程度。当然也有很多博主非常非常负责任,文章质量很高,只是连续度不够,正看得过瘾的时候,没有后续章节了。从本文开始,我们试图用一系列博客,讲解现代神经...
今天在地铁上的时候,由于信号不稳定,有那么一段路手机网络还是变成了2G状态,许多app直接宣告无法工作,只会在那里转圆圈。这种事情相信大家都没少遇到过。由于嫌之前的运营商只有2G,为了网速更快的3G和4G,两年前我下定决心更换运营商。享受到了高速的移动网络之后,如今2G网络对我来说就跟没网一样。没了网,真的非常难适应。几年前TheVerge的一位编辑PaulMiller拿自己做了一个断网实验,在为期一年的时间...
中国本土第一大超级应用,微信,在安卓手机上请求的权限,令人叹为观止。有人曾经抽取了国内Top100的App,其中有83个请求了大致位置的权限,有76个请求了精确位置的权限。这些App请求了定位权限之后,就会通过系统接口获取当前手机的经纬度,上传给服务器,从而根据自己的功能进行广告推荐或是其它基于地理位置的服务,你无论在哪儿,都会被默默收集着,只要应用还躺在你的后台。你可能已经习惯免费双手上交看都不看一路点击确...
在HTforWeb中2D和3D应用都支持树状结构数据的展示,展现效果各异,2D上的树状结构在展现层级关系明显,但是如果数据量大的话,看起来就没那么直观,找到指定的节点比较困难,而3D上的树状结构在展现上配合HTforWeb的弹力布局组件会显得比较直观,一眼望去可以把整个树状结构数据看个大概,但是在弹力布局的作用下,其层次结构看得就不是那么清晰了。所以这时候结构清晰的3D树的需求就来了,那么这个3D树具体长成啥样呢,我们...
事件起因:近期有研发反应,某数据库从08切换到12环境后,不定期出现写操作提交延迟的问题;事件分析:在排除了系统资源争用等问题后,初步分析可能由于网络抖动导致同步模式alwayson节点经常出现会话超时等待提交的问题导致。经过排查,扩展事件里发现不定期出现35202错误,这是一条副本连接恢复的消息。 由于机房网络环境复杂,数据库服务器和应用服务器混用一个交换机,在业务高峰期时,因上联端口流量打满而导致...