channel.queueDeclare(String queue, boolean durable, boolean exclusive, boolean autoDelete, Map<String, Object> arguments)

1. queue: 队列的名称 ;

2. durable: 是否持久化 ;

  • durable = false时,队列非持久化。因为队列是存放在内存中的,所以当RabbitMQ重启或者服务器重启时该队列就会丢失 ;
  • durable = true时,队列持久化。当RabbitMQ重启后队列不会丢失。RabbitMQ退出时它会将队列信息保存到 Erlang自带的Mnesia数据库 中,当RabbitMQ重启之后会读取该数据库 ;

3. exclusive: 是否排外的 ;

  • exclusive = true则设置队列为排他的。如果一个队列被声明为排他队列,该队列 仅对首次声明它的连接(Connection)可见,是该Connection私有的,类似于加锁,并在连接断开connection.close()时自动删除 ;
  • exclusive = false则设置队列为非排他的,此时不同连接(Connection)的管道Channel可以使用该队列 ;

注意2点:

  • 排他队列是 基于连接(Connection) 可见的,同个连接(Connection)的不同管道 (Channel) 是可以同时访问同一连接创建的排他队列 。其他连接是访问不了的 ,强制访问将报错:com.rabbitmq.client.ShutdownSignalException: channel error; protocol method: #method<channel.close>(reply-code=405, reply-text=RESOURCE_LOCKED - cannot obtain exclusive access to locked queue 'hello-testExclusice' in vhost '/'.;以下声明是没问题的:
 Channel channel = connection.createChannel();Channel channel2 = connection.createChannel();channel.queueDeclare(QUEUE_NAME, false, true, false, null);channel2.queueDeclare(QUEUE_NAME, false, true, false, null);=》如果是不同的 connection 创建的 channel 和 channel2,那么以上的=》channel2.queueDeclare()是会报错的!!!!!!
  • "首次" 是指如果某个连接(Connection)已经声明了排他队列,其他连接是不允许建立同名的排他队列的。这个与普通队列不同:即使该队列是持久化的(durable = true),一旦连接关闭或者客户端退出,该排他队列都会被自动删除,这种队列适用于一个客户端同时发送和读取消息的应用场景。

4. autoDelete: 是否自动删除 ;如果autoDelete = true,当所有消费者都与这个队列断开连接时,这个队列会自动删除。注意: 不是说该队列没有消费者连接时该队列就会自动删除,因为当生产者声明了该队列且没有消费者连接消费时,该队列是不会自动删除的。

5. arguments: 设置队列的其他一些参数,如 x-rnessage-ttl 、x-expires 、x-rnax-length 、x-rnax-length-bytes、 x-dead-letter-exchange、 x-deadletter-routing-key 、 x-rnax-priority 等。

RabbitMQ队列声明channel.queueDeclare()参数解析相关推荐

  1. RabbitMQ队列持久化

    之前我们创建的队列都是非持久化的,rabbitmq如果重启的化,该队列就会被删除掉,如果要队列实现持久化需要在声明队列的时候把durable参数设置为持久化 // 声明队列// 持久化 需要让Queu ...

  2. rabbitmq队列模式以及交换机模式

    常用命令 ## rabbitmq 常用命令 进入到sbin目录 启用管理插件:rabbitmq-plugins enable rabbitmq_management 启动服务: net start R ...

  3. golang gin 监听rabbitmq队列无限消费

    golang gin 监听rabbitmq队列无限消费 连接rabbitmq package databaseimport ("github.com/streadway/amqp" ...

  4. Day10-Python3基础-协程、异步IO、redis缓存、rabbitMQ队列

    内容目录: Gevent协程 Select\Poll\Epoll异步IO与事件驱动 Python连接Mysql数据库操作 RabbitMQ队列 Redis\Memcached缓存 Paramiko S ...

  5. RabbitMq队列 queue

    目录 RabbitMq队列 消息确认机制 负载均衡 生产者代码 消费者1 消费者2 RabbitMq队列 在上篇文章中讲了mq的队列,这篇用代码实现.在例子中存在一个生产者,和两个消费者.生产者将生产 ...

  6. RabbitMQ队列阻塞该如何处理

    概述 事故经过 由于大量商户反应收不到推送,第一反应是不是推送系统挂了,导致没有进行推送.于是让运维检查推送系统个节点的情况,发现都正常.于是打开RabbitMQ的管控台看了一下,人都蒙了.已经有几万 ...

  7. [RabbitMQ]队列持久化

    RabbitMQ持久化 概念 如何保障当 RabbitMQ 服务停掉以后消息生产者发送过来的消息不丢失.默认情况下 RabbitMQ 退出或由于某种原因崩溃时,它忽视队列和消息,除非告知它不要这样做. ...

  8. Python开发【十一章】:RabbitMQ队列

    RabbitMQ队列 rabbitMQ是消息队列:想想之前的我们学过队列queue:threading queue(线程queue,多个线程之间进行数据交互).进程queue(父进程与子进程进行交互或 ...

  9. c#服务器后端_C#使用RabbitMq队列(Sample,Work,Fanout,Direct等模式的简单使用)

    1:RabbitMQ是个啥?(专业术语参考自网络) RabbitMQ是实现了高级消息队列协议(AMQP)的开源消息代理软件(亦称面向消息的中间件). RabbitMQ服务器是用Erlang语言编写的, ...

  10. 七RabbitMQ队列、Redis

    MQ全称为Message Queue, 消息队列(MQ)是一种应用程序对应用程序的通信方法.应用程序通过读写出入队列的消息(针对应用程序的数据)来通信,而无需专用连接来链接它们.消息传递指的是程序之间 ...

最新文章

  1. 基于机器学习的web异常检测(转)
  2. Linux下查看TOMCAT控制台
  3. 人工智能 - paddlepaddle飞桨 - 深度学习基础教程 - 图像分类
  4. 1.Kong入门与实战 基于Nginx和OpenResty的云原生微服务网关 --- 基础知识点概述
  5. 识别圆的强化RANSAC算法
  6. 2021年高压电工新版试题及高压电工模拟考试题
  7. c语言bbs论坛管理系统,C语言编程论坛的设计与开发---论文.doc
  8. 77 关于 java.util.concurrent.RejectedExecutionException:Thread limit exceeded replacing blocked worker
  9. recyclerview简单实现立体魔方动画切换效果
  10. 【Docker社区大会】WebAssembly:无需容器的 Docker——VMware技术总监 Daniel Lopez
  11. 使用docer创建spring boot镜像
  12. 西门子PLC1200 TCP通讯
  13. 基于AntV G2实现一个通用可视化Vue插件
  14. rocketMq监控平台界面
  15. 统计人数-C语言实现
  16. win7 64位下如何安装配置mysql
  17. ps怎么清屏_刷屏了的黑洞照片,居然是3分钟PS出来的!
  18. css除法,CSS calc()百分比余数乘除法
  19. eXtremeDB打开连接问题
  20. 从OA到COP,致远互联成引领行业的“灯塔”

热门文章

  1. [AHK]新浪实时股票数据接口
  2. html复制并弹窗提示已复制,如何调用handsome主题自带的弹窗提示实现复制弹窗提醒以及个性化提示...
  3. Node 的 cross-env 模块
  4. 创业公司一年工作总结(转)(公司失败原因)
  5. 安卓面试中高级安卓开发工程师总结之——大公司面试的方向和套路以及应对方法
  6. sweetalert加载弹窗定时自动关闭
  7. 视频图像的I帧、P帧、B帧详解
  8. Windows视频桌面壁纸实现(libvlc)(类似于wall paper engine效果)
  9. android垂直进度条控件,Android常用控件之ProgressBar,水平进度条
  10. python纸对折8848_GitHub - yly8848/Python-100-Days: Python - 100天从新手到大师