rabbitMq自动创建队列
我们在rabbitmqConfig中配置队列,交换机,绑定关系的时候,启动后,我们会发现rabbitmq中并没有帮我们自动创建这些信息,那么什么时候会创建呢?就是我们连上监听rabbitmq的时候,rabbitmq发现没有这些组件就会自动创建,所以,我们可以在rabbitmqConfig中,编写一个监听方法,让rabbitmq在应用一启动的时候就可以直接创建。
@Configuration
public class RabbitmqConfig {//用于自动创建组件的方法@RabbitListener(queues = "stock.release.stock.queue")public void handle(){}/*** 使用JSON序列化机制,进行消息转换* @return*/@Beanpublic MessageConverter messageConverter() {return new Jackson2JsonMessageConverter();}/*** 库存服务默认的交换机* @return*/@Beanpublic Exchange stockEventExchange() {//String name, boolean durable, boolean autoDelete, Map<String, Object> argumentsTopicExchange topicExchange = new TopicExchange("stock-event-exchange", true, false);return topicExchange;}/*** 普通队列* @return*/@Beanpublic Queue stockReleaseStockQueue() {//String name, boolean durable, boolean exclusive, boolean autoDelete, Map<String, Object> argumentsQueue queue = new Queue("stock.release.stock.queue", true, false, false);return queue;}/*** 延迟队列* @return*/@Beanpublic Queue stockDelay() {HashMap<String, Object> arguments = new HashMap<>();arguments.put("x-dead-letter-exchange", "stock-event-exchange");arguments.put("x-dead-letter-routing-key", "stock.release");// 消息过期时间 2分钟arguments.put("x-message-ttl", 120000);Queue queue = new Queue("stock.delay.queue", true, false, false,arguments);return queue;}/*** 交换机与普通队列绑定* @return*/@Beanpublic Binding stockLocked() {//String destination, DestinationType destinationType, String exchange, String routingKey,// Map<String, Object> argumentsBinding binding = new Binding("stock.release.stock.queue",Binding.DestinationType.QUEUE,"stock-event-exchange","stock.release.#",null);return binding;}/*** 交换机与延迟队列绑定* @return*/@Beanpublic Binding stockLockedBinding() {return new Binding("stock.delay.queue",Binding.DestinationType.QUEUE,"stock-event-exchange","stock.locked",null);}}
rabbitMq自动创建队列相关推荐
- Spring Boot+RocketMQ集群只会在一个Broker中创建队列
问题: 在使用springboot集成RocketMQ Client后,开启自动创建队列,发现只会在一个Broker中创建Topic,但是在短时间内发送多条信息,就可以在集群情况下,在多个Broker ...
- RocketMQ3.2.2生产者发送消息自动创建Topic队列数无法超过4个
问题现象 RocketMQ3.2.2版本,测试时尝试发送消息时自动创建Topic,设置了队列数量为8: producer.setDefaultTopicQueueNums(8); 同时设置broker ...
- C++创建线程实现自动保存队列中的数据
多线程 互斥量mutex CreateMutex()函数可用来创建一个有名或无名的互斥量对象 互斥量: 采用互斥对象机制.互斥锁,像一个物件,这个物件只能同时被一个线程持有. 只有拥有互斥对象的线程才 ...
- RabbitMQ 死信/死信队列
一.RabbitMQ 死信/死信队列 1.DLX Dead Letter Exchange 的缩写 DLX(Dead Letter Exchanges)死信交换,死信队列本身也是一个普通的消息队列,在 ...
- rabbitmq 消费端代码获取队列名称_C#调用RabbitMQ实现消息队列的示例代码
前言 我在刚接触使用中间件的时候,发现,中间件的使用并不是最难的,反而是中间件的下载,安装,配置才是最难的. 所以,这篇文章我们从头开始学习RabbitMq,真正的从头开始. 关于消息队列 其实消息队 ...
- RabbitMQ 的延时队列和镜像队列原理与实战
在阿里云栖开发者沙龙PHP技术专场上,掌阅资深后端工程师.掘金小测<Redis深度历险>作者钱文品为大家介绍了RabbitMQ的延时队列和镜像队列的原理与实践,重点比较了RabbitMQ提 ...
- C#调用RabbitMQ实现消息队列
文章目录 前言 消息队列 准备工作 安装rabbitmq-server RabbitMQ应用 KibaRabbitMQSend KibaRabbitMQReceived 服务器端应用 安装Erlang ...
- RabbitMq(五) -- 死信队列和延迟队列
1. 死信 1.1 死信的概念 先从概念解释上搞清楚这个定义,死信,顾名思义就是无法被消费的消息,字面意思可以这样理解,一般来说,producer 将消息投递到 broker 或者直接到 queue ...
- java如何保证mq一定被消费,RabbitMQ如何保证队列里的消息99.99%被消费?
1. 本篇概要 其实,还有1种场景需要考虑:当消费者接收到消息后,还没处理完业务逻辑,消费者挂掉了,那消息也算丢失了?,比如用户下单,订单中心发送了1个消息到RabbitMQ里的队列,积分中心收到这个 ...
最新文章
- mysql concat 去掉重复_mysql - concat字段具有共同的重复密钥,并删除那些重复项,从而留下一个 - 堆栈内存溢出...
- 让一张图片随着手指的移动而移动
- POJ 3241 Object Clustering(Manhattan MST)
- 如何从一个 C# 的 dump 中挖到机器相关的信息?
- 路由器装上去没有网络_5G网络那么快,今后路由器没有存在的价值了?
- 云开发外卖CPS小程序源码
- 插入移动硬盘_Win10插入移动硬盘或U盘有提示声但电脑中不显示的解决方法
- LeetCode题解之Single Number
- SparkStreaming kafka zookeeper本地环境调试安装
- 人工智能基础——2.3.2产生式系统
- 自己组装的台式电脑怎么安装系统教学
- java画地图_绘制地图(java代码)
- 华硕服务器 u盘安装系统,华硕台式机一键U盘装系统win7教程
- 高通ims架构android,深度揭密高通4/5G移动基带消息系统和状态机
- McAfee解读风险管理之道 企业安全面临新挑战
- 微信视频号从零到月入万元攻略
- 百度发展史,百度发展历程
- DTOJ 4745. 进制转换
- 杭电(杭州电子科技大学)操作系统实验二:Linux内核模块编程
- android日历界面的实现,自定义view之实现日历界面(二)