•  使用向队列注册消费者,当RabbitMQ服务端的队列接收到消息后推送给客户端,这种方式为消息订阅模式。
  •  RabbitMQ客户端也可通过主动查询的方式,从服务端获取消息。使用主动查询的消费者示例如下。
public static void main(String[] args) throws Exception {ConnectionFactory factory = new ConnectionFactory();// 设置服务端的地址、端口、用户名和密码...Connection connection = factory.newConnection();Channel channel = connection.createChannel();// 从队列中获取消息,不自动确认GetResponse response  = channel.basicGet("Queue_Java", false);if(null != response) {byte[] body = response.getBody();String message = new String(body);System.out.println("Received: " + message);// 手工确认long deliveryTag = response.getEnvelope().getDeliveryTag();channel.basicAck(deliveryTag, false);}channel.close();connection.close();
}

  在示例程序中,消费者主动向服务端请求一条消息,并在输出控制台后手工确认。在获取消息的那段代码外层加上循环,连续不断向服务端队列获取消息,这就是获取消息的第二种方式——轮询。可从以下几方面对比订阅和轮询两种获取消息的方式。
  1.订阅方式需服务端维护消息的传输状态,失败需重试,轮询则需客户端对传输失败进行处理;
  2.订阅方式当消息队列有消息时即可得到推送,实时性较好,轮询的实时性依赖于轮询间隔;
  3.订阅方式需服务端针对各消费者的处理能力做流量控制,使用轮询方式时,消费者可依照自身处理能力决定是否获取新的消息。

RabbitMQ消息订阅与轮询相关推荐

  1. WEB消息提醒实现之二 实现方式-Jquery Ajax长轮询

    #Jquery Ajax长轮询 ##原理 Jquery Ajax长轮询的原理主要是,前台客户端发送ajax请求到服务器,服务器接收到请求之后会保持住连接,直到有新消息才返回响应信息并关闭连接,客户端处 ...

  2. Android学习系列(7)--App轮询服务器消息

    这篇文章是android开发人员的必备知识. 1.轮询服务器      一般的应用,定时通知消息可以采用轮询的方法从服务器拿取消息,当然实时消息通知的话,建议采用推送服务.     其中需要注意轮询的 ...

  3. RabbitMQ:订阅模型-消息订阅模式

    订阅模型-消息订阅模式,也可以称为广播模式,生产者将消息发送到 Exchange,Exchange 再转发到与之绑定的 Queue中,每个消费者再到自己的 Queue 中取消息. RabbitMQ 单 ...

  4. RocketMQ 消息消费 轮询机制 PullRequestHoldService

    1. 概述 先来看看 RocketMQ 消费过程中的轮询机制是啥.首先需要补充一点消费相关的前置知识. 1.1 消息消费方式 RocketMQ 支持多种消费方式,包括 Push 模式和 Pull 模式 ...

  5. 使用EasyNetQ组件操作RabbitMQ消息队列服务

    RabbitMQ是一个由erlang开发的AMQP(Advanved Message Queue)的开源实现,是实现消息队列应用的一个中间件,消息队列中间件是分布式系统中重要的组件,主要解决应用耦合, ...

  6. 一文了解 rabbitMq 消息队列

    消息队列 1. 流向削峰 2. 应用解耦 3.异步处理 应用原理 Broker(代理) Virtual host(虚拟网站) Connection Channl Exchange 四大核心 生产者 交 ...

  7. 4.1.3 消费者轮询的流程

    4.1.3 消费者轮询的流程 按照消费者应用程序的示例,消费者订阅主题的下一步是"轮询".前面分析的准备t作(确保协调者存在,确保分配分区,更新拉取偏移量)都内置在轮询操作里,所以 ...

  8. 深入biztalk消息以及消息订阅发布路由机制(四)-消息的轮询和执行

    一. 消息的轮询和执行 1.  轮询机制 消息路由到MessageBox数据库中,只是在数据库中写入了相关记录,表示哪个消息需要由哪个服务实例去执行,并没有付诸实施,还需要在进程中实实在在的去实例化这 ...

  9. 微信小程序 - 云开发轮询实现定时推送订阅消息

    前言 受众:已有小程序和云开发经验(没有的话照着流程和官方文档也应该可以实现) 关于小程序的消息推送,我了解到的有以下几种实现方式 1.模板消息,已于2020 年 1 月 10 日下线 2.通过服务端 ...

最新文章

  1. 初步学习Spring Aop使用之注解方式
  2. Flutter开发之ListView下拉刷新上拉加载更多(35)
  3. InfoQ —— 腾讯游戏大数据服务场景与应用
  4. MATLAB软件禁用利好,Matlab被禁用?一款国产软件站了出来说:我就是中国的Matlab...
  5. 带有Oracle Digital Assistant和Fn Project的会话式UI。 第三部分,迁移到云
  6. hdu 4454 Stealing a Cake 三分法
  7. 华为Mate X2黄牛价已超两万,结果小伙子没拿稳,成全网首摔?
  8. 从入门到精通:卷积神经网络初学者指南
  9. Java学习之字符与ASCII码相互转换的面板设计
  10. render注册一个链接组件_vue 动态加载并注册组件、 且通过 render动态创建该组件...
  11. hibernate一级缓存_Hibernate缓存–一级缓存
  12. 学习过程,简单记录,不求详尽,看懂就行,格式随意,高效学习
  13. Android Studio Gradle下载慢解决方法
  14. Win系统 - 局域网内电脑文件共享
  15. 使用python爬取猫眼电影、房王、股吧论坛、百度翻译、有道翻译、高德天气、华夏基金、扇贝单词、糗事百科(华夏基金)
  16. thinkphp 批量打包下载图片到本地电脑
  17. A19.从零开始前后端react+flask - 删除前后端数据
  18. 室友利用一把王者的时间就学会了【C语言结构体内存对齐】
  19. 体育技术机器学习金钱和灵感的圣杯
  20. 日元兑人民币用计算机怎么算,日元兑换人民币是以什么计算?谢谢我有日元 – 手机爱问...

热门文章

  1. 无人机-1认识无人机
  2. MAC终端命令学习(入门版)
  3. iOS线程生命周期的监控
  4. keybd_event、SendInput笔记
  5. Easy-RSA 3快速入门自述文件
  6. LeetCode刷题(35)--Permutation Sequence
  7. java连接设备连接给参数_如何通过蓝牙连接两个设备按参数发送配对代码? JAVA,Android的...
  8. 利用宝塔部署若依前后分离项目(详细教程)
  9. [Ext JS6实战] Ext.XTemplate
  10. java 获取系统变量(环境变量和设置变量)