`
zengshaotao
  • 浏览: 787009 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

rabbit持久化

 
阅读更多

如果我们希望即使在RabbitMQ服务重启的情况下,也不会丢失消息,我们需要将Queue与Message都设置为可持久化的(durable)。

 

在windows环境下,在rabbitmq的安装目录/sbin下,通过命令:

rabbitmqctl.bat    list_queues  查看存在的消息队列和队列的消息

如果没有持久化,重启rabbitmq,队列和消息都将消失。

 

当然,如果只是持久化了队列,那么消息在重启时也是会消失的,消息持久化代码如下:

channel.basic_publish(exchange='',
                      routing_key='hello',
                      body='hello',
                      properties=pika.BasicProperties(
                          delivery_mode=2,  # make message persistent
                      ))
 
# 增加properties,这个properties 就是消费端 callback函数中的properties
# delivery_mode = 2  持久化消息
 
对于队列的持久化,消费和生产端都是需要进行同样的持久化设置
分享到:
评论

相关推荐

    Redis 持久化之RDB和AOF.doc

    Redis 持久化是确保数据安全的重要机制,它提供了两种主要的方法:RDB(Redis Database)和 AOF(Append Only File)。RDB 是一种快照式的持久化方式,而 AOF 则记录每次写操作的日志。 RDB 持久化在特定条件下将...

    rabbitmq代码,包含了消息队列的5中方式,topic 等模式,还有保持消息持久化的解决方法(交换机 队列 消息同时持久化)等。

    这个压缩包文件提供了关于RabbitMQ的代码示例,特别关注了消息队列的五种工作模式以及消息持久化的方法。下面将详细阐述这些知识点。 首先,RabbitMQ的消息队列有五种主要的工作模式,它们分别是: 1. **Direct...

    Redis的持久化方案.docx

    Redis的持久化是确保在系统崩溃或意外重启后能够恢复数据的关键特性。它提供了两种主要的持久化方案:RDB(Redis DataBase)和AOF(Append Only File)。这两种方法各有特点,适用于不同的场景。 **RDB详解** RDB是...

    rabbit入门

    10. **持久化**:为了保证消息在服务器重启或网络故障后仍然可用,RabbitMQ支持消息和队列的持久化,即使服务器崩溃,消息也不会丢失。 11. **集群**:多个RabbitMQ节点可以组成一个集群,提供高可用性和负载均衡。...

    rabbit实战

    4. **持久化**:RabbitMQ提供消息和队列的持久化选项,即使服务器重启,也能恢复未处理的消息,防止数据丢失。 5. **AMQP协议**:RabbitMQ基于Advanced Message Queuing Protocol (AMQP),这是一个开放标准,使得跨...

    rabbit mq入门例子

    3. 持久化:对于重要的消息,可以设置队列和消息的持久化,保证在服务器重启后不丢失数据。 4. 高可用性:通过RabbitMQ集群提高服务的可用性和容错性。 总的来说,RabbitMQ是一个强大的消息中间件,它允许应用程序...

    rabbit_mq的demo

    创建一个队列,可以设置队列是否持久化,以及其他属性。队列是无名的,通过声明时的参数来唯一标识。 5. **绑定Exchange和Queue**: 建立交换机和队列的绑定,设置路由键,这样交换机会根据路由键将消息放入对应...

    rabbit安装包

    3. 插件管理:RabbitMQ有丰富的插件可供选择,如用于监控、日志记录和持久化等。 4. 集群配置:如果需要高可用性和负载均衡,可以将多个RabbitMQ节点配置成集群。 5. 防止数据丢失:启用RabbitMQ的持久化功能,...

    mq.rar springcloud整合rabbit java工程

    RabbitMQ依据指定的转发规则进行消息的转发、缓冲和持久化操作,主要用在多服务器间或单服务器的子系统间进行通信,是分布式系统标准的配置。 spring-cloud-stream-binder-rabbit SubscribableChannel ...

    rabbit mq的demo更新

    在这个“rabbit mq的demo更新”中,我们将探讨如何通过编程实现与RabbitMQ的连接,发送和接收消息,以及如何配置消息的持久化和客户端订阅。 首先,连接RabbitMQ通常需要一个客户端库,如Java的`rabbitmq-amqp-...

    rabbit_gra完整实例源码,测试可以使用.rar

    8. **消息持久化**:在RabbitMQ中设置消息和队列的持久化,防止服务重启时数据丢失。 9. **监控与管理**:学习使用RabbitMQ的管理界面来查看队列状态、日志和性能指标。 10. **集成测试**:实例中提供的测试用例...

    Rabbit详细使用手册

    - 关键配置项有消息持久化、队列自动删除策略等。 **3.2 性能调优** - **内存管理**: - 优化 Erlang 虚拟机的内存配置以提高性能。 - 可以调整最大堆大小、垃圾回收策略等参数。 - **网络配置**: - 调整...

    rabbit源代码\启动接口压缩包

    - **队列与消息持久化**:了解如何设置队列的持久化属性,可以保证即使服务器重启,消息也不会丢失。 - **错误处理和回调**:在Python中使用RabbitMQ时,需要处理网络中断、消息确认(acknowledgements)和异常情况...

    jak_rabbit.zip

    队列持久化意味着队列的定义会在服务器重启后恢复,而消息持久化则意味着消息会被写入磁盘,而非仅存在于内存中。 2. **确认模式**:消费者开启确认模式后,RabbitMQ会等待消费者确认已处理的消息。如果RabbitMQ未...

    rabbit_mq_client

    在实际应用中,你可能需要处理更多复杂情况,例如错误处理、确认模式、批量消息处理、工作队列、消息持久化等。此外,还可以利用`amqp-cpp`库提供的其他功能,如交换器类型(如Direct、Fanout、Topic等)、绑定、...

    rabbitmq笔记及面试要点

    选择RabbitMQ的理由包括其对AMQP标准的全面支持,提供高度可靠的消息持久化功能,以及强大的高并发处理能力,这得益于Erlang语言的天然优势。此外,RabbitMQ的集群部署简单,社区活跃,使得它成为许多企业的首选。 ...

    rabbit面试及学习资料汇总

    6. **持久化(Persistence)**:通过设置队列和消息的持久化属性,可以在RabbitMQ服务器重启后仍保留消息。 7. **高可用性(HA)**:通过集群和镜像队列实现数据复制,提高服务的可用性和容灾能力。 8. **Spring...

    erl,rabbit 安装包

    此外,RabbitMQ还支持多种持久化策略,确保在系统故障后能够恢复未处理的消息。 总之,Erlang和RabbitMQ的组合提供了一个强大且灵活的消息传递平台,广泛应用于各种软件系统中,简化了异步通信和解耦组件之间的依赖...

    RabbitMQ 45 道面试题及答案.docx

    如果持久化消息在被消费之前 RabbitMQ 重启,那么 Rabbit 会自动重建交换器和队列(以及绑定),并重新发布持久化日志文件中的消息到合适的队列。 使用 RabbitMQ 的好处 1. 服务间高度解耦 2. 异步通信性能高 3. ...

    RabbitMq与Spring整合实例

    通过设置交换机和队列的durable属性为true,可以实现消息持久化,即使RabbitMQ服务器重启,消息也不会丢失。 3. **事务支持** Spring AMQP支持事务,可以在发送消息时开启事务,确保消息的原子性。 4. **路由...

Global site tag (gtag.js) - Google Analytics