RabbitMQ-数据持久化

一、持久化类型

1、交换机持久化(SpringAMQP默认)

2、队列持久化(SpringAMQP默认)

3、消息持久化

二、消息持久化

1、纯内存操作

        如果采用纯内存操作,那么消息存储达到队列的上限之后,会有一个page out操作,这个操作是将队列中已经有的一部分MQ消息转移到磁盘,给队列腾出空间,使得队列能够继续接收MQ消息,这个转移MQ消息的过程是一个阻塞的过程,转移过程中,队列无法接收MQ消息。

2、持久化消息

        SpringAMQP默认采用这种方式,这种方式需要将MQ消息入队的同时,也写一份进入到磁盘中,但是与Page out操作有一定区别,不会阻塞;当队列满了之后,会有一次清空内存的操作,这个操作会使得队列接收消息变慢,但是不至于阻塞。

3、LazyQueue

        惰性队列,消息直接写入到磁盘,内存中会保留最近的一部分消息,很少的一部分;当消费者需要消息时,才会到到磁盘中去读取;3.12版本之后,队列都是LazyQueue的模式,无法更改。

        

相关推荐

  1. RabbitMQ-数据持久

    2024-01-21 08:12:02       35 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-01-21 08:12:02       19 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-21 08:12:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-21 08:12:02       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-21 08:12:02       20 阅读

热门阅读

  1. 开发安全之:XML Injection

    2024-01-21 08:12:02       31 阅读
  2. 15 STM32 - SPI

    2024-01-21 08:12:02       37 阅读
  3. 建模论文书写方式的简单讨论

    2024-01-21 08:12:02       32 阅读
  4. centos宝塔远程服务器怎么链接?

    2024-01-21 08:12:02       40 阅读
  5. c++ http第一个服务

    2024-01-21 08:12:02       36 阅读
  6. React中super()和super(props)有什么区别?

    2024-01-21 08:12:02       40 阅读