消息中间件(7)—— 队列及消息的属性

在RabbitMQ 中,生产者生产的消息先储存在队列中,然后消费者从队列中获取进行消费

因此,本节来学习一下队列的相关知识

一、队列种类

1.1 临时队列

RabbitMQ 服务器重启,这些队列就不会存在,所以称之为临时队列

临时队列又分为:

1)自动删除队列

和普通队列在使用上没有什么区别,唯一的区别是,当消费者断开连接时,队列将会被删除

注意:自动删除队列可能绑定多个消费者,当最后一个消费者断开连接才会执行删除

创建队列时设置属性auto-delete 标识为 true 即可

系统声明的随机队列,缺省就是自动删除的

2) 单消费者队列

普通队列允许的消费者没有限制

多个消费者绑定到多个队列时,RabbitMQ 会采用轮询进行投递

如果需要消费者独占队列,在队列创建的时候,将上图中属性 exclusive设为true即可

3)自动过期队列

指队列在超过一定时间没使用,会被从 RabbitMQ 中被删除

什么是没使用?

1、一定时间内没有 Get 操作发生

2、没有 Consumer 连接在队列上

注意:就算一直有消息进入队列,也不算队列在被使用

通过声明队列时,设定 x-expires 参数即可,单位毫秒 

        String queueName = "setQueue";
        Map<String, Object> arguments = new HashMap<String, Object>();
        arguments.put("x-expires",10*1000);//10秒被删除

        /*加入队列的各种参数*/
        channel.queueDeclare(queueName,false,false, false,arguments);

1.2 持久队列

持久化队列和非持久化队列的区别是

持久化队列会被保存在

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值