八、代码实现-自动/手动应答(15)


告警消费者
package com.rabbitmq11;import lombok.extern.slf4j.Slf4j;import org.springframework.amqp.core.Message;import org.springframework.amqp.rabbit.annotation.RabbitListener;import org.springframework.stereotype.Component;/*** 队列ttl消费者** @author 天真热* @create 2022-02-10 16:00* @desc**/@Slf4j@Componentpublic class WarningConsume {//接收消息@RabbitListener(queues = ConfirmConfig.WARNING_QUEUE)public void receiveDelay(Message msg) {String message = new String(msg.getBody());log.info("报警发现不可路由的消息:" + message);}}
备份消费者
package com.rabbitmq11;import lombok.extern.slf4j.Slf4j;import org.springframework.amqp.core.Message;import org.springframework.amqp.rabbit.annotation.RabbitListener;import org.springframework.stereotype.Component;/*** 队列ttl消费者** @author 天真热* @create 2022-02-10 16:00* @desc**/@Slf4j@Componentpublic class BackupConsume {//接收消息@RabbitListener(queues = ConfirmConfig.BACKUP_QUEUE)public void receiveDelay(Message msg) {String message = new String(msg.getBody());log.info("走的是备份交换机消息:" + message);}}
测试1-正常访问::8090///100
测试2-访问错误的路由::8090///100
测试3-访问错误的::8090///100
十六、的界面属性介绍
D:d 是的缩写 , 代表这个队列中的消息支持持久化 。AD:ad 是的缩写 。代表当前队列的最后一个消费者退订时被自动删除 。注意:此时不管队列中是否还存在消息 , 队列都会删除 。excl:是的缩写 。代表这是一个排他队列 。如果一个队列被声明为排他队列 , 该队列仅对首次声明它的连接可见 , 并在连接断开时自动删除 。这里需要注意三点:其一 , 排他队列是基于连接可见的 , 同一连接的不同信道是可以同时访问同一个连接创建的排他队列的 。其二 , “首次” , 如果一个连接已经声明了一个排他队列 , 其他连接是不允许建立同名的排他队列的 , 这个与普通队列不同 。其三 , 即使该队列是持久化的 , 一旦连接关闭或者客户端退出 , 该排他队列都会被自动删除的 。这种队列适用于只限于一个客户端发送读取消息的应用场景 。Args:是的缩写 。代表该队列配置了参数 。TTL:是 x--ttl 的缩写 。设置队列中的所有消息的生存周期(统一为整个队列的所有消息设置生命周期), 也可以在发布消息的时候单独为某个消息指定剩余生存时间 , 单位毫秒 。Exp:Auto  , 是 x- 配置的缩写 。
当队列在指定的时间没有被访问(, , …)就会被删除 , =Exp 。注意这里是删除队列 , 不是队列中的消息 。Lim:说明该队列配置了 x-max- 。限定队列的消息的最大值长度 , 超过指定长度将会把最早的几条删除掉 。Lim B:说明队列配置了 x-max--bytes 。限定队列最大占用的空间大小 ,  一般受限于内存、磁盘的大小 。DLX:说明该队列配置了 x-dead-- 。当队列消息长度大于最大长度、或者过期的等 , 将从队列中删除的消息推送到指定的交换机中去而不是丢弃掉 。DLK:x-dead---key 的缩写 , 将删除的消息推送到指定交换机的指定路由键的队列中去 。Pri:x-max- 的缩写 , 优先级队列 。表明该队列支持优先级 , 先定义最大优先级值(定义最大值一般不要太大) , 在发布消息的时候指定该消息的优先级 ,  优先级更高(数值更大的)的消息先被消费 。Ovfl:x- 的缩写 。队列中的消息溢出时 , 如何处理这些消息 。要么丢弃队列头部的消息 , 要么拒绝接收后面生产者发送过来的所有消息 。有两个配置项:drop-head , 代表丢弃队列头部的消息 , 默认行为;- 设置队列中的消息溢出后,该队列的行为:”拒绝接收”(所有消息) 。ha-all:镜像队列 。all 表示镜像到集群上的所有节点 , ha- 参数忽略 。