一:消息应答
1.介绍
涉及到的程序:
boolean autoAck=false;
channel.basicConsume(QUENE_NAME,autoAck,consumer);
2.autoAck=true
自动确认模式。
一旦rabbitMq将消息发送给消费者,就从内存中删除。
缺点:如果这个时候消费者挂掉,就会丢失正在处理的消息。
3.autoAck=false
手动模式。
如果一个消费者挂掉,就会交给其他的消费者。
rabbitMq支持消息应答,消费者发送一个消息应答,告诉rabbitMq这个消息已经处理结束,然后这时rabbitMq就会删除内存中的消息。
4.默认
默认是打开的,为false。
二:持久化
1.出现的缘由
如果rabbitMq挂了,消息就会丢失。
rabbitMq支持持久化。
2.涉及的程序
//创建队列声明
channel.queueDeclare(QUENE_NAME,false,false,false,null);
其中,第二个参数是durable,是否持久化。
3.注意点
将第二个参数改成true,直接运行程序是会报错的。
原因如下:
因为刚才在运行程序的时候已经定义了一个队列,然后又定义了一个相同的队列,并且参数不同。这个是不被rabbitMq所允许的。
做法:
换一个队列的名字,或者去管理平台上删除已经存在的队列。
RabbitMq中的消息应答与持久化的更多相关文章
-
RabbitMQ中各种消息类型如何处理?
一:消息类型 Map String(含json字符串类型) 二:处理方法 2.1 Map消息 如果发送的消息类型是map类型,可以通过SerializationUtils.deserialize方法将 ...
-
轻松搞定RabbitMQ(三)——消息应答与消息持久化
转自 http://blog.csdn.net/xiaoxian8023/article/details/48710653 这个官网的第二个例子中的消息应答和消息持久化部分.我把它摘出来作为单独的一块 ...
-
RabbitMQ入门_13_消息持久化
参考资料:https://www.rabbitmq.com/tutorials/tutorial-two-java.html 默认情况下,队列中的消息是不持久化的.如果 RabbitMQ 崩溃,队列中 ...
-
快速掌握RabbitMQ(三)——消息确认、持久化、优先级的C#实现
1 消息确认 在一些场合,如转账.付费时每一条消息都必须保证成功的被处理.AMQP是金融级的消息队列协议,有很高的可靠性,这里介绍在使用RabbitMQ时怎么保证消息被成功处理的.消息确认可以分为两种 ...
-
rabbitmq之确保消息不丢失
1.背景引入 在使用消息中间件(rabbitmq)时,令开发者最头痛的就是防止消息丢失问题,而消息丢失可能发生的位置主要为三种,分别为(1)消息发送到MQ中消费者消费未成功时突然宕机:(2)消息发送到 ...
-
Rabbit MQ 消息确认和持久化机制
一:确认种类 RabbitMQ的消息确认有两种.一种是消息发送确认,用来确认生产者将消息发送给交换器,交换器传递给队列的过程中消息是否成功投递.发送确认分为两步,一是确认是否到达交换器,二是确认是否到 ...
-
RabbitMQ 中 Connection 和 Channel 详解
我们知道无论是生产者还是消费者,都需要和 RabbitMQ Broker 建立连接,这个连接就是一条 TCP 连接,也就是 Connection. 一旦 TCP 连接建立起来,客户端紧接着可以创建一个 ...
-
在C#中使用消息队列RabbitMQ
1.什么是RabbitMQ.详见 http://www.rabbitmq.com/. 作用就是提高系统的并发性,将一些不需要及时响应客户端且占用较多资源的操作,放入队列,再由另外一个线程,去异步处理这 ...
-
C#中使用消息队列RabbitMQ
在C#中使用消息队列RabbitMQ 2014-10-27 14:41 by qy1141, 745 阅读, 2 评论, 收藏, 编辑 1.什么是RabbitMQ.详见 http://www.rabb ...
随机推荐
-
随机验证码生成(python实现)
需求:生成随机不重复验证码. 代码: #!/usr/bin/env python # encoding: utf-8 """ @author: 侠之大者kamil @fi ...
-
Run Android on Your Netbook or Desktop
Run Android on Your Netbook or Desktop Would you like to try out Google's Android OS on your netbook ...
-
统计map上的read数量
samtools flagstat /SRA111111/SRR111222/accepted_hits.bam 78406056 + 0 in total (QC-passed reads + QC ...
-
lettcode-102:Binary Tree Level Order Traversal (Java)
Binary Tree Level Order Traversal 二叉树的层序遍历 两种方式: 1.用两个queue交替表示每一层的节点 2.用两个node,一个表示当前层的最后一个节点,一个表示下 ...
-
VB.NET中网络编程所需组件WinHTTP的添加
VB.NET中网络编程所需组件: WinHTTP组件:项目-->添加引用-->COM选项卡-->Microsoft WinHTTP Services,version 5.1--> ...
-
15 Django REST Framework 给api添加自定义搜索条件
一.ListModelMixin源码 # 源码 class ListModelMixin(object): """ List a queryset. "&quo ...
-
window xshell 连接本地ubuntu虚拟机
先设置VMware 虚拟机的连接属性 1.桥接,利用真实网卡 设置和window 同一个网段就可以直接通信 2.hostnoly是通过vm8(查看你的所有网络连接) 只能和主机联系 设置和vm8同一 ...
-
一道PHP题引出的“短路求值”
今天群里有个人问了一个问题,代码如下: $a = 3; $b = 2; if ($a = 2 || $b = 5) { ++$a; } echo $a; 说代码段的执行的结果为1,问大家$a的 ...
-
volatile特性
volatile保证可见性 一旦一个共享变量(类的成员变量.类的静态成员变量)被volatile修饰之后,那么就具备了两层语义: 1)保证了不同线程对这个变量进行操作的可见性,即一个线程修改了某个变量 ...
-
hdu 3339 In Action (最短路径+01背包)
In Action Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total S ...