上周,在我们进行性能测试的时候,发现了一个问题。我们的服务器上启了一个redis服务端,侦听0.0.0.0的1234端口,同处在本机的另外一个进程会频繁发起到该服务端的短连接,结果导致了两个问题:1.大量的TIME_WAIT状态的连接;2.发起连接的进程的CPU占用率接近100%。这两个结果..
分类:
其他好文 时间:
2015-09-28 06:34:20
阅读次数:
195
web服务器都提供长连接的方式,所谓长连接就是客户端一次请求完后,不关闭连接,保持一段时间的连接,下次此客户端再次请求时,不用创建新连接,复用所保持的连接即可。从理论上,长连接可以免去大量建立和关闭连接的资源消耗,但同时也有大量连接被占用的代价。因此可以初步判断长连接比短连接能带来更高的TPS,更低...
分类:
Web程序 时间:
2015-09-16 23:22:17
阅读次数:
270
是很经典的领导者追随者模型,因为不想命名太长,就叫xpool。多个工作线程同时accept竞争一个可用的连接,拿到连接后就自己进行处理。accept这个地方加了锁是为了避免低版本内核上出现惊群效应. 一般认为在短连接的时候效果比较好,但如果同一时候连接数过多会造成没有工作线程与客户端进行连接,客户端...
分类:
其他好文 时间:
2015-09-08 12:04:21
阅读次数:
162
tcp连接是网络编程中最基础的概念,基于不同的使用场景,我们一般区分为“长连接”和“短连接”,长短连接的优点和缺点这里就不详细展开了,有心的同学直接去google查询,本文主要关注如何解决tcp短连接的TIME_WAIT问题。短连接最大的优点是方便,特别是脚本语言,由于执行完毕后脚本语言的进程就结束...
分类:
其他好文 时间:
2015-08-26 13:55:28
阅读次数:
121
import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.io.PushbackInputStream;import java.net.ServerSocket;impo...
分类:
编程语言 时间:
2015-08-21 15:04:57
阅读次数:
155
首发:个人博客在tomcat7之后的版本,写个websocket服务程序非常容易——如以下代码所示,当客户端建立了一个连接并发送了一些什么内容到服务器,服务器将每隔两秒返回一个字符串“world”。之所以演示每两秒返回一次是为了说明这是长连接而不是短连接。import java.io.IOExcep...
分类:
Web程序 时间:
2015-08-19 23:26:20
阅读次数:
234
问题起因: 自己开发了一个服务器和客户端,通过短连接的方式来进行通讯,由于过于频繁的创建连接,导致系统连接数量被占用,不能及时释放。看了一下18888,当时吓到了。 现象: 1、外部机器不能正常连接SSH 2、内...
分类:
系统相关 时间:
2015-08-19 21:26:41
阅读次数:
174
转载自http://blog.csdn.net/shine0181/article/details/7799754/HTTP实现长连接HTTP是无状态的也就是说,浏览器和服务器每进行一次HTTP操作,就建立一次连接,但任务结束就中断连接。如果客户端浏览器访问的某个HTML或其他类型的Web页中包含有...
分类:
Web程序 时间:
2015-08-14 15:26:49
阅读次数:
105
一个客户一个子线程,也是阻塞式网络编程,它的初始化要比一个客户一个进程模型开销要小;但是仍适合于长连接,不适合短连接、并发数不大的情况,尤其不适合pthread_create()的开销大于本身服务的情况;
编程模型
(1)并发服务器1,类似于一个客户一个进程的并发服务器1,它通常阻塞在accept,阻塞返回后派生一个子线程来处理每个客户端,每一个客户一个线程,创建线程的开销比f...
分类:
编程语言 时间:
2015-08-09 00:29:40
阅读次数:
568
1. HTTP协议与TCP/IP协议的关系 HTTP的长连接和短连接本质上是TCP长连接和短连接。HTTP属于应用层协议,在传输层使用TCP协议,在网络层使用IP协议。IP协议主要解决网络路由和寻址问题,TCP协议主要解决如何在IP层之上可靠的传递数据包,使在网络上的另一端收到发端发出的所有包...
分类:
Web程序 时间:
2015-08-07 10:55:13
阅读次数:
139