到底什么是长轮询?

是什么

就是请求不立马断开,而是保活一段时间。超时以后,断开,而后客户端再次和服务器创建链接。服务器

http请求是请求/响应,完成以后,立马断开。spa

因此,长轮询的意思就是,长的意思,是保活长链接,即通常是很短的一段时间内(好比1m)不断开,在这1m时间内,服务器若是有新数据就主动写到客户端。轮询的意思是,1m以后,链接断开,客户端再次和服务器创建链接,也就是屡次不停地创建1m的链接。中间件

应用场景

apollo
rem

有了1m的长链接,为何还要5m一次的短链接,防止1m长链接的期间,服务器push功能失效,至关因而一个备用机制。it


rocketmqclass

也是同样,客户端和服务器创建长链接(也是短期内的保活长链接),在每次的长链接期间,服务器若是有数据就主动写数据到客户端。集群


总结请求

除了长轮询机制同样,还有注册中心也是同样,apollo和rocketmq都使用了注册中心,其实全部的中间件基本上都是这样,若是要集群(通常多主多从),就要搞注册中心。im

好处

push模型的好处是实时写新的数据到客户端。pull模型的好处是请求/响应模式,完成以后就断开,而不是像push模型同样,一直长链接不断开,若是每一个链接都不断开,那么服务器链接数量很快会被耗尽。总结

长轮询的好处是,既有push模型的服务器实时写数据到客户端,又有pull模型的避免一直长链接。

相关文章
相关标签/搜索