长连接与短链接的区别

1,268 阅读2分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第13天,点击查看活动详情

长连接与短连接的概念是针对TCP连接的。TCP连接是一个双向通道,可以保持一段时间不关闭。

长连接是指在完成链路连接建立后,在链路空闲时并不结束这条链路,而是一直维持这条链路的连接,因此安全性较差。

短连接是每次通信结束后,连接中断,下次通信时重新建立连接。

长连接多应用于保持通信的场景,例如:消息推送、链路复用等。

短连接应用于HTTP技术,HTTP在向服务器交互信息时在一段时间内也会保持长连接。

长连接实现原理:长连接的维持,是要客户端程序定时向服务端程序发送一个维持连接包。如果长时间未发送维持连接包,服务端程序将断开连接。

HTTP1.1开始默认保持长连接,HTTP1.0是短连接。

在数据库的连接中使用的是长连接,如果用短连接频繁的通信会造成socket错误,频繁的socket创建也是对资源的浪费。

dubbo中使用RPC通信协议,是长连接,每个消费者和生产者之间建立一个TCO连接,调用一次接口后该连接还存在。

springcloud中使用RESTful http访问,是短连接。 长连接与短链接都有各自的优缺点,所以我们应该根据具体的使用场景选择不同的实现方式。 一般来说,对于淘宝、京东这样的大型网站来说,用户访问量大,如果使用长连接的话,会消耗较大的资源,给服务器带来一定的压力,是不太现实的。所以,在这种情况下一般是通过短链接来实现的;而对于数据库这样的使用场景,一般是采用长连接来实现的。