长连接、和短连接的区别是大厂经常考察的核心点,下面我重点详解4大长连接和短连接的区别@mikechen
并发性能的区别
长连接
长连接, 建立连接后,即使没有数据传输,也会一直保持连接状态,直到主动断开或因网络故障断开。
长连接,在高并发场景下能够较好地复用资源,减少连接的创建和关闭过程,提高了整体的并发处理能力。
短连接
短连接, 每次通信前都建立新的连接,通信结束后立即断开连接。
短连接,在高并发情况下,需要频繁地进行连接的建立、和拆除,这会增加系统负担,处理能力较弱。
资源占用的区别
长连接
由于连接保持打开,客户端和服务器需要维护连接状态,这样会占用一定的资源。
比如:内存、文件句柄……..等,但避免了频繁建立、和销毁连接…的消耗。
短连接
每次请求,都需要建立新的连接,且在响应后立即关闭,这会导致频繁的连接创建和断开。
短链接,会消耗更多的系统资源,尤其是在高并发的情况下。
数据效率的区别
长连接
长连接,对于频繁的通信,建立连接的开销可以分摊到多次通信中,提高了数据传输效率。
短连接
短连接,每次通信都需要重新建立连接。
对于频繁的通信,建立连接的开销较大,降低了数据传输效率。
适用场景的区别
长连接
长连接,适用于频繁交互的数据传输场景,比如:
实时通讯(如WebSocket、即时消息)、在线游戏( 玩家、与服务器需要保持实时通信)…等等。
以及,数据流、视频流…等需要长时间稳定连接的应用。
短连接
短连接,适用于偶尔请求、和响应的场景。
比如:HTTP请求(浏览器访问静态网页)、数据库连接(每次查询数据库时建立连接,查询完成后断开连接)…等场景。
陈睿mikechen
10年+大厂架构经验,资深技术专家,就职于阿里巴巴、淘宝、百度等一线互联网大厂。
关注作者「mikechen」公众号,获取更多技术干货!

后台回复【架构】,即可获取《阿里架构师进阶专题全部合集》,后台回复【面试】即可获取《史上最全阿里Java面试题总结》