码迷,mamicode.com
首页 > 其他好文 > 详细

tcp长连接、短连接、连接池的思考

时间:2019-03-27 11:03:13      阅读:197      评论:0      收藏:0      [点我收藏+]

标签:无法   解锁   选择   优点   文章   释放   wait   独立   缓冲区   

在基于tcp的 rcp实现方式中,有如下几种选择:

1. 长连接:同步和异步方式。

同步方式下客户端所有请求共用同一连接,在获得连接后要对连接加锁,在读写结束后才解锁释放连接,性能低下,基本很少采用,唯一优点是实现极其简单。

异步方式下所有请求都带有消息ID,因此可以批量发送请求,异步接收回复,所有请求和回复的消息都共享同一连接,信道得到最大化利用,因此吞吐量最大。

这个时候接收端的处理能力也要求比较高,一般都是独立的一个(或者多个)收包线程(或者进程)防止内核缓冲区被填满影响网络吞吐量。缺点是实现复杂,需要异步状态机,需要增加负载均衡和连接健康度检测机制,等等。

2. 短连接:同步方式。

优点是实现简单,每个请求单独建立一个连接,用完即关。缺点是大量并发下会出现大量TIMEWAIT状态,信道处于过载状态,无法创建新连接。

3. 连接池:同步方式

每个请求单独占用一个连接,使用完以后把连接放回池中,给下一个请求使用。缺点还是网络利用率不高,因为在等待对端回复的时候,连接是空闲的。
---------------------
作者:weixin_41805011
来源:CSDN
原文:https://blog.csdn.net/weixin_41805011/article/details/80452245
版权声明:本文为博主原创文章,转载请附上博文链接!

tcp长连接、短连接、连接池的思考

标签:无法   解锁   选择   优点   文章   释放   wait   独立   缓冲区   

原文地址:https://www.cnblogs.com/wyaokai/p/10605518.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!