rabbitMq多个队列多种任务同时监听
生产者:配置文件
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:rabbit="http://www.springframework.org/schema/rabbit"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/rabbit
http://www.springframework.org/schema/rabbit/spring-rabbit-1.0.xsd">
<!--配置connection-factory,指定连接rabbit server参数 -->
<rabbit:connection-factory id="connectionFactory" username="" password="" host="120.24.247.47" port="5672" />
<!--定义rabbit template用于数据的接收和发送 配置连接工厂 设置任务key 设置交换机名称 -->
<rabbit:template id="amqpTemplate" connection-factory="connectionFactory" exchange="eOrderWlwFx" routing-key="routing-key" />
<!--定义queue -->
<!-- <rabbit:queue name="myQueue0" /> -->
<rabbit:queue name="myQueue1" />
<rabbit:queue name="myQueue2" />
<rabbit:queue name="myQueue3" />
<rabbit:queue name="myQueue4" />
<!--根据任务key 进行绑定队列 pattern 匹配内容-->
<rabbit:topic-exchange name="myExchange">
<rabbit:bindings>
<rabbit:binding queue="myQueue1" pattern="foo1" />
<rabbit:binding queue="myQueue2" pattern="foo2" />
<rabbit:binding queue="myQueue3" pattern="foo3" />
<rabbit:binding queue="myQueue4" pattern="foo4" />
</rabbit:bindings>
</rabbit:topic-exchange>
<!--通过指定下面的admin信息,当前producer中的exchange和queue会在rabbitmq服务器上自动生成 -->
<rabbit:admin connection-factory="connectionFactory" />
</beans>
消息发送方法
// exchange 指定交换机 routingKey 设置任务key用于绑定队列 object 任务消息内容
public void sendMessage(String exchange, String routingKey, Object object) {
amqpTemplate.convertAndSend(exchange, routingKey, object);
}
消费者
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:rabbit="http://www.springframework.org/schema/rabbit"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/rabbit
http://www.springframework.org/schema/rabbit/spring-rabbit-1.0.xsd">
<rabbit:connection-factory id="connectionFactory" username="guest" password="guest" host="127.0.0.1" port="5672" />
<rabbit:template id="amqpTemplate" connection-factory="connectionFactory"/>
<!-- 指定队列执行的方法 这里也可以指定不同的bean -->
<rabbit:listener-container connection-factory="connectionFactory" >
<rabbit:listener ref="Listener" method="method1" queue-names="myQueue1" />
<rabbit:listener ref="Listener" method="method2" queue-names="myQueue2" />
<rabbit:listener ref="Listener" method="method3" queue-names="myQueue3" />
<rabbit:listener ref="Listener" method="method4" queue-names="myQueue4" />
</rabbit:listener-container>
<bean id="Listener" class="ListenerClass" />
</beans>
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:rabbit="http://www.springframework.org/schema/rabbit"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/rabbit
http://www.springframework.org/schema/rabbit/spring-rabbit-1.0.xsd">
<!--配置connection-factory,指定连接rabbit server参数
<rabbit:connection-factory id="connectionFactory"
username="" password="" host="localhost" port="5672" />-->
<!--定义rabbit template用于数据的接收和发送
<rabbit:template id="amqpTemplate" connection-factory="connectionFactory"
exchange="exchangeTest" /> -->
<!--通过指定下面的admin信息,当前producer中的exchange和queue会在rabbitmq服务器上自动生成
<rabbit:admin connection-factory="connectionFactory" />-->
<!--定义queue
<rabbit:queue name="queueTest" durable="true" auto-delete="false" exclusive="false" />-->
<!-- 定义direct exchange,绑定queueTest
<rabbit:direct-exchange name="exchangeTest" durable="true" auto-delete="false">
<rabbit:bindings>
<rabbit:binding queue="queueTest" key="queueTestKey"></rabbit:binding>
</rabbit:bindings>
</rabbit:direct-exchange>-->
<!-- 消息接收者
<bean id="messageReceiver" class="com.lin.consumer.MessageConsumer"></bean> -->
<!-- queue litener 观察 监听模式 当有消息到达时会通知监听在对应的队列上的监听对象
<rabbit:listener-container connection-factory="connectionFactory">
<rabbit:listener queues="queueTest" ref="messageReceiver"/>
</rabbit:listener-container>-->
<!-- <rabbit:connection-factory id="connectionFactory" username="guest" password="guest" host="120.25.106.156" port="5672" />
-->
<rabbit:connection-factory id="connectionFactory" username="guest" password="guest" host="120.24.247.47" port="5672" />
<rabbit:template id="amqpTemplate" connection-factory="connectionFactory"/>
<!--
<rabbit:topic-exchange name="myExchange5">
<rabbit:bindings>
<rabbit:binding queue="myQueue" pattern="foo.*" />
</rabbit:bindings>
<rabbit:listener ref="orderListener" method="listen" queue-names="queueLywlFx" />
</rabbit:topic-exchange> -->
<rabbit:listener-container connection-factory="connectionFactory" >
<rabbit:listener ref="orderListener" method="DxSingle" queue-names="DxSingle" />
<rabbit:listener ref="orderListener" method="DxRecover" queue-names="DxRecover" />
<rabbit:listener ref="orderListener" method="DxUnsub" queue-names="DxUnsub" />
<rabbit:listener ref="orderListener" method="DxOrderFlow" queue-names="DxOrderFlow" />
<rabbit:listener ref="orderListener" method="DxFlowAlarm" queue-names="DxFlowAlarm" />
<rabbit:listener ref="orderListener" method="LtChangeDC" queue-names="ltChangeDC" />
<rabbit:listener ref="orderListener" method="LtChangeStatus" queue-names="ltChangeStatus" />
<rabbit:listener ref="orderListener" method="LtRecharge" queue-names="ltRecharge" />
</rabbit:listener-container>
<bean id="orderListener" class="cn.mofiman.lywl.mq.Listener" />
</beans>
转载于:https://www.cnblogs.com/qinshuipo/articles/6655279.html
rabbitMq多个队列多种任务同时监听相关推荐
- 监听返回app_基于 Redis 消息队列实现 Laravel 事件监听及底层源码探究
在 Laravel 中,除了使用 dispatch 辅助函数通过 Illuminate\Bus\Dispatcher 显式推送队列任务外,还可以通过事件监听的方式隐式进行队列任务推送,在这个场景下,事 ...
- rabbitmq 消费端代码获取队列名称_C#调用RabbitMQ实现消息队列的示例代码
前言 我在刚接触使用中间件的时候,发现,中间件的使用并不是最难的,反而是中间件的下载,安装,配置才是最难的. 所以,这篇文章我们从头开始学习RabbitMq,真正的从头开始. 关于消息队列 其实消息队 ...
- C#调用RabbitMQ实现消息队列
文章目录 前言 消息队列 准备工作 安装rabbitmq-server RabbitMQ应用 KibaRabbitMQSend KibaRabbitMQReceived 服务器端应用 安装Erlang ...
- php mq死信队列,RabbitMQ的死信队列详解
死信队列介绍 死信队列:DLX,dead-letter-exchange 利用DLX,当消息在一个队列中变成死信 (dead message) 之后,它能被重新publish到另一个Exchange, ...
- php代码实现tp5监听队列,thinkPHP5的队列使用
1.下载tp5的完全包,里面含有queue的扩展.如果没有执行如下命令: composer require topthink/think-queue 1.1.4 2.执行第二步: 执行的队列: nam ...
- tp6监听事件+消息队列实现发邮件
任务队列实现 这里采用的是发邮件的形式 一.首先下载任务队列queue类 composer require topthink/think-queue 查看自己的配置文件: config下queue.p ...
- Spring Boot 监听 Redis Key 失效事件实现定时任务
点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 作者:彭超 https://antoniopeng.com 业务场 ...
- redis过期监听性能_基于Redis的延迟处理
延迟处理是一个非常常用的一个功能; 例如, 下单成功后,在30分钟内没有支付,自动取消订单; 延迟队列便是延迟处理中最常见的实现方式; 先一起看下JDK中延迟队列是如何实现的. JUC的DelayQu ...
- redistemplate 设置失效时间_开发新技能之利用Redis高级用法监听过期键处理失效的订单...
前言 最近项目区分了不同的订单类型,要求订单的失效时间不一样,比如活动订单的失效时间要短一些.由于之前订单的失效时间都是固定的,现在有些类型的订单过期时间发生变化.因此需要重新处理时效订单. 订单失效 ...
- RabbitMQ消息监听(多种模式-fanout/topic)
1.rabbitmq消息监听,兼容多种模式的消息,fanout/topic等模式 MQ消息配置监听: package com.test.ddyin.conf;import java.util.Hash ...
最新文章
- 前谷歌大脑员工创业公司获4000万美元融资,Hinton、李飞飞等支持
- ext store 数据修改_Ext 修改Store初始化加载完后修改record属性。
- 二十七、Node.js搭建第一个Express应用框架
- python交通调查数据处理_python 小型交通调查后的数据处理(数车)
- 华为qy2音乐如何转换为mp3_华为手机还有这种骚操作?开启这个功能,让你体验至尊级待遇...
- 2005年财富500强(zz)
- 【贪心+双指针】LeetCode 11. Container With Most Water
- php+getdomfromstring,php使用simple_html_dom解析HTML示例
- SCE2007 –安装配置指南
- spark安装包_Spark基础:Spark On Yarn(上)
- 玩转oracle视频教程(四)百度云
- V20西门子变频器怎么选型
- windows下C++内存碎片的测试
- SAP PO的结算状态
- Pale Transformer: A General Vision Transformer Backbone with Pale-Shaped Attention
- 中产需要盒马,盒马想要下沉
- Dremel的学习与理解
- EA周报 | Libra将与支付宝微信展开竞争;Google终止中国版搜索引擎;滴滴柳青:顺风车目前不能上线是因为害怕...
- Java Script网页特效实例大全
- 十四个很准的心理暗示
热门文章
- 重新编译Telepresence,谈如何写编译脚本
- JDK默认是little-endian
- 博文有了,告诉吾找不到,这怪谁
- 吃自己的狗食,用自己的产品——再谈华为芯片
- GDT 全局描述符表
- 软件测试c语言笔试题目,软件测试笔试题库及答案.docx
- C# List;数组[] 转 List 和 List 拼接
- python斐波那契数列_python3实现斐波那契数列(4种方法)
- 安卓手机状态栏 定位服务自动关闭_【科普知识】手机多久关机一次?看完才知道白用那么多年手机了!...
- java更新linux_linux下 更新 java版本