长连接与短连接:
短连接:一次请求,一次响应结束。TCP通道断开。下次请求从新建立TCP通道连接。即三次握手。
长连接:一次请求,一次响应。TCP通道不断开。但也不是永久连接。一般情况下,客户端请求的时候会设置一个超时时间,当服务端侦测到再没有客户端的请求发生,超过了一定时间,服务器就会断开这个连接。
区别:短连接会及时释放TCP连接通道;
长连接不会释放,超过设定的时间后释放。
在工作中,有很多对接第三方API的需求,那么这时候我们应该采用长连接还是短连接呢?假如第三方公司对接的商家有500家,每个商家微服务为100个,那么极限请求量为5万个;如果是5000个商家,每个商户峰值请求量为1000,那么极限请求量就是500万个,如果采用长连接的话,这么多连接不释放,服务端的压力可想而知,更不用说对接的商户更多呢?所有,第三方公司,包括微信、支付宝等的接口API大都是短连接形式的。
那如果第三方对接的商家是固定的,比如就是 100家,那么就可以采用长连接,因为长连接比短连接节省服务器资源。
总之,只要QPS低(没有超过服务端的承载能力),频繁访问,那么采用长连接;偶尔访问采用短连接;如果QPS高,客户端相对固定,采用长连接;客户端不固定,采用短连接。
在微服务的注册与管理中,采用的就是 长连接,长轮询机制。
长轮询、短轮询是针对服务端给客户端响应的时间而言的。快就是短轮询,慢就是长轮询。一般情况下,一个客户端请求,服务端响应我们当然希望越快越好;但是对于注册中心这样的场景,慢一点更好。
尺有所长,寸有所短。各有其用!!!
参考:https://blog.csdn.net/weixin_41755556/article/details/120343961