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])

  • 相关阅读:
    JVM常用参数设置
    Jstat在分析java的内存GC时的应用
    jstack来分析linux服务器上Java应用服务性能异常
    linux 远程连接服务器ftp命令整理
    LR11中webservice协议的性能测试应用
    Windbg在.net性能问题排查hang情况的应用思路
    Windbg基本命令应用总结
    LR11直接对数据库访问操作方法在性能测试中的应用总结
    BenchmarkSQL v5.0测试达梦数据库
    SSH登录时间久,登录后报错:'abrt-cli status' timed out
  • 原文地址:https://www.cnblogs.com/baidawei/p/13293564.html
Copyright © 2011-2022 走看看