赞
踩
转自:https://www.extlight.com/2018/01/26/Spring-Boot-%E5%85%A5%E9%97%A8%E4%B9%8B%E6%B6%88%E6%81%AF%E4%B8%AD%E9%97%B4%E4%BB%B6%E7%AF%87%EF%BC%88%E4%BA%94%EF%BC%89/#more
在消息中间件中有 2 个重要的概念:消息代理和目的地。当消息发送者发送消息后,消息就被消息代理接管,消息代理保证消息传递到指定目的地。
我们常用的消息代理有 JMS 和 AMQP 规范。对应地,它们常见的实现分别是 ActiveMQ 和 RabbitMQ。
上篇文章《Spring Boot 入门之缓存和 NoSQL 篇(四)》。
|
|
|
|
此处 spring.activemq.pool.enabled=false,表示关闭连接池。
配置类:
|
|
负责创建队列和主题。
消息生产者:
|
|
消息消费者:
|
|
消息消费者使用 @JmsListener 注解监听消息。
|
|
打印结果:
|
|
测试发布/订阅模式时,设置 spring.jms.pub-sub-domain=true
|
|
|
|
|
|
配置类:
|
|
RabbitMQ 有多种工作模式,因此配置比较多。想了解相关内容的读者可以查看本站的《RabbitMQ 工作模式介绍》或者自行百度相关资料。
消息生产者:
|
|
消息消费者:
|
|
消息消费者使用 @RabbitListener 注解监听消息。
|
|
测试结果略过。。。
踩坑提醒1:ACCESS_REFUSED - Login was refused using authentication mechanism PLAIN
解决方案:
1) 请确保用户名和密码是否正确,需要注意的是用户名和密码的值是否包含空格或制表符(笔者测试时就是因为密码多了一个制表符导致认证失败)。
2) 如果测试账户使用的是 guest,需要修改 rabbitmq.conf 文件。在该文件中添加 “loopback_users = none” 配置。
踩坑提醒2:Cannot prepare queue for listener. Either the queue doesn’t exist or the broker will not allow us to use it
解决方案:
我们可以登陆 RabbitMQ 的管理界面,在 Queue 选项中手动添加对应的队列。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。