RocketMQ服务器安装
下载RocketMQ的安装包
#我们这里安装的是4.7.1版本
wget https://downloads.apache.org/rocketmq/4.7.1/rocketmq-all-4.7.1-bin-release.zip
下载完成后如下图所示
解压
#安装unzip命令
yum install unzip -y
#解压zip文件
unzip rocketmq-all-4.7.1-bin-release.zip
解压后得到的路径, bin目录里面是一些启动脚本 conf 目录是一些配置文件,后面我们需要改里面的配置文件
启动namesrv
在启动前,我们先修改一下启动脚本的启动参数,从脚本中可以看出,真正启动namesrv
的是脚本runserver.sh
,默认设置的堆内存为4g,我们的服务器是1核2G的,我们这里修改一下启动参数的大小,不然会报内存不足的问题
如果不改参数我们直接启动的话,会报下面这个异常信息
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.
Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x00000006ec800000, 2147483648, 0) failed; error='Cannot allocate memory' (errno=12)
修改runserver.sh
脚本的第一行启动参数配置,我们作为演示将堆大小设置为256M,具体大小视机器而定
JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn128m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
启动命令
在rocketmq的bin目录下执行./mqnamesrv
,执行成功会打印出下面的日志信息
[root@iZwz99ykxbjgxi2xajonmiZ 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
以守护进程形式运行
#以后台进程运行,日志输出到namesrv.log 将错误信息重定向到标准输出
nohup ./mqnamesrv >./namesrv.log 2>&1 &
#通过jps命令查看namesrv是否在运行
jps
启动broker
修改broker的配置
这里修改配置是因为我踩过坑,明明是外网,但是在可视化界面显示的确实内网ip,所以我们先改一下broker.conf的配置,只需要在文件底部加上这两行配置进行,
namesrvAddr=#{服务器外网ip}:9876
brokerIP1 = #{服务器外网ip}
broker也需要修改一下启动参数,默认设置的堆大小是8g,我们这里也改为256m,修改的文件为
runbroker.sh
启动
#后台守护进程运行
nohup ./mqbroker -c ../conf/broker.conf > broker.log 2>&1 &
#jps查看是否启动成功
可视化界面安装
下载源码
https://github.com/apache/rocketmq-externals
编译
#进入根目录
cd rocketmq-externals
#进去rocketmq可视化项目
cd rocketmq-console/
#编译
mvn clean install -DskipTests=true
启动可视化界面
在启动之前我们先将执行的jar包移到别的目录,省的每次启动都来项目的目录里面找,我们将该jar移到 /opt目录下(原目录在/rocketmq-externals/rocketmq-console/target)
以后台守护进程启动
nohup java -jar rocketmq-console-ng-2.0.0.jar --rocketmq.config.namesrvAddr=127.0.0.1:9876 >console.log 2>&1 &
可视化界面访问链接
http://${外网ip}:8080/#/
测试消息发送代码
测试代码在test目录下
https://github.com/niezhiliang/rocketmq-demo