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: 传输对象需序列化
posted @   前端小鑫同学  阅读(3)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示