Rabbitmq入门2
创始人
2024-12-16 20:06:51
0

1.消息存活时间

可以对单个消息或者对整个队列设置过期时间,当消息到达存活时间还没有被消费,就会被队列移除。

有消息过期时间的队列可以在UI界面上看到

设置队列所有消息过期时间

 

@Bean("queue") public Queue getQueue() {     return QueueBuilder.ttl(10000).build(); // 队列的每条消息保存10s }

设置单条消息存活时间

 

MessageProperties messageProperties = new MessageProperties();     messageProperties.setExpiration("6000"); // 6s     Message message = new Message("test1".getBytes(StandardCharsets.UTF_8), messageProperties);     rabbitTemplate.convertAndSend("test1", "testchange",message); 

如果队列和消息同时设置过期时间,以时间短的为准。

2.消息优先级

RabbitMQ 自 V3.5.0有优先级队列的实现

消息设置优先级后,优先级越高,消息越早被消费。

优先级0-255之间,建议0-10  

每个队列的优先级存在一些内存中和磁盘上的成本,还有额外的 CPU 成本,尤其是在使用时,因此可能不希望创建大量级别。

创建优先级队列

QueueBuilder.maxPriority(10) .build();

创建优先级消息

MessageProperties messageProperties = new MessageProperties();         messageProperties.setExpiration("5000"); // 5s         messageProperties.setPriority(10); // 设置消息的优先级          Message message = new Message("topic_exchange_message".getBytes(StandardCharsets.UTF_8), messageProperties); 

优先级只有在消息堆积的时候生效,如果消费者处理消息效率特别高,则可能不生效

3.死信队列

当消息成为无法被消费的消息时,会成为死信,进而进入死信队列。

死信队列,死信交换机和普通的交换机 队列没有区别。

消息成为死信的情况:

  1. 队列消息长度到达限制。
  2. 消费者拒签消息,并且不把消息重新放入原队列。
  3. 消息到达存活时间未被消费。

主要操作方式为1.创建死信交换机,创建死信队列 2.普通队列出了需要绑定交换机外,还需要绑定死信交换机和死信路由关键字

 

QueueBuilder .durable(NORMAL_QUEUE) .deadLetterExchange(DEAD_EXCHANGE) // 绑定死信交换机 .deadLetterRoutingKey("dead_routing") // 死信队列路由关键字 .ttl(10000) // 消息存活10s .maxLength(10) // 队列最大长度为10 .build();

4.延迟队列

使用死信队列实现延迟队列

缺点:消息不会立马执行

一般很少使用这个实现

可以使用插件实现延迟队列

地址:Community Plugins | RabbitMQ

 将rabbitmq_delayed_message_exchange上传指定目录下使用unzip解压即可
安装目录: /rabbitmq/plugins

执行

rabbitmq-plugins enable rabbitmq_delayed_message_exchange

如果使用的时docker

docker cp rabbitmq_delayed_message_exchange-3.9.0.ez 095a83361bf9:/plugins

进入容器操作

docker exec -it 你的RabbitMQ名称或容器id /bin/bash

启动插件

rabbitmq-plugins enable rabbitmq_delayed_message_exchange

最后在控制台查看 如果出现了 x-delayed-message则说明插件安装成功

代码应用

  message.getMessageProperties().setDelay(15000);

至此rabbitmq入门成功

相关内容

热门资讯

分辨真假!云麻圈修改器(辅助挂... 分辨真假!云麻圈修改器(辅助挂)开挂透视辅助攻略(总是有挂)-哔哩哔哩1、云麻圈修改器系统规律教程、...
有消息称!遇悦游戏辅助,微信小... 有消息称!遇悦游戏辅助,微信小程序多乐辅助器,透牌教程(果然是有挂)-哔哩哔哩1、操作简单,无需注册...
记者发布!随意玩有辅助吗(辅助... 记者发布!随意玩有辅助吗(辅助挂)开挂透视辅助方法(切实是有挂)-哔哩哔哩在进入随意玩有辅助吗辅助挂...
网友热议!渝都亲友全辅助,皇豪... 网友热议!渝都亲友全辅助,皇豪互众插件,第三方教程(其实真的有挂)-哔哩哔哩1、渝都亲友全辅助系统规...
科技通报!快玩炸翻天辅助工具(... 科技通报!快玩炸翻天辅助工具(辅助挂)开挂透视辅助教程(真是有挂)-哔哩哔哩1、快玩炸翻天辅助工具机...
为切实保障!哥哥打大a游戏攻略... 为切实保障!哥哥打大a游戏攻略,闲逸辅助软件下载,安装教程(切实真的有挂)-哔哩哔哩1、哥哥打大a游...
科技分享!腾威互娱破解辅助工具... 科技分享!腾威互娱破解辅助工具(辅助挂)开挂透视辅助神器(其实真的有挂)-哔哩哔哩1、腾威互娱破解辅...
据公告内容!边锋辅助装备,人海... 据公告内容!边锋辅助装备,人海大厅辅助插件,AI教程(原来有挂)-哔哩哔哩1、下载好人海大厅辅助插件...
让我来分享经验!新鸿狐挂机(辅... 让我来分享经验!新鸿狐挂机(辅助挂)开挂透视辅助app(一贯真的有挂)-哔哩哔哩1、新鸿狐挂机透视辅...
今年以来!金杯竞技辅助,丽水都... 今年以来!金杯竞技辅助,丽水都莱脚本辅助视频,分享教程(真是是真的挂)-哔哩哔哩1、在丽水都莱脚本辅...