文档章节

Spring 配置RabbitMQ

y
 yan5845hao
发布于 2017/05/21 15:24
字数 630
阅读 23
收藏 0

需要使用的包

 <dependency>
     <groupId>org.springframework.amqp</groupId>
     <artifactId>spring-amqp</artifactId>
     <version>1.0.0.RELEASE</version>
</dependency>
<dependency>
       <groupId>org.springframework.amqp</groupId>
       <artifactId>spring-rabbit</artifactId>
       <version>1.0.0.RELEASE</version>
</dependency>

fanout交换器配置

    <!-- 连接rabbitmq-->
    <rabbit:connection-factory id="connectionFactory"
        host="10.211.55.8" port="5672"
        username="uwo" password="yan5845hao"
        virtual-host="/"/>
    
    <rabbit:admin connection-factory="connectionFactory"/>

    <!-- 声明队列-->
    <rabbit:queue name="uwo.rabbitMQ.test" durable="true" auto-delete="false" exclusive="false" />
    <!--Fanout: 不管消息的routing key和参数表的头信息/值是什么, 消息将会路由到该队列上。-->
    <rabbit:fanout-exchange name="uwo.fanout" durable="true" auto-delete="false">
        <rabbit:bindings>
            <rabbit:binding queue="uwo.rabbitMQ.test"/>
        </rabbit:bindings>
    </rabbit:fanout-exchange>

    <!--定义rabbit template用于数据的接收和发送-->
    <rabbit:template id="rabbitTemplate"  exchange="uwo.fanout" connection-factory="connectionFactory"/>

    <!-- 监听的队列-->
    <rabbit:listener-container connection-factory="connectionFactory" acknowledge="auto">
        <rabbit:listener ref="listen"  method="listen" queue-names="uwo.rabbitMQ.test" />
    </rabbit:listener-container>

    <!-- 监听器-->
    <bean id="listen" class="com.uwo.resources.ui.mq.QueueListener"/>

topic交换器配置

    <!-- 连接rabbitmq-->
    <rabbit:connection-factory id="connectionFactory"
        host="10.211.55.8" port="5672"
        username="uwo" password="yan5845hao"
        virtual-host="/"/>
    
    <rabbit:admin connection-factory="connectionFactory"/>

    <!-- 声明队列-->
    <rabbit:queue name="uwo.rabbitMQ.test" durable="true" auto-delete="false" exclusive="false" />
    <!--Fanout: 不管消息的routing key和参数表的头信息/值是什么, 消息将会路由到该队列上。-->
    <rabbit:topic-exchange name="uwo.topic" durable="true" auto-delete="false">
        <rabbit:bindings>
            <rabbit:binding queue="uwo.rabbitMQ.test" pattern="#.asm" />
            <rabbit:binding queue="uwo.rabbitMQ.test" pattern="#.aspectj" />
        </rabbit:bindings>
    </rabbit:topic-exchange>

    <!--定义rabbit template用于数据的接收和发送-->
    <rabbit:template id="rabbitTemplate"  exchange="uwo.topic" connection-factory="connectionFactory"/>

    <!-- 监听的队列-->
    <rabbit:listener-container connection-factory="connectionFactory" acknowledge="auto">
        <rabbit:listener ref="listen"  method="listen" queue-names="uwo.rabbitMQ.test" />
    </rabbit:listener-container>

    <!-- 监听器-->
    <bean id="listen" class="com.uwo.resources.ui.mq.QueueListener"/>

direct交换器配置

    <!-- 连接rabbitmq-->
    <rabbit:connection-factory id="connectionFactory"
        host="10.211.55.8" port="5672"
        username="uwo" password="yan5845hao"
        virtual-host="/"/>
    
    <rabbit:admin connection-factory="connectionFactory"/>

    <!-- 声明队列-->
    <rabbit:queue name="uwo.rabbitMQ.test" durable="true" auto-delete="false" exclusive="false" />
    <!--Fanout: 不管消息的routing key和参数表的头信息/值是什么, 消息将会路由到该队列上。-->
    <rabbit:direct-exchange name="uwo.direct" durable="true" auto-delete="false">
        <rabbit:bindings>
            <rabbit:binding queue="uwo.rabbitMQ.test" key="com.uwo.asm"></rabbit:binding>
            <rabbit:binding queue="uwo.rabbitMQ.test" key="com.uwo.aspectj"></rabbit:binding>
        </rabbit:bindings>
    </rabbit:direct-exchange>

    <!--定义rabbit template用于数据的接收和发送-->
    <rabbit:template id="rabbitTemplate"  exchange="uwo.direct" connection-factory="connectionFactory"/>

    <!-- 监听的队列-->
    <rabbit:listener-container connection-factory="connectionFactory" acknowledge="auto">
        <rabbit:listener ref="listen"  method="listen" queue-names="uwo.rabbitMQ.test" />
    </rabbit:listener-container>

    <!-- 监听器-->
    <bean id="listen" class="com.uwo.resources.ui.mq.QueueListener"/>

headers交换器配置

    <!-- 连接rabbitmq-->
    <rabbit:connection-factory id="connectionFactory"
        host="10.211.55.8" port="5672"
        username="uwo" password="yan5845hao"
        virtual-host="/"/>
    
    <rabbit:admin connection-factory="connectionFactory"/>

    <!-- 声明队列-->
    <rabbit:queue name="uwo.rabbitMQ.test" durable="true" auto-delete="false" exclusive="false" />
    <!--Fanout: 不管消息的routing key和参数表的头信息/值是什么, 消息将会路由到该队列上。-->
    <rabbit:headers-exchange name="uwo.headers" durable="true" auto-delete="false">
        <rabbit:bindings>
            <rabbit:binding queue="uwo.rabbitMQ.test" key="uwo" value="yanhao"></rabbit:binding>
            <rabbit:binding queue="uwo.rabbitMQ.test" key="YH" value="uwowu"></rabbit:binding>
        </rabbit:bindings>
    </rabbit:headers-exchange>

    <!--定义rabbit template用于数据的接收和发送-->
    <rabbit:template id="rabbitTemplate"  exchange="uwo.headers" connection-factory="connectionFactory"/>

    <!-- 监听的队列-->
    <rabbit:listener-container connection-factory="connectionFactory" acknowledge="auto">
        <rabbit:listener ref="listen"  method="listen" queue-names="uwo.rabbitMQ.test" />
    </rabbit:listener-container>

    <!-- 监听器-->
    <bean id="listen" class="com.uwo.resources.ui.mq.QueueListener"/>

© 著作权归作者所有

共有 人打赏支持
y
粉丝 7
博文 120
码字总数 21437
作品 0
扬州
程序员
阿里云Kubernetes SpringCloud 实践进行时(2): 分布式配置管理

简介 为了更好地支撑日益增长的庞大业务量,我们常常需要把服务进行整合、拆分,使我们的服务不仅能通过集群部署抵挡流量的冲击,又能根据业务在其上进行灵活的扩展。随着分布式的普及、服务...

osswangxining
05/25
0
0
RabbitMQ 入门 与 RabbitMQ 在 Spring Boot 中的使用

Message Broker与AMQP简介 Message Broker是一种消息验证、传输、路由的架构模式,其设计目标主要应用于下面这些场景: 消息路由到一个或多个目的地 消息转化为其他的表现方式 执行消息的聚集...

Anur
09/13
0
0
RabbitMQ学习以及与Spring的集成(三)

本文介绍RabbitMQ与Spring的简单集成以及消息的发送和接收。 在RabbitMQ的Spring配置文件中,首先需要增加命名空间。 xmlns:rabbit="http://www.springframework.org/schema/rabbit" 其次是模...

onedotdot
06/18
0
0
SpringBoot | 第十二章:RabbitMQ的集成和使用

前言 上节讲了缓存数据库的使用,在实际工作中,一般上在系统或者应用间通信或者进行异步通知(登录后发送短信或者邮件等)时,都会使用消息队列进行解决此业务场景的解耦问题。这章节讲解下消...

oKong
07/25
0
0
通过实例理解 RabbitMQ 的基本概念

先说下自己开发的实例。 最近在使用 Spring Cloud Config 做分布式配置中心(基于 SVN/Git),当所有服务启动后,SVN/Git 中的配置文件更改后,客户端服务读取的还是旧的配置,并不能实时读取...

xumaojun
05/06
0
0

没有更多内容

加载失败,请刷新页面

加载更多

70.shell的函数 数组 告警系统需求分析

20.16/20.17 shell中的函数 20.18 shell中的数组 20.19 告警系统需求分析 20.16/20.17 shell中的函数: ~1. 函数就是把一段代码整理到了一个小单元中,并给这个小单元起一个名字,当用到这段...

王鑫linux
今天
2
0
分布式框架spring-session实现session一致性使用问题

前言:项目中使用到spring-session来缓存用户信息,保证服务之间session一致性,但是获取session信息为什么不能再服务层获取? 一、spring-session实现session一致性方式 用户每一次请求都会...

WALK_MAN
今天
5
0
C++ yield()与sleep_for()

C++11 标准库提供了yield()和sleep_for()两个方法。 (1)std::this_thread::yield(): 线程调用该方法时,主动让出CPU,并且不参与CPU的本次调度,从而让其他线程有机会运行。在后续的调度周...

yepanl
今天
4
0
Java并发编程实战(chapter_3)(线程池ThreadPoolExecutor源码分析)

这个系列一直没再写,很多原因,中间经历了换工作,熟悉项目,熟悉新团队等等一系列的事情。并发课题对于Java来说是一个又重要又难的一大块,除非气定神闲、精力满满,否则我本身是不敢随便写...

心中的理想乡
今天
35
0
shell学习之获取用户的输入命令read

在运行脚本的时候,命令行参数是可以传入参数,还有就是在脚本运行过程中需要用户输入参数,比如你想要在脚本运行时问个问题,并等待运行脚本的人来回答。bash shell为此提 供了read命令。 ...

woshixin
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部