Linux安装
1、准备工作
下载RocketMQ
截止教程发布日期,RocketMQ最新版本:4.7.1 下载地址
可以直接点击上面下载地址下载到本地然后上传到Liunx上 ,或者也可以直接使用wget命令在Linux上下载
环境要求
-
Linux64位系统
-
JDK1.8(64位)
-
源码安装需要安装Maven 3.2.x
2、安装RocketMQ
安装步骤
本教程以二进制包方式安装
- 解压安装包
- 进入安装目录
#下载rocketmq到Linux上
wget https://downloads.apache.org/rocketmq/4.7.1/rocketmq-all-4.7.1-bin-release.zip
#解压文件,解压成功后会在当前目录下生成rocketmq-all-4.7.1-bin-release文件夹
unzip rocketmq-all-4.7.1-bin-release.zip
#将rocketmq-all-4.7.1-bin-release文件夹重命名为rocketmq-4.7.1并移动到/usr/local/下
mv rocketmq-all-4.7.1-bin-release /usr/local/rocketmq-4.7.1
#进入到安装目录
/usr/local/rocketmq-4.7.1
目录介绍
进入到安装目录我们就可以看到如下文件目录

- bin:启动脚本,包括shell脚本和CMD脚本
- conf:实例配置文件 ,包括broker配置文件、logback配置文件等
- lib:依赖jar包,包括Netty、commons-lang、FastJSON等
3、 启动RocketMQ
启动NameServer
进入到rocketmqden安装目录下的bin目录,执行以下命令:
# 1.启动NameServer,并让其在后台运行,这一步自行成功后会在当前目录下生成nohup.out文件
[root@localhost bin]# nohup sh mqnamesrv &
[1] 3301
#使用Java的jps命令只要可以看到NamesrvStartup这个线程就说明启动成功了
[root@localhost bin]# jps
3307 NamesrvStartup
3326 Jps
# 2.查看启动日志
tail -f ~/logs/rocketmqlogs/namesrv.log
启动成功之后NameServer就默认监听端口:9876
nettyServerConfig.setListenPort(9876);
启动Broker:消息中转角色,负责存储消息,转发消息
# 1.启动Broker
root@localhost bin]# nohup sh mqbroker -n localhost:9876 &
[2] 3913
[root@localhost bin]# jps
3920 BrokerStartup
3927 Jps
3307 NamesrvStartup
# 2.查看启动日志
tail -f ~/logs/rocketmqlogs/broker.log
有关问题:在启动Broker中的时候,如果咱们的机器内存比较小的话,RocketMQ默认的虚拟机内存较大,启动Broker会因为内存不足失败,如下图所示:

这时需要我们需要编辑如下两个配置文件,修改JVM内存大小
# 编辑runbroker.sh和runserver.sh修改默认JVM大小
vi runbroker.sh
vi runserver.sh
- 参考设置:
runserver.sh
runbroker.sh
4、测试RocketMQ
接下来,我们测试一下我们安装的RocketMQ能否正常收发信息,我们需要首先开启两个虚拟机窗口,其中一个是发消息的,一个是收消息的:
在发送/接收消息之前,我们需要告诉客户端name servers的位置。 RocketMQ提供了多种方法来实现这一目标。 为简单起见,我们使用环境变量NAMESRV_ADDR
发送消息
# 1.设置环境变量
export NAMESRV_ADDR=localhost:9876
# 2.使用安装包的Demo发送消息
sh bin/tools.sh org.apache.rocketmq.example.quickstart.Producer
看到在刷刷的打印信息,就说明发送消息没有问题
接收消息
# 1.设置环境变量
export NAMESRV_ADDR=localhost:9876
# 2.接收消息
sh bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer
执行完上边的命令,接收者就开始接收刚才发送端发出的信息,如下图所示:
关闭RocketMQ
# 1.关闭NameServer
sh bin/mqshutdown namesrv
# 2.关闭Broker
sh bin/mqshutdown broker