短连接的优点是什么:
- 不长期占用服务器的内存,那么服务器能处理的连接数量是比较多的。
短连接的缺点是什么:
- 因为等到要发送数据或者获取资源时,才去请求建立连接发送数据,否则就是端开连接的,那么如果服务器要想往客户端发送数据时怎么办?凉伴,没有任何办法,或者要等到下一次要请求数据时,才发送,比如我们采用轮询(30秒或者更长)拉取消息,那么服务器与客户端通信的实时性就丧失了。
- 客户端采用轮询来实时获取信息,或者说大量的客户端使用短连接的方式通信,那么就浪费了大量的CPU和带宽资源用于建立连接和释放连接,存在资源浪费。比如经典的http长轮询(微信网页客户端端)。
优点:
- 传输数据快
- 服务器能够主动第一时间传输数据到客户端
缺点:
- 因为客户端与服务器一直保持这种连接,那么在高并发分布式集群系统中客户端数量会越来越多,占用很多的系统资源。
- TCP本身是一种有状态的数据,在高并发分布式系统会导致后台设计比较难做。
思考题:我们共享单车应该采用长连接还是短连接?