Skip to content

Latest commit

 

History

History
38 lines (21 loc) · 2.24 KB

17.1_什么是长连接和短连接.md

File metadata and controls

38 lines (21 loc) · 2.24 KB

17.1 什么是长连接和短连接

短连接

  短连接:客户端与服务器建立连接 --> 客户端发送数据 --> 服务器回应数据 --> 客户端与服务器关闭连接 --> ·········· 建立连接 -->发送数据 --> 回应数据 --> 关闭连接。用个生活中的例子就是,我寂寞难耐时,就去谈谈上约一次,如果约不着就去大保健,爽完付费走人,要想爽随时都可以来。

  短连接的优点是什么:

  • 不长期占用服务器的内存,那么服务器能处理的连接数量是比较多的。

  短连接的缺点是什么:

  • 因为等到要发送数据或者获取资源时,才去请求建立连接发送数据,否则就是端开连接的,那么如果服务器要想往客户端发送数据时怎么办?凉伴,没有任何办法,或者要等到下一次要请求数据时,才发送,比如我们采用轮询(30秒或者更长)拉取消息,那么服务器与客户端通信的实时性就丧失了。
  • 客户端采用轮询来实时获取信息,或者说大量的客户端使用短连接的方式通信,那么就浪费了大量的CPU和带宽资源用于建立连接和释放连接,存在资源浪费。比如经典的http长轮询(微信网页客户端端)。

长连接

  长连接:客户端与服务器一直保持这种连接,客户端和服务端一直不关闭这个连接,这种连接方式叫做TCP长连接。那如何正确地能保持一个连接不关闭呢?下一个小节会讲到,我们先来讨论这种设计的优缺点吧。

  优点:

  • 传输数据快
  • 服务器能够主动第一时间传输数据到客户端

  缺点:

  • 因为客户端与服务器一直保持这种连接,那么在高并发分布式集群系统中客户端数量会越来越多,占用很多的系统资源。
  • TCP本身是一种有状态的数据,在高并发分布式系统会导致后台设计比较难做。

长短连接的适用情况

思考题:我们共享单车应该采用长连接还是短连接?