一、官网下载
本次选择目前的全新发布版:4.9.2。下载二进制版的压缩包。
或者直接点击下载
Linux 环境下,使用以下命令下载:
wget https://dlcdn.apache.org/rocketmq/4.9.2/rocketmq-all-4.9.2-bin-release.zip
二、Windows环境安装(单机版)部署
1. 确认Java环境
即你的Java环境变量是否正常。
2. 解压&配置 ROCKETMQ_HOME
将从官网下载的压缩包解压到一个指定目录:
我这里使用的目录是:D:\software\rocketmq\rocketmq-4.9.2
然后需要配置环境变量ROCKETMQ_HOME
。如下图所示:
3. 启动 nameserver
切换到安装目录下的 bin文件下,打开 cmd 命令窗口:
D:\software\rocketmq\rocketmq-4.9.2\bin>start mqnamesrv.cmd
随后可能弹出一个命令窗口,内容如下:
Java HotSpot(TM) Server VM warning: Using the DefNew young collector with the CMS collector is deprecated and will likely be removed in a future release
Java HotSpot(TM) Server VM warning: UseCMSCompactAtFullCollection is deprecated and will likely be removed in a future release.
Error occurred during initialization of VM
Could not reserve enough space for 2097152KB object heap
D:\software\rocketmq\rocketmq-4.9.2\bin>
这个是因为启动时分配的内存太大了。需要修改一下:
在 bin 目录下找runserver.cmd
和runbroker.cmd
,编辑其内容。
3.1 编辑 runserver.cmd 文件
若没有出现内存不足之类的问题,就可绕过 3.1和3.2的内容。
找到原文件中配置java内存的位置:
set "JAVA_OPT=%JAVA_OPT% -server -Xms2g -Xmx2g -Xmn1g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
手动修改小一点即可。我这里将其修改为:
set "JAVA_OPT=%JAVA_OPT% -server -Xms256m -Xmx256m -Xmn128m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
3.2 编辑 runbroker.cmd 文件
若没有出现内存不足之类的问题,就可绕过 3.1和3.2的内容。
找到原文件中配置java内存的位置:
set "JAVA_OPT=%JAVA_OPT% -server -Xms2g -Xmx2g"
手动修改小一点即可。我这里将其修改为:
set "JAVA_OPT=%JAVA_OPT% -server -Xms256m -Xmx256m"
最后再次使用命令:start mqnamesrv.cmd
启动即可。
当输出了以下内容时,表示nameserver
启动成功了:
Java HotSpot(TM) Server VM warning: Using the DefNew young collector with the CMS collector is deprecated and will likely be removed in a future release
Java HotSpot(TM) Server VM warning: UseCMSCompactAtFullCollection is deprecated and will likely be removed in a future release.
The Name Server boot success. serializeType=JSON
注意,启动成功后,输出以上信息的命令窗口不能关闭!
4. 启动 broker
切换到bin目录下,新打开一个命令窗口,执行以下命令:
start mqbroker.cmd -n 127.0.0.1:9876 autoCreateTopicEnable=true
如果没有成功,出现以下信息:
Invalid maximum direct memory size: -XX:MaxDirectMemorySize=15g
The specified size exceeds the maximum representable size.
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
需要做以下修改:
编辑runbroker.cmd
将MaxDirectMemorySize
的大小放小,我这里调整为1g
再次启动出现以下信息表示成功了:
The broker[DESKTOP-R7J3BHB, 172.173.173.69:10911] boot success. serializeType=JSON and name server is 127.0.0.1:9876
5. 验证
5.1 创建 topic
使用命令mqadmin updateTopic -b 127.0.0.1:10911 -t topicname_fbb360 -n 127.0.0.1:9876
其中10911端口对应的是 broker的端口,topicname_fbb360
是我指定的主题名。
D:\software\rocketmq\rocketmq-4.9.2\bin>mqadmin updateTopic -b 127.0.0.1:10911 -t topicname_fbb360 -n 127.0.0.1:9876
RocketMQLog:WARN No appenders could be found for logger (io.netty.util.internal.InternalThreadLocalMap).
RocketMQLog:WARN Please initialize the logger system properly.
create topic to 127.0.0.1:10911 success.
TopicConfig [topicName=topicname_fbb360, readQueueNums=8, writeQueueNums=8, perm=RW-, topicFilterType=SINGLE_TAG, topicSysFlag=0, order=false]
5.2 查看topic
使用命令:mqadmin topicList -n 127.0.0.1:9876
D:\software\rocketmq\rocketmq-4.9.2\bin>mqadmin topicList -n 127.0.0.1:9876
RocketMQLog:WARN No appenders could be found for logger (io.netty.util.internal.InternalThreadLocalMap).
RocketMQLog:WARN Please initialize the logger system properly.
SCHEDULE_TOPIC_XXXX
RMQ_SYS_TRANS_HALF_TOPIC
DefaultCluster_REPLY_TOPIC
BenchmarkTest
OFFSET_MOVED_EVENT
DESKTOP-R7J3BHB
topicname_fbb360
TBW102
SELF_TEST_TOPIC
DefaultCluster
三、Linux环境安装(单机版)部署
// TODO 待补充...
先参考:https://blog.youkuaiyun.com/wc1695040842/article/details/99941664
1. 下载&上传
建议使用迅雷下载,Linux上使用 wget,太慢了。
下载地址:https://dlcdn.apache.org/rocketmq/4.9.2/rocketmq-all-4.9.2-bin-release.zip
下载后使用远程工具,我这里使用的是xshell,xftp做的传输。上传的自己需要安装的位置。
我当前使用的Linux版本是 阿里云的 CentOS8.x 版本。
2. 解压
使用以下命令:
# 解压
unzip rocketmq-all-4.9.2-bin-release.zip
解压后,出现了 rocketmq-4.9.2 的一个目录。如下图示:
3. 配置环境
3.1 确认Java环境
查看 /etc/profile
文件,使用如下配置:
注意:我的java是安装在/usr/src/software/java的
#java environment
export JAVA_HOME=/usr/src/software/java
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH
export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin
export PATH=$PATH:${JAVA_PATH}
3.2 配置 /etc/profile
在文件末尾追加以下内容:
#rocketmq environment
export ROCKETMQ_HOME=/usr/src/software/rocketmq-4.9.2
随后使用命令 source /etc/profile
刷新配置,使其生效。
3.3 编辑 runserver.sh 和 runbroker.sh
这一步主要是,默认的内存空间占用太大了,浪费可耻。因此稍微调整小点。(参考上文提到的:Windows中安装时,出现的内存不足问题)
- 编辑 runserver.sh文件:
# 切换目录
cd /usr/src/software/rocketmq-4.9.2/bin
# 编辑
vim runserver.sh
文件内容主要修改(内存分配大小,现修改为 256m和128m):
choose_gc_options()
{
# Example of JAVA_MAJOR_VERSION value : '1', '9', '10', '11', ...
# '1' means releases befor Java 9
JAVA_MAJOR_VERSION=$("$JAVA" -version 2>&1 | sed -r -n 's/.* version "([0-9]*).*$/\1/p')
if [ -z "$JAVA_MAJOR_VERSION" ] || [ "$JAVA_MAJOR_VERSION" -lt "9" ] ; then
JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn128m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
JAVA_OPT="${JAVA_OPT} -XX:+UseConcMarkSweepGC -XX:+UseCMSCompactAtFullCollection -XX:CMSInitiatingOccupancyFraction=70 -XX:+CMSParallelRemarkEnabled -XX:SoftRefLRUPolicyMSPerMB=0 -XX:+CMSClassUnloadingEnabled -XX:SurvivorRatio=8 -XX:-UseParNewGC"
JAVA_OPT="${JAVA_OPT} -verbose:gc -Xloggc:${GC_LOG_DIR}/rmq_srv_gc_%p_%t.log -XX:+PrintGCDetails -XX:+PrintGCDateStamps"
JAVA_OPT="${JAVA_OPT} -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=5 -XX:GCLogFileSize=30m"
else
JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
JAVA_OPT="${JAVA_OPT} -XX:+UseG1GC -XX:G1HeapRegionSize=16m -XX:G1ReservePercent=25 -XX:InitiatingHeapOccupancyPercent=30 -XX:SoftRefLRUPolicyMSPerMB=0"
JAVA_OPT="${JAVA_OPT} -Xlog:gc*:file=${GC_LOG_DIR}/rmq_srv_gc_%p_%t.log:time,tags:filecount=5,filesize=30M"
fi
}
- 编辑 runbroker.sh文件:
还是在bin目录下,直接编辑:
vim runbroker.sh
# 修改的内容如下
JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m"
JAVA_OPT="${JAVA_OPT} -XX:MaxDirectMemorySize=512m"
3.4 启动
非后台启动(这种方式可以用 ctrl+c停止该服务):
这种启动,一旦关闭当前连接会话,就会停止服务。
# 启动nameserver
[root@iZ2zefzjmmq2tvk3fvkxhaZ bin]# ./mqnamesrv
Java HotSpot(TM) 64-Bit Server VM warning: Using the DefNew young collector with the CMS collector is deprecated and will likely be removed in a future release
Java HotSpot(TM) 64-Bit Server VM warning: UseCMSCompactAtFullCollection is deprecated and will likely be removed in a future release.
The Name Server boot success. serializeType=JSON
# 启动broker
[root@iZ2zefzjmmq2tvk3fvkxhaZ bin]# ./mqbroker -n 127.0.0.1:9876 autoCreateTopicEnable=true
The broker[iZ2zefzjmmq2tvk3fvkxhaZ, 172.24.15.105:10911] boot success. serializeType=JSON and name server is 127.0.0.1:9876
后台启动(输出日志信息到某一日志文件):
这种启动,在Linux连接的窗口会话关闭时,也不会停止服务。
# 启动nameserver
nohup ./mqnamesrv > rocketmq.log &
# 启动broker
nohup ./mqbroker -n 127.0.0.1:9876 autoCreateTopicEnable=true > rocketmq_broker.log &
4. 验证
4.1 创建 topic
./mqadmin updateTopic -b 127.0.0.1:10911 -t topicname_fbb360 -n 127.0.0.1:9876
4.2 查看topic
./mqadmin topicList -n 127.0.0.1:9876
注意,在阿里云的话,需要去配置规则,开放自己的端口。
四、Linux安装 Console控制台
打包参考:https://blog.youkuaiyun.com/qq_34531925/article/details/82587358
使用官方提供的项目,编译打成 jar包,上传到自己的服务器上。
地址是:https://github.com/apache/incubator-rocketmq-externals/tree/master/rocketmq-console
在上传目录,使用如下命令:
nohup java -jar rocketmq-console-ng-1.0.1.jar --server.port=8088 --rocketmq.config.namesrvAddr=127.0.0.1:9876 > rocket_console.log &
启动后,查看日志文件,tomcat正常启动即可。
最终可以使用这个控制台去管理自己的 Rocket MQ。