美文网首页
RocketMQ-002、粗谈长连接、长轮询、短轮询

RocketMQ-002、粗谈长连接、长轮询、短轮询

作者: Docker_Compose | 来源:发表于2021-06-27 23:14 被阅读0次

1、序言

  在学习RocketMQ源码的时候,发现有几个概念比较模糊,长连接、长轮询与短轮询。
  在翻阅相关资料之后,这里就粗谈一下这三个概念的区别吧。



2、长连接

  长连接,client向server发起连接请求后,连接不断开。client一发起请求,server就会立即响应。
  因此,长连接也比较消耗IO资源。
  除此之外,长连接也会带来另外一个问题。如果client消费消息能力低,会造成消息积压,而一旦造成消息积压,可能就会触发server的重投机制,这就会引发重复消息问题。会造成这一问题,是因为server无法知道client是否消费了。



3、长轮询

  长轮询,client向server发起连接请求后,如果server有资源,则立即响应;如果server没有资源,则将连接IO挂起,直到有资源之后,再启动挂起IO向client端发送。
  相比长连接,长轮询没有那么消耗IO资源。在长轮询中,client掌控着主动权,client需要什么消息,就会向server发起,如此一来就不会造成消息积压的问题。



4、短轮询

  相比前面两种,短轮询比较简单。client一旦与server建立起了连接,server有无资源,都会向client响应。如果server无资源,那么就只会响应报文。

相关文章

网友评论

      本文标题:RocketMQ-002、粗谈长连接、长轮询、短轮询

      本文链接:https://www.haomeiwen.com/subject/gbjfultx.html