RabbitMQ的基本使用
添加依赖
| <dependency> |
| <groupId>org.springframework.boot</groupId> |
| <artifactId>spring-boot-starter-amqp</artifactId> |
| </dependency> |
定义消息接收一
| |
| |
| |
| @Slf4j |
| @Component |
| public class MqReceiver { |
| |
| @RabbitListener(queues = "spoon-queues") |
| public void process(String message) { |
| log.info("MqReceiver: {}", message); |
| } |
| |
| } |
定义消息接收二(自动创建队列)
| |
| |
| |
| @Slf4j |
| @Component |
| public class MqReceiver { |
| |
| @RabbitListener(queuesToDeclare = @Queue("spoon-queues")) |
| public void process(String message) { |
| log.info("MqReceiver: {}", message); |
| } |
| |
| } |
定义消息接收三(自动创建队列+Exchange和Queues绑定)
| |
| |
| |
| @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); |
| } |
| |
| } |
定义消息发送
| |
| |
| |
| @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()); |
错误提示
- Failed to declare queue(s):[spoon-queues]: 消息队列未创建
- SimpleMessageConverter only supports String, byte[] and Serializable payloads, received: 传输对象需序列化
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)