zoukankan      html  css  js  c++  java
  • AMQP消息队列之RabbitMQ简单示例


    前面一篇文章讲了如何快速搭建一个ActiveMQ的示例程序,ActiveMQ是JMS的实现,那这篇文章就再看下另外一种消息队列AMQP的代表实现RabbitMQ的简单示例吧。在具体讲解之前,先通过一个图来概览下:

    1.添加Maven依赖

            <!-- rabbitmq begin -->
            <dependency>
                <groupId>org.springframework.amqp</groupId>
                <artifactId>spring-rabbit</artifactId>
                <version>1.7.2.RELEASE</version>
            </dependency>
            <!-- rabbitmq end -->

    2.Spring配置文件中添加rabbitmq相关配置

    1)消息发送

    <!--配置connection-factory,指定连接rabbit server参数 -->
        <rabbit:connection-factory id="connectionFactory"
            host="127.0.0.1"
            port="5672"
            username="guest"
            password="guest"/>
    
        <!--定义rabbit template用于数据的接收和发送 -->
        <rabbit:template id="amqpTemplate"  connection-factory="connectionFactory"
                         exchange="bounter.fanout" routing-key="bounter.key" />
    
        <!--通过指定下面的admin信息,当前producer中的exchange和queue会在rabbitmq服务器上自动生成 -->
        <rabbit:admin connection-factory="connectionFactory" />
    
        <!--定义queue -->
        <rabbit:queue name="bounter.queue" />
    
    <!-- 定义fanout exchange,发布订阅模式 -->
        <rabbit:fanout-exchange name="bounter.fanout">
            <rabbit:bindings>
                <rabbit:binding queue="bounter.queue" />
            </rabbit:bindings>
        </rabbit:fanout-exchange>

    2)消息接收

    <!--定义接收消息的监听器容器-->
        <rabbit:listener-container connection-factory="connectionFactory">
            <rabbit:listener ref="amqpFanoutListener" method="onFanout" queue-names="bounter.queue" />
            <!--<rabbit:listener ref="amqpDirectListener" method="onDirect" queue-names="bounter.queue" />-->
        </rabbit:listener-container>
    3.定义消息发送器和消息监听器
     
    具体请参考项目源码中sender包和receiver包中代码
     
     
    4.测试消息收发
     
    具体请参考项目源码中的单元测试类RabbitMQTest
     
     
    是不是觉得很简单哉!那就赶快自己动手试试吧!有好的意见或建议欢迎留言!
     
    github源码地址: https://github.com/13babybear/mq-client
  • 相关阅读:
    UVALive 7752 Free Figurines (瞎搞)
    ifram的使用 左边是<a>链接 右边是对应网页嵌套的显示网页链接内容 和toggle的收放用法
    java.util.Collections.synchronizedSet()方法的使用
    hibernate的反向生成改懒加载的地方
    SSM的XML和WEB.XML的配置
    通过System获取java环境变量的路径
    Java:对象的强、软、弱和虚引用的区别
    Struts2方法调用的三种方式(有新的!调用方法的说明)
    静态代理,动态代理,Cglib代理详解
    spring自定义注解拦截器的配置
  • 原文地址:https://www.cnblogs.com/gdufs/p/6850563.html
Copyright © 2011-2022 走看看