动力节点RabbitMQ教程|12小时学会rabbitmq消息中间件
总时长 12:20:00 共65P
此文章包含第31p-第p37的内容
延迟队列
实现
定时任务方式(不推荐)
被动取消 只有查询的时候才会进行修改状态(不推荐)
jdk延迟队列(不推荐)
容易内存溢出
中间件(推荐)
实现代码
设置配置
设置普通队列
绑定普通队列
设置死信队列 并且 绑定死信队列
绑定死信交换机 这里修改了之前的普通队列
发送消息
面板参数
D 持久化
TTL 过期时间
DLX 死信交换机
DLK 死信路由key
问题 过期时间不一致的情况
删除队列的过期时间 .ttl(25000) 去掉
代码块 加括号 可以分离信息 可以实现 重复命名
接收死信队列的消息
发送时间
接收时间 也是一样 因为前面那个队列数给挡住了
放在不同的队列里
使用插件
下载到plu 文件夹中
先下载wget工具
用wget 下载地址
进行下载
或者 直接下载到本机 然后复制到文件夹里
用unzip解压
解压完 可以把.ez文件删除
启动插件
查看
启用完 多了一种交换机类型
只需要一个交换机 一个队列
需要使用自定义交换机
只有四种 直连 扇形 头部 主题
自定义交换机 5个参数
交换机名称
交换机类型
持久化
自动删除
map参数
创建队列
旧代码
新代码
延迟时间设置到头部
D 持久化
DM 消息延迟为0
Args 参数
发消息时 是发送到交换机 然后写路由key 从而找到队列
接消息时是接收的队列名称 如 @RabbitListener(queues = "#{MyBean.queueName}") myBean 是一个类 quererName是它的一个属性
切记使用延迟队列时 接收的队列必须是死信队列 因为接收普通队列的话直接就接收了 就没有死信队列的事情了
rz xshell打开上传下载界面
使用yum安装 yum install xxx -y