写在前面:
继续记录自己的SpringBoot学习之旅,这次是SpringBoot应用相关知识学习记录。若看不懂则建议先看前几篇博客,详细代码可在我的Gitee仓库SpringBoot克隆下载学习使用!
3.5.4.5 SpringBoot整合RocketMQ
3.5.4.5.1 RocketMQ安装
- 点击RockedMQ网站下载解压,这里选择4.9.2 Binary版本
- 配置环境变量,默认端口号是9876,如图
![![[Pasted image 20221117144535.png]]](https://img8.php1.cn/3cdc5/fe82/42f/5858d296083eacd4.png)
![![[Pasted image 20221117144433.png]]![[Pasted image 20221117144345.png]]](https://img8.php1.cn/3cdc5/fe82/42f/9e398260f5243a00.png)

- 启动namespaceServer服务,点击bin里中的mqnamesrv,如图
![![[Pasted image 20221117144937.png]]](https://img8.php1.cn/3cdc5/fe82/42f/e8f8e55a07672634.png)
![![[Pasted image 20221117144951.png]]](https://img8.php1.cn/3cdc5/fe82/42f/2c7b5632cda08f11.png)
- 启动mqbroker服务,同上,点击mqbroker.cmd,如图
![![[Pasted image 20221117154514.png]]](https://img8.php1.cn/3cdc5/fe82/42f/256a0c69fd31896e.png)
**注:**若报错则是jdk目录安装在C盘里的Program Files中,解决办法是打开打开runbroker.cmd,然后将‘%CLASSPATH%’加上英文双引号,如图![![[Pasted image 20221117154616.png]]](https://img8.php1.cn/3cdc5/fe82/42f/133680c018aa63b0.png)
- 消息生产消费测试
- 生产者测试,cmd命令输入
tools tools org.apache.rockedmq.example.quickstart.Producer
,如图即可![![[Pasted image 20221117155437.png]]](https://img8.php1.cn/3cdc5/fe82/42f/ff1fb3b57e9c36e0.png)
- 消费者测试,cmd命令输入
tools org.apache.rocketmq.example.quickstart.Consumer
,如图![![[Pasted image 20221117155522.png]]](https://img8.php1.cn/3cdc5/fe82/42f/b11a8673d7c5a360.png)
3.5.4.5.2 整合
- SpringBoot添加坐标,在maven仓库搜索RocketMQ找到有Starter的,复制粘贴,如图
![![[Pasted image 20221117155924.png]]](https://img8.php1.cn/3cdc5/fe82/42f/8c0c994f5bccaeb0.png)
- 配置yml,如图
![![[Pasted image 20221117161540.png]]](https://img8.php1.cn/3cdc5/fe82/42f/775f4f32fcf696ad.png)
- 编辑实现类发送同步消息,并将之前实现类@Service注释掉,如下:
@Service
public class MessageServiceRocketmqImpl implements MessageService {
@Autowired
private RocketMQTemplate rocketMQTemplate;
@Override
public void sendMessage(String id) {
System.out.println("待发送短信的订单已纳入处理队列(rocketmq),id: " + id);
rocketMQTemplate.convertAndSend("order_id",id);
}
@Override
public String doMessage() {
return null;
}
}
,运行后如图

@Component
@RocketMQMessageListener(topic = "order_id",consumerGroup = "group_rocketmq_01")
public class MessageListener implements RocketMQListener<String> {
&#64;Override
public void onMessage(String id) {
System.out.println("已完成短信发送业务(rocketmq),id&#61;" &#43; id);
}
}
,运行后如图![![[Pasted image 20221117163447.png]]](https://img8.php1.cn/3cdc5/fe82/42f/eff0b8aa8e3f68fa.png)
- 编辑实现类发送异步消息&#xff0c;同上&#xff0c;更改如图
![![[Pasted image 20221117164111.png]]](https://img8.php1.cn/3cdc5/fe82/42f/93b90761e35ecf3b.png)
&#xff0c;运行如图![![[Pasted image 20221117164133.png]]](https://img8.php1.cn/3cdc5/fe82/42f/e42782bda3365701.png)
3.5.4.6 SpringBoot整合kafka
3.5.4.6.1 Kafka安装
- 点击Kafka网站下载版本&#xff0c;选择2.8.2版本
- 下载后解压缩即可
- 启动zookeeper服务&#xff0c;默认端口2181&#xff0c;CMD命令如下
zookeeper-server-start.bat ../../config/zookeeper.properties
&#xff0c;若报错命令行太长&#xff0c;使用短的文件名 - 启动kafka服务&#xff0c;默认端口9092&#xff0c;命令
kafka-server-start.bat ../../config/server.properties
即可
3.5.4.6.2 kafka测试
- 创建topic,cmd命令
kafka-topics.bat --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic demo
,如图![![[Pasted image 20221118190835.png]]](https://img8.php1.cn/3cdc5/fe82/42f/8a69342d166d57f1.png)
- 查看topic,cmd命令
kafka-topics.bat --zookeeper 127.0.0.1:2181 --list
&#xff0c;如图![![[Pasted image 20221118191050.png]]](https://img8.php1.cn/3cdc5/fe82/42f/5da9fd252ee0515f.png)
- 启动生产者&#xff0c;cmd命令
kafka-console-producer.bat --broker-list localhost:9092 --topic demo
- 启动消费者&#xff0c;cmd命令
kafka-console-consumer.bat --bootstrap-server localhost:9092 --topic demo --from-beginning
- 生产者与消费者交互&#xff0c;生产者操作如图
![![[Pasted image 20221118193944.png]]](https://img8.php1.cn/3cdc5/fe82/42f/7f1ff89876012ce8.png)
&#xff0c;消费者如图
![![[Pasted image 20221118193959.png]]](https://img8.php1.cn/3cdc5/fe82/42f/1942ddd327620b43.png)
3.5.4.6.3 整合
<dependency>
<groupId>org.springframework.kafkagroupId>
<artifactId>spring-kafkaartifactId>
dependency>
- 配置yml&#xff0c;如图
![![[Pasted image 20221118200846.png]]](https://img8.php1.cn/3cdc5/fe82/42f/5da37a38f6d8c477.png)
- 添加实现类与监听器&#xff0c;如图
![![[Pasted image 20221118200900.png]]](https://img8.php1.cn/3cdc5/fe82/42f/a3f30604f387d3bc.png)
添加监听器如图![![[Pasted image 20221118200919.png]]](https://img8.php1.cn/3cdc5/fe82/42f/4001db291dce5b24.png)
&#xff0c;结果如图![![[Pasted image 20221118201041.png]]](https://img8.php1.cn/3cdc5/fe82/42f/81a49210d0ff4535.png)
![![[Pasted image 20221118201058.png]]](https://img8.php1.cn/3cdc5/fe82/42f/8181b85c1e2dcde3.png)