数媒在线课堂 从 RocketMQ 看长轮询 (Long Polling)

消息队列一般在消费端都会提供 push 和 pull 两种模式,RocketMQ 同样实现了这两种模式,分别提供了两个实现类:DefaultMQPushConsumer 和 DefaultMQPullConsumer;两种方式各有优势:

push 模式:推送模式,即服务端有数据之后立马推送消息给客户端,需要客户端和『服务器』建立长连接,实时性很高,对客户端来说也简单,接收处理消息即可;缺点就是服务端不知道客户端处理消息的能力,可能会导致数据积压,同时也增加了服务端的工作量,影响服务端的性能;

pull 模式:拉取模式,即客户端主动去服务端拉取数据,主动权在客户端,拉取数据,然后处理数据,再拉取数据,一直循环下去,具体拉取数据的时间间隔不好设定,太短可能会导致大量的连接拉取不到数据,太长导致数据接收不及时;

RocketMQ 使用了长轮询的方式,兼顾了 push 和 pull 两种模式的优点,下面首先对长轮询做简单介绍,进而分析 RocketMQ 内置的长轮询模式。

长轮询

长轮询通过客户端和服务端的配合,达到主动权在客户端,同时也能保证数据的实时性;长轮询本质上也是轮询,只不过对普通的轮询做了优化处理,服务端在没有数据的时候并不是马上返回数据,会 hold 住请求,等待服务端有数据,或者一直没有数据超时处理,然后一直循环下去;下面看一下如何简单实现一个长轮询;

1. 实现步骤

1.1 客户端轮询发送请求

客户端应该存在一个一直循环的程序,不停的向服务端发送获取消息请求;

1.2 服务端处理数据

『服务器』接收到客户端请求之后,首先查看是否有数据,如果有数据则直接返回,如果没有则保持连接,等待获取数据,服务端获取数据之后,会通知之前的请求连接来获取数据,然后返回给客户端;

1.3 客户端接收数据

正常情况下,客户端会马上接收到服务端的数据,或者等待一段时间获取到数据;如果一直获取不到数据,会有超时处理;在获取数据或者超时处理之后会关闭连接,然后再次发起长轮询请求;

RocketMQ 长轮询

RocketMQ 的消费端提供了两种消费模式分别是:DefaultMQPushConsumer 和 DefaultMQPullConsumer,其中 DefaultMQPushConsumer 就是使用的长轮询

PullCallback 回调

服务端处理完之后,给客户端响应,回调其中的 PullCallback,其中在处理完消息之后,重要的一步就是再次把 pullRequest 放到 PullMessageService 服务中,等待下一次的轮询;

今日霍州(www.jrhz.info)©️

特别声明:[数媒在线课堂 从 RocketMQ 看长轮询 (Long Polling)] 该文观点仅代表作者本人,今日霍州系信息发布平台,霍州网仅提供信息存储空间服务。

猜你喜欢

今天无论你在哪里 请留一分钟 为南京大屠杀死难者默哀(歌词无论在今天在明天)

今天是第12个南京大屠杀死难者国家公祭日。上午10:01至10:02,防空警报鸣响。无论你在哪里,请停留一分钟,为南京大屠杀死难者默哀

今天无论你在哪里 请留一分钟 为南京大屠杀死难者默哀(歌词无论在今天在明天)

电脑『服务器』UPS不间断电源C3K 2025年新升级版适合机房选购吗?(『服务器』 ups)

随着『数字化』进程加速,确保机房供电稳定性成为关键。本文聚焦2025款电脑『服务器』UPS-C3K,解析其3KVA功率、智能稳压特性,适合哪些机房场景,如何平衡预算与配置,提供选购实用指南,助您高效决策。不论您的『数据中心』是初创规模还是成熟架构,都能

电脑『服务器』UPS不间断电源C3K 2025年新升级版适合机房选购吗?(『服务器』 ups)

红色法拉利!AJ4014「合体鞋」终于露面了!(红色法拉利,一派胡言)

下一双 AJ40 的致敬配色即将出炉,便是眼前这双 Air Jordan 4014 “Ferrari”。 据悉,全新 Air Jordan4014 “Ferrari” 将于 2026 年内登场。 货号:I…

红色法拉利!AJ4014「合体鞋」终于露面了!(红色法拉利,一派胡言)

GE医疗磁共振东半球总部创新中心在天津投运(医院做个ge磁共振多钱?)

据介绍,中心启用后将依托GE医疗天津磁共振基地,实现研产无缝对接,进一步强化本土研发创新能力;同时联动天津高校、医院资源,推动如脑心同治、肝癌超早期精准诊断等临床级创新落地,提升重大疾病早期诊断精准性与服务…

GE医疗磁共振东半球总部创新中心在天津投运(医院做个ge磁共振多钱?)

54岁『韩红』瘦40斤美到认不出,夹克配马丁靴时尚大变样(49岁『韩红』瘦了)

以前她体型较胖时,毫不在意别人说不好看,专注于音乐和公益;如今瘦了,变得时髦了,她也没有刻意去宣传自己的外形,而是依旧踏实做事。毕竟,我们喜欢她,并不是因为她的身材如何,也不是因为她是否时尚,而是因为她…

54岁『韩红』瘦40斤美到认不出,夹克配马丁靴时尚大变样(49岁『韩红』瘦了)