这是我参与11月更文挑战的第10天,活动详情查看:2021最后一次更文挑战
学习视频(B站):www.bilibili.com/video/BV1Mt…
GitHub 源码地址:github.com/tyronczt/sp…
基本概念:RocketMQ主要由 Producer、Broker、Consumer 三部分组成,其中Producer 负责生产消息,Consumer 负责消费消息,Broker 负责存储消息。Broker 在实际部署过程中对应一台服务器,每个 Broker 可以存储多个Topic的消息,每个Topic的消息也可以分片存储于不同的 Broker。Message Queue 用于存储消息的物理地址,每个Topic中的消息地址存储于多个 Message Queue 中。ConsumerGroup 由多个Consumer 实例构成。
一、Linux 安装
1、下载压缩包,rocketmq-all-4.9.0-bin-release.zip
网址:rocketmq.apache.org/dowloading/…
2、解压缩
1 | shell复制代码unzip rocketmq-all-4.9.0-bin-release.zip |
3、启动 NameServer
1 | shell复制代码cd bin |
4、检查是否启动成功
1 | shell复制代码查看端口启动情况:netstat -an | grep 9876 |
5、启动 Broker
启动之前需要编辑配置文件,修改 JVM 内存设置,默认给的内存 4 GB,超过现有虚拟机 JVM ,不然会报错
1 | shell复制代码cd bin |
启动 Broker
1 | shell复制代码nohup ./mqbroker -n localhost:9876 & |
查看启动情况
1 | shell复制代码tail -f ~/logs/rocketmqlogs/broker.log |
6、测试 RocketMQ
测试消息发送
1 | shell复制代码cd bin |
测试消息接收
1 | shell复制代码cd bin |
7、关闭 RocketMQ
1 | shell复制代码cd bin |
8、报错
1 | shell复制代码#关闭RocketMq |
参考:rocketmq.apache.org/docs/quick-…
二、控制台安装
1、下载源码,rocketmq-console
2、打包
1 | shell复制代码mvn clean package -Dmaven.test.skip=true |
3、修改配置文件
1 | ini复制代码properties |
4、运行
1 | java复制代码java -jar target/rocketmq-console-ng-2.0.0.jar |
5、报错
rocketmq:connect to 172.17.0.1:10911 failed
这是因为我们的 RocketMQ 安装在 Linux 中,控制台在 windows,Linux 需要开放端口才能访问,开放 10909 和 10911和9876 端口
1 | cmd复制代码firewall-cmd --zone=public --add-port=10909/tcp --permanent |
三、Java 实现消息发送
在provider项目下
1、引入依赖
1 | xml复制代码<dependency> |
2、生产消息
1 | java复制代码public class Test { |
3、查看消息
4、消费消息
处于阻塞状态,只要有消息发送过来,就会消费信息
1 | java复制代码@Slf4j |
5、查看消息
四、SpringBoot整合RocketMQ
1、生产者引入依赖
1 | xml复制代码<dependency> |
2、配置文件
1 | yml复制代码rocketmq: |
3、生产者代码
1 | java复制代码@Autowired |
4、消费者引入依赖
1 | xml复制代码<dependency> |
5、配置文件
1 | yaml复制代码rocketmq: |
6、消费者代码
1 | java复制代码@Slf4j |
只要生产者中的topic与消费者中的topic进行对应即可。
本文转载自: 掘金