RocketMQ的长轮询消费方式

RocketMQ的长轮询消费方式1.Push推送方式(即Server端推送消息给client):当Server收到消息发送者发送过来的消息后,Server端主动把消息推送给client,这个方式实时性比较好,但是增加了Server的工作负担,对Server的性能造成影响;另外Client如果不能够及时处理Server推送的消息,也是很大的问题。2.Pull拉取方式(即Client从Server拉取消息):Client…

大家好,又见面了,我是你们的朋友全栈君。

1.Push推送方式(即Server端推送消息给client):

当Server收到消息发送者发送过来的消息后,Server端主动把消息推送给client,这个方式实时性比较好,但是增加了Server的工作负担,对Server的性能造成影响;另外Client如果不能够及时处理Server推送的消息,也是很大的问题。

2.Pull拉取方式(即Client从Server拉取消息):

Client循环的从Server拉取消息,由client控制着主动权。弊端:拉取消息的时间间隔不好设定,间隔太短循环空拉取造成资源浪费,间隔时间太长,就会增加消息消费的延迟,影响业务使用。另外需要Client拉取消息时维护offset,代码比较麻烦。

3.长轮询的消费方式

RocketMQ的消息消费方式,采用了“长轮询”方式,兼具了Push和Pull的有点,不过需要Server和Client的配合才能够实现。
即Client发送消息请求,Server端接受请求,如果发现Server队列里没有新消息,Server端不立即返回,而是持有这个请求一段时间(通过设置超时时间来实现),在这段时间内轮询Server队列内是否有新的消息,如果有新消息,就利用现有的连接返回消息给消费者;如果这段时间内没有新消息进入队列,则返回空。
这样消费消息的主动权既保留在Client端,也不会出现Server积压大量消息后,短时间内推送给Client大量消息使client因为性能问题出现消费不及时的情况。
长轮询的弊端:在持有消费者请求的这段时间,占用了系统资源,因此长轮询适合客户端连接数可控的业务场景中。

参考资料:《RocketMQ实战与原理解析》

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/149529.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • win10无法识别的usb设备前一个设备不正常_蓝牙变成未知usb设备

    win10无法识别的usb设备前一个设备不正常_蓝牙变成未知usb设备[修复]未知的USB设备(设备描述符请求失败)在Windows10中转至[修复]未知的USB设备(设备描述符请求失败)在Windows10中

  • 6688常见问题FAQ

    6688常见问题FAQ1、V-KLAY问题2、关于备份3、关于驱动问题、联机问题4、有关打补丁,刷机,升级5、JAVA使用问题6、解锁问题7、无网络问题8、铃声问题9、重要记事问题10、时间调整、自动开关机问题11、通讯录丢失问题12、wap上网13、有关工模(工程模式)6688常见问题FAQ:本帖最后由胡同印象于2006-10-2711:23编辑原文网址:http://bbs.0110.cn/threa

  • random.randint()用法

    random.randint()用法函数功能:random.randint(参数1,参数2)参数1、参数2必须是整数函数返回参数1和参数2之间的任意整数举例:importrandomresult=random.randint(1,10)print(“result:”,result)输出:result:6

  • python字符串常用方法及汇总

    python字符串常用方法及汇总字符串常用方法常用的查找方法去除首尾信息大小写转换格式排版其他方法字符串的格式化format()基本用法填充与对齐数字格式化其他格式,供大家参考:可变字符串常用的查找方法我们以一段文本作为测试:a=’’‘我是高兴,今年18岁了,我在北京尚学堂科技上班。我的儿子叫高洛希,他6岁了。我是一个编程教育的普及者,希望影响6000万学习编程的中国人。我儿子现在也开始学习编程,希望他18…

  • 安装petalinux总是提示paytho_archlinux安装教程

    安装petalinux总是提示paytho_archlinux安装教程参考教程:Confluence1.准备工作:硬件材料:XilinxZCU106套件一套 16G的SD卡一个 网线一根 MicroUSB线一根 HDMI线一根 USB键盘、鼠标各一个软件材料: UbuntuSource:https://www.xilinx.com/member/forms/download/design-license-xef.html?akdm=0&filename=Ubuntu_Source_Release.zip Petalinu

  • Android系统五大布局详解Layout

    Android系统五大布局详解Layout我们知道Android系统应用程序一般是由多个Activity组成,而这些Activity以视图的形式展现在我们面前,视图都是由一个一个的组件构成的。组件就是我们常见的Button、TextEdit等等。那么我们平时看到的Android手机中那些漂亮的界面是怎么显示出来的呢?这就要用到Android的布局管理器了,网上有人比喻的很好:布局好比是建筑里的框架,组件按照布局的要求依次排列,就组成了用于

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号