这篇文章主要介绍“怎么用spring boot+rocketMQ实现简单的消息发送与接收”,在日常操作中,相信很多人在怎么用spring boot+rocketMQ实现简单的消息发送与接收问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么用spring boot+rocketMQ实现简单的消息发送与接收”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
1. 环境搭建
我们要使用rocketMQ,因此需要使用rocketMQ服务。 安装教程
以上并没有介绍windows下怎么运行,所以讲一下windows的安装方法。
按照安装教程下载二进制文件,然后解压到任意目录下:
· 配置环境变量:
ROCKETMQ_HOME E:\rocketMQ\rocketmq-all-4.4.0-bin-release // 文件解压的路径
完成配置后最好重启下计算机!!!!!!!!不重启可能存在找不到环境变量的错误。
· 启动服务:
在你安装目录的bin文件夹下打开命令窗口。
首先启动 namesrv
start mqnamesrv.cmd
请勿关闭此命令框
启动broker
start mqbroker.cmd -n 127.0.0.1:9876 autoCreateTopicEnable=true
请勿关闭此命令框
假如弹出提示框提示‘错误: 找不到或无法加载主类 xxxxxx’。打开runbroker.cmd,然后将‘%CLASSPATH%’加上英文双引号。保存并重新执行start语句。
如果出现内存不够的错误,请确保机器有足够的运行内存,然后重新启动。
RocketMQ插件部署,这里没研究过,直接参照别人的吧。
========================================================================================
开始正事,官方地址。
以下spring boot的版本都是2.1.4.RELEASE
· 搭建生产者(producer),也就是消息发送者
加入pom
<dependency> <groupId>org.apache.rocketmq</groupId> <artifactId>rocketmq-spring-boot-starter</artifactId> <version>2.0.3</version> </dependency>
## application.properties rocketmq.name-server=127.0.0.1:9876 rocketmq.producer.group=my-group
新建一个controller来做消息发送:
@RestController public class SendMessageApi { @Resource private RocketMQTemplate rocketMQTemplate; @GetMapping(value = "/send/{message}") public String echo(@PathVariable String message) { // // 往主题test-topic-1直接发送Hello, World! // rocketMQTemplate.convertAndSend("test-topic-1", "Hello, World!"); // 往主题test-topic-1发送message rocketMQTemplate.send("test-topic-1", MessageBuilder.withPayload(message).build()); // // 往主题test-topic-2发送对象,这里对象是自己自定义的dto,需要序列化 // MessageDto messageDto = new MessageDto(); // messageDto.setXXX(""); // ... // rocketMQTemplate.convertAndSend("test-topic-2", messageDto); System.out.println("消息发送成功........."); return message; } }
· 搭建消费者(consumer),也就是消息接收者
加入pom
<dependency> <groupId>org.apache.rocketmq</groupId> <artifactId>rocketmq-spring-boot-starter</artifactId> <version>2.0.3</version> </dependency>
## application.properties rocketmq.name-server=127.0.0.1:9876
// 接收string类型消息 @Service @RocketMQMessageListener(topic = "test-topic-1", consumerGroup = "my-consumer_test-topic-1") public class MyConsumer1 implements RocketMQListener<String>{ public void onMessage(String message) { System.out.println("received message: " + message); } } // 接收对象类型的消息 @Service @RocketMQMessageListener(topic = "test-topic-2", consumerGroup = "my-consumer_test-topic-2") public class MyConsumer2 implements RocketMQListener<MessageDto>{ public void onMessage(MessageDto messageDto) { System.out.println("received messageDto: " + messageDto.toString()); } }
简单的消息发送与接收搭建完毕。
到此,关于“怎么用spring boot+rocketMQ实现简单的消息发送与接收”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。