RabbitMQ消息订阅与轮询
- 使用向队列注册消费者,当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消息订阅与轮询相关推荐
- WEB消息提醒实现之二 实现方式-Jquery Ajax长轮询
#Jquery Ajax长轮询 ##原理 Jquery Ajax长轮询的原理主要是,前台客户端发送ajax请求到服务器,服务器接收到请求之后会保持住连接,直到有新消息才返回响应信息并关闭连接,客户端处 ...
- Android学习系列(7)--App轮询服务器消息
这篇文章是android开发人员的必备知识. 1.轮询服务器 一般的应用,定时通知消息可以采用轮询的方法从服务器拿取消息,当然实时消息通知的话,建议采用推送服务. 其中需要注意轮询的 ...
- RabbitMQ:订阅模型-消息订阅模式
订阅模型-消息订阅模式,也可以称为广播模式,生产者将消息发送到 Exchange,Exchange 再转发到与之绑定的 Queue中,每个消费者再到自己的 Queue 中取消息. RabbitMQ 单 ...
- RocketMQ 消息消费 轮询机制 PullRequestHoldService
1. 概述 先来看看 RocketMQ 消费过程中的轮询机制是啥.首先需要补充一点消费相关的前置知识. 1.1 消息消费方式 RocketMQ 支持多种消费方式,包括 Push 模式和 Pull 模式 ...
- 使用EasyNetQ组件操作RabbitMQ消息队列服务
RabbitMQ是一个由erlang开发的AMQP(Advanved Message Queue)的开源实现,是实现消息队列应用的一个中间件,消息队列中间件是分布式系统中重要的组件,主要解决应用耦合, ...
- 一文了解 rabbitMq 消息队列
消息队列 1. 流向削峰 2. 应用解耦 3.异步处理 应用原理 Broker(代理) Virtual host(虚拟网站) Connection Channl Exchange 四大核心 生产者 交 ...
- 4.1.3 消费者轮询的流程
4.1.3 消费者轮询的流程 按照消费者应用程序的示例,消费者订阅主题的下一步是"轮询".前面分析的准备t作(确保协调者存在,确保分配分区,更新拉取偏移量)都内置在轮询操作里,所以 ...
- 深入biztalk消息以及消息订阅发布路由机制(四)-消息的轮询和执行
一. 消息的轮询和执行 1. 轮询机制 消息路由到MessageBox数据库中,只是在数据库中写入了相关记录,表示哪个消息需要由哪个服务实例去执行,并没有付诸实施,还需要在进程中实实在在的去实例化这 ...
- 微信小程序 - 云开发轮询实现定时推送订阅消息
前言 受众:已有小程序和云开发经验(没有的话照着流程和官方文档也应该可以实现) 关于小程序的消息推送,我了解到的有以下几种实现方式 1.模板消息,已于2020 年 1 月 10 日下线 2.通过服务端 ...
最新文章
- 初步学习Spring Aop使用之注解方式
- Flutter开发之ListView下拉刷新上拉加载更多(35)
- InfoQ —— 腾讯游戏大数据服务场景与应用
- MATLAB软件禁用利好,Matlab被禁用?一款国产软件站了出来说:我就是中国的Matlab...
- 带有Oracle Digital Assistant和Fn Project的会话式UI。 第三部分,迁移到云
- hdu 4454 Stealing a Cake 三分法
- 华为Mate X2黄牛价已超两万,结果小伙子没拿稳,成全网首摔?
- 从入门到精通:卷积神经网络初学者指南
- Java学习之字符与ASCII码相互转换的面板设计
- render注册一个链接组件_vue 动态加载并注册组件、 且通过 render动态创建该组件...
- hibernate一级缓存_Hibernate缓存–一级缓存
- 学习过程,简单记录,不求详尽,看懂就行,格式随意,高效学习
- Android Studio Gradle下载慢解决方法
- Win系统 - 局域网内电脑文件共享
- 使用python爬取猫眼电影、房王、股吧论坛、百度翻译、有道翻译、高德天气、华夏基金、扇贝单词、糗事百科(华夏基金)
- thinkphp 批量打包下载图片到本地电脑
- A19.从零开始前后端react+flask - 删除前后端数据
- 室友利用一把王者的时间就学会了【C语言结构体内存对齐】
- 体育技术机器学习金钱和灵感的圣杯
- 日元兑人民币用计算机怎么算,日元兑换人民币是以什么计算?谢谢我有日元 – 手机爱问...
热门文章
- 无人机-1认识无人机
- MAC终端命令学习(入门版)
- iOS线程生命周期的监控
- keybd_event、SendInput笔记
- Easy-RSA 3快速入门自述文件
- LeetCode刷题(35)--Permutation Sequence
- java连接设备连接给参数_如何通过蓝牙连接两个设备按参数发送配对代码? JAVA,Android的...
- 利用宝塔部署若依前后分离项目(详细教程)
- [Ext JS6实战] Ext.XTemplate
- java 获取系统变量(环境变量和设置变量)