(四)rabbit 入門 :交換機——DirectExchange

DirectExchange是RabbitMQ的默認交換機,直接使用routingKey匹配隊列。

 

demo

新建兩個springboot 項目,consumer 和producer

(一)添加依賴和配置信息兩個項目一樣,端口除外

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

application.properties中添加配置

server.port=7006
spring.rabbitmq.host=139.199.31.248
spring.rabbitmq.port=5672
spring.rabbitmq.username=root
spring.rabbitmq.password=root

(二)配置消費者

添加一個配置類

配置一個routingKey爲lizk.queue01的消息隊列

/**
 * 相當於聲明隊列
 * Created at 2019/11/12
 * Created by lizk
 * Copyright (C) 2019 SAIC VOLKSWAGEN, All rights reserved.
 */
@Configuration
public class DirectConfig {
    @Bean
    public Queue directQueue(){
        return new Queue("lizk.queue01");
    }
}

添加一個消息監聽類

監聽routingKey爲lizk.queue01的隊列消息

/**
 * 文件名
 * Created at 2019/11/12
 * Created by lizk
 * Copyright (C) 2019 SAIC VOLKSWAGEN, All rights reserved.
 */
@Component
@RabbitListener(queues = "lizk.queue01")
public class DirectRecive {
    @RabbitHandler
    public void receive(String msg) {
       System.out.println("接收消息:---"+msg);
    }
}

啓動消費者項目,可以發現管理端多了一個隊列,但是還沒有消息

(三)配置生產者

並寫測試類調用

/**
 * 文件名
 * Created at 2019/11/12
 * Created by lizk
 * Copyright (C) 2019 SAIC VOLKSWAGEN, All rights reserved.
 */
@Component
public class DirectSender {
    @Autowired
    private AmqpTemplate amqpTemplate;
    public void sender(String msg){
        //將消息發送至默認的交換機且routingKey爲lizk.queue01
        amqpTemplate.convertAndSend("lizk.queue01",msg);
        System.out.println("消息發送成功:---"+msg);
    }

}

查看生產者日誌可以發現消息發送成功

查看消費者日誌

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章