news 2026/5/31 1:01:19

说说消息队列的推模式和拉模式

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
说说消息队列的推模式和拉模式

推模式是消息队列主动将消息从Broker推送给Consumer,这种模式它的实时性比较好,消息可以立即送达消费者,但是缺点就是决定权不在消费者手上,在高并发场景下容易造成消费者过载。

拉模式是消费者主动从消息队列中的Broker拉取消息,这种模式就是根据消费者自身的负载和消费能力来决定拉去消息的频率,这样就可以避免过载,但是这种模式的实时性比不上推模式,而且还会导致消息延迟。

RocketMQ和Kafka都选择了拉模式,对于拉模式无法保证实时性的缺点,他们采取的是长轮询的方式来解决。

主要是通过在消费者去Broker拉取消息时,当有消息存在的话,那自然就直接返回消息;当没有消息时,则保持连接,暂时hold住请求,之后如果在对应的队列或者分区有新的消息到来时就通过之前hold住的请求及时地返回消息。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/29 22:30:38

同时运行N台电脑的最长时间

求解代码 maxRunTime方法 假设所有电池的最大电量是max,如果此时sum>(long)max*num,那么最终的供电时间一定会大于等于max,由此也能推出最终的答案为sum/num。 对于sum<=(long)max*num的情况,在0~max区间内不断二分查找即可。 public static long maxRunTime(int …

作者头像 李华
网站建设 2026/5/28 13:50:37

吃透Set集合,这篇练习帖就够了!

在Java编程中&#xff0c;Set集合是处理无序、不可重复元素的重要工具&#xff0c;也是面试和开发中的高频考点。今天整理了Set集合的核心练习和知识点&#xff0c;帮大家彻底搞懂它的用法和特性&#xff01;一、核心考点回顾1. Set的特性&#xff1a;元素无序且唯一&#xff0…

作者头像 李华
网站建设 2026/5/29 2:01:33

多线程练习复盘:那些让我头大的坑与顿悟

最近泡在多线程的专项练习里&#xff0c;从最基础的 Thread 类创建线程&#xff0c;到 Runnable 接口实现&#xff0c;再到线程同步、锁机制&#xff0c;踩过的坑能绕两圈&#xff0c;也总算摸透了一点多线程的门道。最开始练习的时候&#xff0c;总觉得多线程就是“开几个线程…

作者头像 李华
网站建设 2026/5/28 13:03:53

【C/C++】数据在内存中的存储

整数的原、反、补码都相同。负整数的三种表示方法各不相同。原码&#xff1a;直接将数值按照正负数的形式翻译成⼆进制得到的就是原码。反码&#xff1a;将原码的符号位不变&#xff0c;其他位依次按位取反就可以得到反码。补码&#xff1a;反码1就得到补码。对于整形来说&…

作者头像 李华
网站建设 2026/5/28 13:26:14

高精度算法:突破整型限制的算法实现【C++实现】

本文将带你了解 高精度算法 的背景、原理&#xff0c;并以 C 实现为例&#xff0c;展示完整的代码与讲解。一、背景介绍高精度算法主要用于解决如下问题场景&#xff1a;大数计算&#xff0c;如计算 11112345678901234567890 和 111198765432109876543210的运算&#xff1b;竞赛…

作者头像 李华