前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >RabbitMQ的基本使用

RabbitMQ的基本使用

作者头像
前端小鑫同学
发布2022-12-24 11:01:19
2120
发布2022-12-24 11:01:19
举报

RabbitMQ的基本使用

添加依赖

代码语言:javascript
复制
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-amqp</artifactId>
</dependency>

定义消息接收一

代码语言:javascript
复制
/*
    接收MQ消息
*/
@Slf4j
@Component
public class MqReceiver {

    @RabbitListener(queues = "spoon-queues")
    public void process(String message) {
        log.info("MqReceiver: {}", message);
    }

}

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

代码语言:javascript
复制
/*
    接收MQ消息
*/
@Slf4j
@Component
public class MqReceiver {

    @RabbitListener(queuesToDeclare = @Queue("spoon-queues"))
    public void process(String message) {
        log.info("MqReceiver: {}", message);
    }

}

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

代码语言:javascript
复制
/*
    接收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);
    }

}

定义消息发送

代码语言:javascript
复制
/*
    发送MQ消息
 */
@SpringBootTest
class RabbitMqTestApplicationTests {

    @Autowired
    private AmqpTemplate amqpTemplate;

    @Test
    void contextLoads() {
        amqpTemplate.convertAndSend("spoon-queues", "now : " + new Date());
    }

}

定义消息接收三演示

消息接收方
代码语言:javascript
复制
/*
    数码供应商 接收消息
 */
@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);
}
消息发送方
代码语言:javascript
复制
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: 传输对象需序列化
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-06-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • RabbitMQ的基本使用
    • 添加依赖
      • 定义消息接收一
        • 定义消息接收二(自动创建队列)
          • 定义消息接收三(自动创建队列+Exchange和Queues绑定)
            • 定义消息发送
              • 定义消息接收三演示
                • 消息接收方
                • 消息发送方
              • 错误提示
              相关产品与服务
              消息队列
              腾讯云消息队列 TDMQ 是分布式架构中的重要组件,提供异步通信的基础能力,通过应用解耦降低系统复杂度,提升系统可用性和可扩展性。TDMQ 产品系列提供丰富的产品形态,包含 CKafka、RocketMQ、RabbitMQ、Pulsar、CMQ 五大产品,覆盖在线和离线场景,满足金融、互联网、教育、物流、能源等不同行业和场景的需求。
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档