我们知道,如果消息接收端挂了,消息会保存在队列里。下次接收端启动就会接收到消息。

如果RabbitMQ挂了怎么办呢?这时候需要将消息持久化到硬盘

消息发送端:producer

...........
# 建立管道
channel = connection.channel()
# 声明队列 1、加上durable=True进行队列持久化。两边都要加(当RabbitMQ服务down了之后)
channel.queue_declare(queue="q1",durable=True)
# 发消息
channel.basic_publish(exchange='',
routing_key='q1',
body='everything is just beginning!',
# 3、加上这句话,对消息进行持久化,只需要在发送方写(RabbitMQ服务down了之后)
properties=pika.BasicProperties(delivery_mode=2))
.......

消息接收端:consumer

.........
# 建管道
channel = connection.channel()
# 声明队列 2、加上durable=True进行队列持久化
channel.queue_declare(queue='q1', durable=True) def callback(ch, method, properties, body):
print("--->:",ch,properties)
time.sleep(10)
print("received: ", body)
ch.basic_ack(delivery_tag=method.delivery_tag)
............

这样改动,当RabbitMQ挂了之后可以对消息队列和里面的消息进行持久化。

RabbitMQ持久化的更多相关文章

  1. 消息中间件-RabbitMQ持久化机制、内存磁盘控制

    RabbitMQ持久化机制 RabbitMQ内存控制 RabbitMQ磁盘控制 RabbitMQ持久化机制 重启之后没有持久化的消息会丢失 package com.study.rabbitmq.a13 ...

  2. RabbitMQ持久化编码注意事项

    以Java语言,MQ客户端为amqp-client作为示例 1.基本原则 direct模式,由生产者声明队列名,消费者也声明队列名 topic模式,由生产者声明交换器名,由消费者声明队列名+交换器名+ ...

  3. RabbitMQ学习笔记(6)----RabbitMQ 持久化和非持久化

    持久化:将交换机或队列数据保存到磁盘,服务器宕机或重启之后依然存在. 非持久化:将交换机或队列的数据保存到内存中,服务器宕机或重启之后数据将不存在. 在RabbitMQ中也提供了持久化和非持久化方式. ...

  4. rabbitmq 持久化 事务 发送确认模式

    部分内容来自:http://blog.csdn.net/hzw19920329/article/details/54315940 http://blog.csdn.net/hzw19920329/ar ...

  5. RabbitMQ持久化机制、内存磁盘控制(四)

    一.持久化 如果看到这一篇文章的朋友,都是有经验的开发人员,对持久化的概念就不用再做过多的解析了,经过前面的几篇文章,其实不难发现RabbitMQ 的持久化其实就只分交换器持久化.队列持久化和消息持久 ...

  6. python rabbitMQ持久化队列消息

    import pika connection = pika.BlockingConnection( pika.ConnectionParameters('localhost'))#建立一个最基本的so ...

  7. RabbitMQ持久化和非持久化

    但是,非持久化要比持久化速度更快. 队列是否需要持久化:看需求

  8. 学习在.NET Core中使用RabbitMQ进行消息传递之持久化(二)

    前言 上一节我们简单介绍了RabbitMQ和在安装后启动所出现的问题,本节我们开始正式进入RabbitMQ的学习,对于基本概念请从官网或者其他前辈博客上查阅,我这里不介绍基础性东西,只会简单提一下,请 ...

  9. 【转】RabbitMQ基础——和——持久化机制

    这里原来有一句话,触犯啦天条,被阉割!!!! 首先不去讨论我的日志组件怎么样.因为有些日志需要走网络,有的又不需要走网路,也是有性能与业务场景的多般变化在其中,就把他抛开,我们只谈消息RabbitMQ ...

随机推荐

  1. 一个简单的案例带你入门Dubbo分布式框架

    相信有很多小伙伴都知道,dubbo是一个分布式.高性能.透明化的RPC服务框架,提供服务自动注册.自动发现等高效服务治理方案,dubbo的中文文档也是非常全的,中文文档可以参考这里dubbo.io.由 ...

  2. Chapter 4 Invitations——23

    The next morning, when I pulled into the parking lot, I deliberately parked as far as possible from ...

  3. Linux下Redis的安装配置

    环境: centos7  PHP7 1.切到准备安装的目录 cd /usr/local 2.下载Redis wget http://download.redis.io/redis-stable.tar ...

  4. NET快速信息化系统开发框架 V3.2 ->WinForm部分全部重构为Dev风格界面

    RDIFrameowrk.NET V3.2以前的版本WinForm部分使用的界面控件是DotNetBar,界面也是非常的美女,但相比现在市面上用得非常多功能强大的Dev控件还是略显逊色,V3.2版本花 ...

  5. 爬虫入门(三)——动态网页爬取:爬取pexel上的图片

    Pexel上有大量精美的图片,没事总想看看有什么好看的自己保存到电脑里可能会很有用 但是一个一个保存当然太麻烦了 所以不如我们写个爬虫吧(๑•̀ㅂ•́)و✧ 一开始学习爬虫的时候希望爬取pexel上的 ...

  6. c# IO操作

    今天我们主要讨论的IO的一些操作,首先我们先引入三个变量: /// <summary> /// 配置绝对路径 /// </summary> private static str ...

  7. 杭电ACM2010--水仙花数

    水仙花数 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submis ...

  8. Python全栈开发之---assert断言

    一.python assert的作用: 根据Python 官方文档解释(https://docs.python.org/3/reference/simple_stmts.html#assert), & ...

  9. JavaScript字符串转数字的5种方法及其陷阱

    摘要 :JavaScript 是一个神奇的语言,字符串转数字有 5 种方法,各有各的坑法! String 转换为 Number 有很多种方式,我可以想到的有 5 种! parseInt(num); / ...

  10. SAP MM 根据采购订单反查采购申请?

    SAP MM 根据采购订单反查采购申请? 前日微信上某同行发来一个message,说是想知道如何通过采购订单号查询到其前端的采购申请号. 笔者首先想到去检查采购订单相关的常用报表ME2L/ME2M/M ...