官方仓库各个下载地址:http://rocketmq.apache.org/release_notes/
RocketMQ4.7.1直连下载https://www.apache.org/dyn/closer.cgi?path=rocketmq/4.7.1/rocketmq-all-4.7.1-source-release.zip
Linux安装RocketMQ单机版教程1.png
下载好上传到/usr/local目录下
使用unzip 命令进行解压

unzip rocketmq-all-4.7.1-bin-release.zip

如果提示unzip 找不到该命令,进行在线安装,(如果成功解压可忽略这一步)

yum install -y unzip zip

解压好后进入目录
目录介绍
bin:启动脚本,包括shell脚本和CMD脚本
conf:实例配置文件 ,包括broker配置文件、logback配置文件等
lib:依赖jar包,包括Nettycommons-langFastJSON

首次安装如果服务器配置小需要修改一下jvm配置,否则报错,修改过可忽略
问题描述:
RocketMQ默认的虚拟机内存较大,启动Broker如果因为内存不足失败,需要编辑如下两个配置文件,修改JVM内存大小

进入安装目录的bin目录下,编辑runbroker.shrunserver.sh修改默认JVM大小
修改runbroker.sh

vi runbroker.sh

Linux安装RocketMQ单机版教程_runbrokerJVM修改图.png

修改runserver.sh

vi runserver.sh

Linux安装RocketMQ单机版教程_runserverJVM修改图.png
参考设置:
JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn128m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m
修改完成后回到RocketMQ根目录

cd ..

启动RocketMQ

启动NameServer

nohup sh bin/mqnamesrv &

2.查看启动日志

tail -f ~/logs/rocketmqlogs/namesrv.log

启动Broker

nohup sh bin/mqbroker -n localhost:9876 &

查看启动日志

tail -f ~/logs/rocketmqlogs/broker.log 

使用jps命令查看进程
NamesrvStartupBrokerStartup进程是否存在,存在代表RocketMQ成功启动
Linux安装RocketMQ单机版教程2.png

停止RocketMQ

1.停止NameServer

sh bin/mqshutdown namesrv

2.停止Broker

sh bin/mqshutdown broker

再次使用jps命令查看就发现NamesrvStartupBrokerStartup进程不存在了

测试RocketMQ环境

首先需要开两个ssh窗口
Linux安装RocketMQ单机版教程3.png

发送消息

第一个窗口的环境变量
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

为了方便看到明显的效果,可以再次在第一个窗口发送消息,这时候可以看到接收消息者能快速收到

sh bin/tools.sh org.apache.rocketmq.example.quickstart.Producer

然后两边出现消息打印,证明RocketMQ环境测试成功
Linux安装RocketMQ单机版教程4.png

`注意,如果是阿里云 腾讯云等云服务器需要开启以下外网端口
如果是阿里云 腾讯云 华为云等需要开放RocketMQ以下端口
namesrv需要的: 9876端口 (必须开启)

非vip通道端口: 10911 (必须开启)
这个主要是broker的服务端口号,作为对producer和consumer使用服务的端口号,默认为10911,可以通过配置文件中修改。

vip通道端口: 10909`
10909是VIP通道对应的端口,在JAVA中的消费者对象或者是生产者对象中关闭VIP通道即可无需开放10909`

Last modification:March 19, 2022
如果觉得这篇技术文章对你有用,请随意赞赏