• spring封装的RabbitMQ


      spring这么牛逼的团队,封装了RabbitMQ,简化了RabbitMQ的使用,那肯定是要使用spring-rabbit了

    一、简介

    二、使用方法

    1、消费者

    1 public class Foo {
    2 
    3     //具体执行业务的方法
    4     public void listen(String foo) {
    5         System.out.println("消费者: " + foo);
    6     }
    7 }

    2、生产者

    public class SpringMain {
        
        public static void main(final String... args) throws Exception {
            AbstractApplicationContext ctx = new ClassPathXmlApplicationContext(
                    "classpath:spring/rabbitmq-context.xml");
            //RabbitMQ模板
            RabbitTemplate template = ctx.getBean(RabbitTemplate.class);
            //发送消息
            template.convertAndSend("Hello, world!");
            Thread.sleep(1000);// 休眠1秒
            ctx.destroy(); //容器销毁
        }
    }

    注意:这个好像是前面的类似创建交换机、创建队列、以及交换机和队列的绑定,似乎都没有看到,不是不见了,而是都放到配置文件中去了

    3、配置文件

    3.1 定义连接工厂

    1     <!-- 定义RabbitMQ的连接工厂 -->
    2     <rabbit:connection-factory id="connectionFactory"
    3         host="127.0.0.1" port="5672" username="taotao" password="taotao"
    4         virtual-host="/taotao" />

    3.2 定义模板(可以指定交换机或队列)

    1     <!-- 定义Rabbit模板,指定连接工厂以及定义exchange -->
    2     <rabbit:template id="amqpTemplate" connection-factory="connectionFactory" exchange="fanoutExchange" />

    3.3 定义队列、交换机、以及完成队列和交换机的绑定

    1     <!-- 定义队列,自动声明 -->
    2     <rabbit:queue name="myQueue" auto-declare="true" durable="false"/>
    3     
    4     <!-- 定义交换器,自动声明 -->
    5     <rabbit:fanout-exchange name="fanoutExchange" auto-declare="true" durable="false">
    6         <rabbit:bindings>
    7             <rabbit:binding queue="myQueue"/>
    8         </rabbit:bindings>
    9     </rabbit:fanout-exchange>

    3.4 定义监听

    1     <!-- 队列监听 -->
    2     <rabbit:listener-container connection-factory="connectionFactory">
    3         <rabbit:listener ref="foo" method="listen" queue-names="myQueue" />
    4     </rabbit:listener-container>
    5 
    6     <bean id="foo" class="cn.itcast.rabbitmq.spring.Foo" />

    3.5 定义管理,用于管理队列、交换机等

    1     <!-- MQ的管理,包括队列、交换器等 -->
    2     <rabbit:admin connection-factory="connectionFactory" />

    三、持久化交换机和队列

    持久化:将交换机或队列的数据保存到磁盘,服务器宕机或重启之后依然存在。

    非持久化:将交换机或队列的数据保存到内存,服务器宕机或重启之后将不存在。

    非持久化的性能高于持久化。

    如何选择持久化?非持久化?  --看需求。

  • 相关阅读:
    Dictionary用法详解
    List与IList的区别
    接口
    C# List<T>用法详解
    c#FileStream文件读写
    学习如何用VS2010创建ocx控件
    sql server零碎知识
    BinaryWriter和BinaryReader用法
    通讯录源程序分析
    美丽说
  • 原文地址:https://www.cnblogs.com/ssh-html/p/10548099.html
Copyright © 2020-2023  润新知