zoukankan      html  css  js  c++  java
  • 消息队列 (5) RabbtMQ SpringBoot整合

    pom文件引入依赖

    <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-amqp</artifactId>
    </dependency>

    application.ml 配置文件编写

    server:
      port: 9999
    spring:
      rabbitmq:
        host: 10.211.55.4
        virtual-host: local
        port: 5672
        username: admin
        password: admin

    RabbitMQConfig 配置类编写

    @Configuration
    public class RabbitMQConfig {
        public static final String EXCHANGE_NAME = "boot_topic";
        public static final String QUEUE_NAME = "boot_queue";
        public static final String Routing_Key = "boot.#";
    
    
        // 1.交换机
        @Bean("bootExchange")
        public Exchange bootExchange(){
            return ExchangeBuilder.topicExchange(EXCHANGE_NAME).durable(true).build();
        }
    
    
        //2.Queue队列
        @Bean("bootQueue")
        public Queue bootQueue(){
            return QueueBuilder.durable(QUEUE_NAME).build();
        }
    
        //3.绑定交换机和队列
        @Bean
        public Binding bindQueueExchange(@Qualifier("bootQueue") Queue queue,@Qualifier("bootExchange") Exchange exchange){
            return BindingBuilder.bind(queue).to(exchange).with(Routing_Key).noargs();
        }
    }

    发送消息

    @RestController
    public class rabiitController {
    
        @Autowired
        private RabbitTemplate rabbitTemplate;
    
        @RequestMapping("/")
        public void home(){
            rabbitTemplate.convertAndSend(RabbitMQConfig.EXCHANGE_NAME,"boot.test","spring boot rabbit mq");
        }
    }

    启动项目并访问 localhost:9999 没有报错说明调用成功了,这时访问rabiitmq 控制台 http://10.211.55.4:15672/

    接下来编写消费者

    package com.rabiitmq.demo;
    
    import org.springframework.amqp.rabbit.annotation.RabbitListener;
    import org.springframework.stereotype.Component;
    
    @Component
    public class RabbitMQListener {
    
        @RabbitListener(queues = RabbitMQConfig.QUEUE_NAME)
        public void bootConsumer(org.springframework.amqp.core.Message message){
            System.out.println(message);
        }
    }

    注入bean 持续监听队列

    输出内容

    (Body:'spring boot rabbit mq' MessageProperties [headers={}, contentType=text/plain, contentEncoding=UTF-8, contentLength=0, receivedDeliveryMode=PERSISTENT, priority=0, redelivered=false, receivedExchange=boot_topic, receivedRoutingKey=boot.test, deliveryTag=1, consumerTag=amq.ctag-lminlXccIxo288o4leEVDg, consumerQueue=boot_queue])

  • 相关阅读:
    简单的PHP+SMARTY分页类
    三大WEB服务器对比分析(apache ,lighttpd,nginx)
    逐步设置vim C/C++语法高亮显示和自动缩进
    Lighttpd 的安装配置(web服务器软件)
    ASP如何获取文件和目录空间大小
    innerHtml用法
    临时表操作的一些见解(解决了我在存储过程中使用临时表的困惑)
    Javascript的IE和Firefox兼容性汇编
    Javascript的IE和Firefox兼容性汇编
    innerHtml用法
  • 原文地址:https://www.cnblogs.com/baidawei/p/13293564.html
Copyright © 2011-2022 走看看