美文网首页
4.2rabbitMq队列(gold_axe)

4.2rabbitMq队列(gold_axe)

作者: 胖达_4b7e | 来源:发表于2020-11-17 00:11 被阅读0次
     Map<String,Object> args = new HashMap<String,Object>();
    channel.queueDeclare(
                    queueName,//队列名
                    false,//是不是持久化(mq重启后队列是不是还在):临时队列/持久队列
                    false,//允许多个消费者消费(轮询
                    false,//最后一个消费者断开后队列是不是删除
                    args//其他参数
            );
    

    队列声明时的几个参数除了队列名有:

    • 是不是rabbitmq重启后队列还在, 决定了队列是 临时队列 或者是
      持久队列, 开启持久化影响性能不推荐
    • 是不是不允许绑定多个消费者,如果开启 队列就是单消费者队列, 用于顺序消息,牺牲了性能
    • 是不是最后一个消费者断开以后本队列就删除,就是 自动删除队列
    • 一个 Map<String, Object> arguments, 传其他高级属性

    Map<String, Object> arguments

    • x-dead-letter-exchange 死信交换器
    • x-dead-letter-routing-key 死信消息的可选路由键
    • x-expires 队列在指定毫秒数后被删除
    • x-ha-policy 创建 HA 队列
    • x-ha-nodes HA 队列的分布节点
    • x-max-length 队列的最大消息数
    • x-message-ttl 毫秒为单位的消息过期时间,队列级别
    • x-max-priority 最大优先值为 255 的队列优先排序功能(打破先进先出)

    自动过期队列

    arguments.put("x-expires",10*1000);//10秒被删除
    这个意思是, 没有消费者绑定在队列上的情况下
    10秒都没get操作了,
    不管有没有投递
    本队列都会删除

    队列里面 消息 的超时设置

    arguments.put(" x-message-ttl",45*1000);/
    队列里面消息的存活时间, 45秒没被消费就死掉
    死掉以后,如果有设置了死信, 会投递到死信交换器

            //死信
    arguments.put("x-dead-letter-exchange", DlxProcessConsumer.DLX_EXCHANGE_NAME);//绑定死信交换器
    arguments.put("x-dead-letter-routing-key", "deal");//死信路由键,会替换消息原来的路由键
    

    镜像队列

    "x-ha-policy"

    相关文章

      网友评论

          本文标题:4.2rabbitMq队列(gold_axe)

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