RabbitMQ的基本使用

简介: RabbitMQ的基本使用

RabbitMQ的基本使用


添加依赖

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


定义消息接收一

/*
    接收MQ消息
*/
@Slf4j
@Component
public class MqReceiver {
    @RabbitListener(queues = "spoon-queues")
    public void process(String message) {
        log.info("MqReceiver: {}", message);
    }
}


定义消息接收二(自动创建队列)

/*
    接收MQ消息
*/
@Slf4j
@Component
public class MqReceiver {
    @RabbitListener(queuesToDeclare = @Queue("spoon-queues"))
    public void process(String message) {
        log.info("MqReceiver: {}", message);
    }
}


定义消息接收三(自动创建队列+Exchange和Queues绑定)

/*
    接收MQ消息
*/
@Slf4j
@Component
public class MqReceiver {
    @RabbitListener(bindings = @QueueBinding(
            value = @Queue("spoon-queues"),
            exchange = @Exchange("spoon-exchange")
    ))
    public void process(String message) {
        log.info("MqReceiver: {}", message);
    }
}


定义消息发送

/*
    发送MQ消息
 */
@SpringBootTest
class RabbitMqTestApplicationTests {
    @Autowired
    private AmqpTemplate amqpTemplate;
    @Test
    void contextLoads() {
        amqpTemplate.convertAndSend("spoon-queues", "now : " + new Date());
    }
}


定义消息接收三演示


消息接收方

/*
    数码供应商 接收消息
 */
@RabbitListener(bindings = @QueueBinding(
        exchange = @Exchange("spoon-order"),
        key = "computer",
        value = @Queue("queues-computer-order")
))
public void processComputer(String message) {
    log.info("Computer MqReceiver: {}", message);
}
/*
    水果供应商 接收消息
 */
@RabbitListener(bindings = @QueueBinding(
        exchange = @Exchange("spoon-order"),
        key = "fruit",
        value = @Queue("queues-fruit-order")
))
public void processFruit(String message) {
    log.info("Fruit MqReceiver: {}", message);
}


消息发送方

amqpTemplate.convertAndSend("spoon-order", "computer", "now : " + new Date());


错误提示

  1. Failed to declare queue(s):[spoon-queues]: 消息队列未创建
  2. SimpleMessageConverter only supports String, byte[] and Serializable payloads, received: 传输对象需序列化



相关实践学习
RocketMQ一站式入门使用
从源码编译、部署broker、部署namesrv,使用java客户端首发消息等一站式入门RocketMQ。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
相关文章
|
消息中间件 Java Docker
Spring Boot2.x-15 整合RabbitMQ 及RabbitMQ的基本使用
Spring Boot2.x-15 整合RabbitMQ 及RabbitMQ的基本使用
101 0
|
消息中间件 网络架构
9、RabbitMQ教程-Topic Exchange类型的基本使用demo
9、RabbitMQ教程-Topic Exchange类型的基本使用demo
111 0
9、RabbitMQ教程-Topic Exchange类型的基本使用demo
|
消息中间件
8、RabbitMQ教程-Direct Exchange类型的基本使用demo
8、RabbitMQ教程-Direct Exchange类型的基本使用demo
111 0
8、RabbitMQ教程-Direct Exchange类型的基本使用demo
|
消息中间件
7、RabbitMQ教程-Fanout Exchange类型的基本使用demo
7、RabbitMQ教程-Fanout Exchange类型的基本使用demo
93 0
7、RabbitMQ教程-Fanout Exchange类型的基本使用demo
|
消息中间件 JSON Java
【SpringBoot MQ 系列】RabbitMq 消息发送基本使用姿势
前面两篇博文,分别介绍了RabbitMq的核心知识点,以及整合SpringBoot的demo应用;接下来也该进入正题,看一下SpringBoot的环境下,如何玩转rabbitmq
624 0
【SpringBoot MQ 系列】RabbitMq 消息发送基本使用姿势
|
10月前
|
消息中间件 Linux
centos7 yum快速安装rabbitmq服务
centos7 yum快速安装rabbitmq服务
150 0
|
10月前
|
消息中间件 中间件 微服务
RabbitMQ 入门简介及安装
RabbitMQ 入门简介及安装
91 0
|
10月前
|
消息中间件 Ubuntu Shell
ubuntu安装rabbitmq教程 避坑
ubuntu安装rabbitmq教程 避坑
341 0
|
10月前
|
消息中间件 存储 网络协议
Rabbitmq的安装与使用
Rabbitmq的安装与使用
234 0
|
11月前
|
消息中间件 数据安全/隐私保护 Windows
【MQ】Windows上RabbitMQ的安装与启动
【MQ】Windows上RabbitMQ的安装与启动
258 0