zoukankan      html  css  js  c++  java
  • SpringCloud RabbitMQ 使用

    第一步:

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

    第二步yml中配置rabbitMq地址:

    spring:
      rabbitmq:
        host: 10.10.10.103
        port: 5672
        username: guest
        password: guest
    

    第三步 接收方:

    package com.example.order.message;
    
    import lombok.extern.slf4j.Slf4j;
    import org.springframework.amqp.rabbit.annotation.Exchange;
    import org.springframework.amqp.rabbit.annotation.Queue;
    import org.springframework.amqp.rabbit.annotation.QueueBinding;
    import org.springframework.amqp.rabbit.annotation.RabbitListener;
    import org.springframework.stereotype.Component;
    
    /**
     * @Title: MqReceiver
     * @ProjectName order
     * @date 2019/11/2011:06
     */
    @Slf4j
    @Component
    public class MqReceiver {
    
        //第一种方法 , 需要先创建队列
        // 1. @RabbitListener(queues = "myQueue")
        /*@RabbitListener(queues = "myQueue")
        public void process1(Object message) {
            log.info("MqReceiver message:{}" , message);
        }*/
    
        //2. 自动创建队列 @RabbitListener(queuesToDeclare = @Queue("myQueue"))
        /*@RabbitListener(queuesToDeclare = @Queue("myQueue"))
        public void process2(Object message) {
            log.info("MqReceiver message:{}" , message);
        }*/
    
        //3. 自动创建, Exchange和Queue绑定
        @RabbitListener(bindings = @QueueBinding(value = @Queue("myQueue"),exchange = @Exchange("myExchange")))
        public void process(String message) {
            log.info("MqReceiver: {}", message);
        }
    
        /**
         * 分组
         * 数码供应商服务 接收消息
         * @param message
         */
        @RabbitListener(bindings = @QueueBinding(exchange = @Exchange("myOrder"),key = "computer",value = @Queue("computerOrder")))
        public void processComputer(String message) {
            log.info("computer MqReceiver: {}", message);
        }
        /**
         * 水果供应商服务 接收消息
         * @param message
         */
        @RabbitListener(bindings = @QueueBinding(exchange = @Exchange("myOrder"),key = "fruit",value = @Queue("fruitOrder")))
        public void processFruit(String message) {
            log.info("fruit MqReceiver: {}", message);
        }
    
    }
    

      

    第四步 发送方:

    package com.example.order.controller;
    
    import org.springframework.amqp.core.AmqpTemplate;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RestController;
    
    import java.util.Date;
    
    /**
     * @Title: MqController
     * @ProjectName order
     * @date 2019/11/2011:32
     */
    @RestController
    @RequestMapping("mq")
    public class MqController {
        @Autowired
        private AmqpTemplate amqpTemplate;
    
        // 第1,2中方式
        @GetMapping("/send1")
        public void send1() {
            amqpTemplate.convertAndSend("myQueue", "now : " + new Date());
        }
    
        // 方式3发送
        @GetMapping("/send2")
        public void send2() {
            amqpTemplate.convertAndSend("myOrder","computer", "now : " + new Date());
        }
        @GetMapping("/send3")
        public void send3() {
            amqpTemplate.convertAndSend("myQueue","myExchange", "now : " + new Date());
        }
        @GetMapping("/send4")
        public void send4() {
            amqpTemplate.convertAndSend("myOrder","fruit", "now : " + new Date());
        }
    
    
    }
    
  • 相关阅读:
    C++中无数据成员的类的对象占用内存大小
    malloc在函数内分配内存问题
    字符数组拷贝与strcpy函数
    Python,anaconda及pycharm安装过程笔记
    DFS-深度优先搜索与BFS-广度优先搜索
    90 k数和 II
    88 Lowest Common Ancestor of a Binary Tree
    AdaBoost笔记之代码
    79 最长公共子串
    78 最长公共前缀
  • 原文地址:https://www.cnblogs.com/412013cl/p/11897760.html
Copyright © 2011-2022 走看看