美文网首页
RabbitMQ 声明队列

RabbitMQ 声明队列

作者: 我是付大善人 | 来源:发表于2019-11-03 00:24 被阅读0次

[TOC]

RabbitMQ 声明队列

// 创建一个持久化 非排他的 非自动删除的队列       
channel.queueDeclare(QUEUR_NAME, true, false, false, null);
queueDeclare(String queue, 
            boolean durable, 
            boolean exclusive, 
            boolean autoDelete,
            Map<String, Object> arguments);

queue

队列名称

exclusive

是否排外的。 当设置exclusive = true时有两个作用:

  • 当连接关闭时connection.close()该队列会会自动删除
  • 会对当前队列加锁,其他通道channel是不能访问的.如果强制访问会报异常.一般等于true的话用于一个队列只能有一个消费者来消费的场景

autoDelete

autoDelete: 是否自动删除,当最后一个消费者断开连接之后队列是否自动被删除,可以通过RabbitMQ Management,查看某个队列的消费者数量,当consumers = 0时队列就会自动删除

durable

是否持久化, 队列的声明默认是存放到内存中的,如果rabbitmq重启会丢失,如果想重启之后还存在就要使队列持久化,保存到Erlang自带的Mnesia数据库中,当rabbitmq重启之后会读取该数据库

相关文章

网友评论

      本文标题:RabbitMQ 声明队列

      本文链接:https://www.haomeiwen.com/subject/jmqkbctx.html