生产者:配置文件

<?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多个队列多种任务同时监听相关推荐

  1. 监听返回app_基于 Redis 消息队列实现 Laravel 事件监听及底层源码探究

    在 Laravel 中,除了使用 dispatch 辅助函数通过 Illuminate\Bus\Dispatcher 显式推送队列任务外,还可以通过事件监听的方式隐式进行队列任务推送,在这个场景下,事 ...

  2. rabbitmq 消费端代码获取队列名称_C#调用RabbitMQ实现消息队列的示例代码

    前言 我在刚接触使用中间件的时候,发现,中间件的使用并不是最难的,反而是中间件的下载,安装,配置才是最难的. 所以,这篇文章我们从头开始学习RabbitMq,真正的从头开始. 关于消息队列 其实消息队 ...

  3. C#调用RabbitMQ实现消息队列

    文章目录 前言 消息队列 准备工作 安装rabbitmq-server RabbitMQ应用 KibaRabbitMQSend KibaRabbitMQReceived 服务器端应用 安装Erlang ...

  4. php mq死信队列,RabbitMQ的死信队列详解

    死信队列介绍 死信队列:DLX,dead-letter-exchange 利用DLX,当消息在一个队列中变成死信 (dead message) 之后,它能被重新publish到另一个Exchange, ...

  5. php代码实现tp5监听队列,thinkPHP5的队列使用

    1.下载tp5的完全包,里面含有queue的扩展.如果没有执行如下命令: composer require topthink/think-queue 1.1.4 2.执行第二步: 执行的队列: nam ...

  6. tp6监听事件+消息队列实现发邮件

    任务队列实现 这里采用的是发邮件的形式 一.首先下载任务队列queue类 composer require topthink/think-queue 查看自己的配置文件: config下queue.p ...

  7. Spring Boot 监听 Redis Key 失效事件实现定时任务

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 作者:彭超 https://antoniopeng.com 业务场 ...

  8. redis过期监听性能_基于Redis的延迟处理

    延迟处理是一个非常常用的一个功能; 例如, 下单成功后,在30分钟内没有支付,自动取消订单; 延迟队列便是延迟处理中最常见的实现方式; 先一起看下JDK中延迟队列是如何实现的. JUC的DelayQu ...

  9. redistemplate 设置失效时间_开发新技能之利用Redis高级用法监听过期键处理失效的订单...

    前言 最近项目区分了不同的订单类型,要求订单的失效时间不一样,比如活动订单的失效时间要短一些.由于之前订单的失效时间都是固定的,现在有些类型的订单过期时间发生变化.因此需要重新处理时效订单. 订单失效 ...

  10. RabbitMQ消息监听(多种模式-fanout/topic)

    1.rabbitmq消息监听,兼容多种模式的消息,fanout/topic等模式 MQ消息配置监听: package com.test.ddyin.conf;import java.util.Hash ...

最新文章

  1. 前谷歌大脑员工创业公司获4000万美元融资,Hinton、李飞飞等支持
  2. ext store 数据修改_Ext 修改Store初始化加载完后修改record属性。
  3. 二十七、Node.js搭建第一个Express应用框架
  4. python交通调查数据处理_python 小型交通调查后的数据处理(数车)
  5. 华为qy2音乐如何转换为mp3_华为手机还有这种骚操作?开启这个功能,让你体验至尊级待遇...
  6. 2005年财富500强(zz)
  7. 【贪心+双指针】LeetCode 11. Container With Most Water
  8. php+getdomfromstring,php使用simple_html_dom解析HTML示例
  9. SCE2007 –安装配置指南
  10. spark安装包_Spark基础:Spark On Yarn(上)
  11. 玩转oracle视频教程(四)百度云
  12. V20西门子变频器怎么选型
  13. windows下C++内存碎片的测试
  14. SAP PO的结算状态
  15. Pale Transformer: A General Vision Transformer Backbone with Pale-Shaped Attention
  16. 中产需要盒马,盒马想要下沉
  17. Dremel的学习与理解
  18. EA周报 | Libra将与支付宝微信展开竞争;Google终止中国版搜索引擎;滴滴柳青:顺风车目前不能上线是因为害怕...
  19. Java Script网页特效实例大全
  20. 十四个很准的心理暗示

热门文章

  1. 重新编译Telepresence,谈如何写编译脚本
  2. JDK默认是little-endian
  3. 博文有了,告诉吾找不到,这怪谁
  4. 吃自己的狗食,用自己的产品——再谈华为芯片
  5. GDT 全局描述符表
  6. 软件测试c语言笔试题目,软件测试笔试题库及答案.docx
  7. C# List;数组[] 转 List 和 List 拼接
  8. python斐波那契数列_python3实现斐波那契数列(4种方法)
  9. 安卓手机状态栏 定位服务自动关闭_【科普知识】手机多久关机一次?看完才知道白用那么多年手机了!...
  10. java更新linux_linux下 更新 java版本