why
push:broker推,优势:实时,长链接,不会频繁建立链接;缺点:慢消费,broker负载过高
pull:客户端拉,优势:消费数量,速度可控;缺点:间隔难设定,过短,频繁网络请求,无效请求,过长:延迟消费
为了保证实时,我们可以把拉取消息的间隔设置的短一点,但这也带来了一个另外一个问题,在没有消息的时候时候会有大量pull请求,为了解决这个问题,就采用了本文讲解的长轮询技术。
轮询是以固定间隔请求服务器,它不在乎这次请求是否能拉取到消息。而长轮询,它请求的服务端,会等待一会儿时间,然后将等待时间内的消息返回。如果超时了,那么也返回空。有效的避免了无效的请求。
但是对于每次都能拉取到消息的情况下,长轮询也就退化成了轮询。
消费端如何定时执行pull:
消费端:如何控制长轮询
broker端:在长轮询时间段中,定时检查是否有消息到达,然后返回客户端
PullRequestHoldService
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)