参考资料

CentOS7上从零开始安装阿里RocketMQ版本:release-4.0.1【亲测哈哈】

CentOS7下安装rocketmq

【MQ】CentOS7安装RocketMQ

CentOS7 安装RocketMQ并测试使用

Linux下RocketMQ环境的配置

安装

从官网看有什么安装包。

安装centos6卡住了_环境变量

好,安装4.2的。

wget http://mirrors.hust.edu.cn/apache/rocketmq/4.2.0/rocketmq-all-4.2.0-bin-release.zip
更新2:新版本
wget http://mirrors.tuna.tsinghua.edu.cn/apache/rocketmq/4.5.1/rocketmq-all-4.5.1-bin-release.zip

安装centos6卡住了_环境变量_02

#新建一个新的程序文件夹用来放rocketmq
mkdir -p /usr/local/rocketmq
解压:
unzip rocketmq-all-4.2.0-bin-release.zip -d /usr/local/rocketmq
更新2:新版本
unzip rocketmq-all-4.5.1-bin-release.zip -d /usr/local/rocketmq

#注,如果unzip说command not foun的,请按照unzip
#yum install unzip

安装centos6卡住了_vim_03

好了,打开文件路径:

cd /usr/local/rocketmq/

测试一下nameserver

nohup sh bin/mqnamesrv &

然后看到:

安装centos6卡住了_vim_04

然后,

安装centos6卡住了_环境变量_05

有错误,

安装centos6卡住了_环境变量_06

内存不足,好,测试环境调低一点内存容量。

vim bin/runbroker.sh

看到:

安装centos6卡住了_环境变量_07


调低内存:

到:

-server -Xms8g -Xmx8g -Xmn4g
===>
-server -Xms256m -Xmx256m -Xmn128m

[外链图片转存失败(img-HCb6rI9w-1563680831824)

解决办法,找到runserver.sh和runbroker.sh,编辑 
JAVA_OPT=”${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn125m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m” 
改成如上就可以了
vim bin/runserver.sh

看到: [外链图片转存失败(img-lBbNL5GA-1563680831825)(

改为:

JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn128m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=256m"

[外链图片转存失败(img-qIqc3C94-1563680831825)

测试:

bin/mqnamesrv

[外链图片转存失败(img-Rjj2HYj3-1563680831825)(

测试通过。

追加-实用脚本

在单机情况下,每次都记住服务开启的命令是很麻烦的,下面提供几个脚本:
运行namesrv:

startSrv.sh

touch startSrv.sh
chmod +x startSrv.sh
vim startSrv.sh

内容如下:

#!/bin/sh
nohup sh ./bin/mqnamesrv  >  ~/logs/rocketmqlogs/namesrv.log  &
tail -f ~/logs/rocketmqlogs/namesrv.log

stopSrv.sh

touch stopSrv.sh
chmod +x stopSrv.sh
vim stopSrv.sh

内容如下:

#!/bin/sh
./bin/mqshutdown namesrv

broker执行:

startBroker.sh

touch startBroker.sh
chmod +x startBroker.sh
vim startBroker.sh
#!/bin/sh
#注意,下面的ip地址以及端口请填写你安装的rocketmq机器的ip地址及端口。
nohup sh bin/mqbroker  -n xxx.xx.xx.xx:9876  >  ~/logs/rocketmqlogs/broker.log   &
tail  -f  ~/logs/rocketmqlogs/broker.log
~

stopBroker.sh

touch stopBroker.sh
chmod +x stopBroker.sh
vim stopBroker.sh
#!/bin/sh
./bin/mqshutdown broker

简化设置及操作 — 待补充

为了简化一下操作,需要设置环境变量:

设置环境变量
其实不设置环境变量也可以,但是我们为了进一步简化后续的broker集群命令,所以还是设置一下吧。
配置rocketmq的环境变量
vim /etc/profile

在结尾添加
#设置rocketmq的环境变量
export ROCKETMQ_HOME=/usr/local/rocketmq
export PATH=$JAVA_HOME/bin:$ROCKETMQ_HOME/bin:$PATH

按esc+!wq保存

使rocketmq的配置生效
source /etc/profile

其余操作

启动Name Server
注意:启动前需要设置name server的jvm参数,默认堆内存耗费4g,内存设置不合理会导致异常情况发生。
需要设置默认内存。

启动name server
nohup sh mqnamesrv &
查看日志
tail -f /root/logs/rocketmqlogs/namesrv.log
关闭name server
nohup sh mqshutdown namesrv
name server启动好后,端口默认为9876
启动Broker(非集群,集群模式会在后面文章讲解)
注意:启动前需要设置broker的jvm参数,默认堆内存耗费8g,内存设置不合理会导致异常情况发生。
需要设置默认内存:

启动broker
nohup sh mqbroker -n localhost:9876 &

查看日志
tail -f /root/logs/rocketmqlogs/broker.log

关闭broker(不会马上关闭,大概有10秒左右的延迟。不要使用kill来关闭broker,会造成消息丢失。)
nohup sh mqshutdown broker

进阶配置

请参考:
Linux下RocketMQ环境的配置

单机下配置自动服务–废弃

为什么这个单元会废弃?

因为有些地方是无解的,譬如说,即使用了nohup 执行程序还是会卡住线程的,譬如:

安装centos6卡住了_环境变量_08

在变成service以后也是这样无论用不用nohup都会卡住动不了下一个。。等以后再服务化,先草稿。。

单机情况可以这样配置service:

nameAddr的配置:

#打开service存放目录
cd /lib/systemd/system/
#创建文件
sudo touch MqNameSrv.service
#添加执行权限。
sudo chmod +x MqNameSrv.service
#编辑文件
sudo vim  MqNameSrv.service

输入内容如下:

[Unit]
Description=mq的namesrv服务
After=syslog.target network.target remote-fs.target nss-lookup.target
 
[Service]
Type=forking
ExecStart=/opt/rocketmq-4.4.0/bin/mqnamesrv
ExecStop=/opt/rocketmq-4.4.0/bin/mqshutdown namesrv
PrivateTmp=true
 
[Install]
WantedBy=multi-user.target

保存,然后重新加载服务:

systemctl daemon-reload

启动:

systemctl start MqNameSrv
#查看状态是
systemctl status MqNameSrv
#关闭重启是
systemctl stop和restart MqNameSrv

添加开机启动是:

systemctl enable MqNameSrv

坑一 请设置 java_home

如下图

安装centos6卡住了_vim_09

然后,你会发现,自己是有java_home这个变量设定的,问题在哪里?
请参考:
ubuntu14.04-rocketmq单机搭建

打开命令文件

sudo  vim  /opt/rocketmq-4.4.0/bin/mqnamesrv

发现调用的是

安装centos6卡住了_vim_10

runserver.sh查看runserver.sh:

安装centos6卡住了_安装centos6卡住了_11

诶,这一段判断位置的。。注释掉即可然后会发现,还是找不到java home的,这时候,请将脚本从bin/sh改为bash且添加一句话:

source /etc/profile

注意,如果不是bash,那么source会提示找不到命令的。

如下图:

安装centos6卡住了_环境变量_12

注意,在mqnamesrv上面要改为 bash /xxxx.sh 如下图:

安装centos6卡住了_vim_13

mqbroker出现java_home问题

一样的解决方案,

在mqbroker上面这样改:

安装centos6卡住了_安装centos6卡住了_14

然后:

安装centos6卡住了_环境变量_15