(四)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);
    }

}

查看生产者日志可以发现消息发送成功

查看消费者日志

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