rocketMQ+centos+安装配置

  • Post author:
  • Post category:其他




参考资料


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


CentOS7下安装rocketmq


【MQ】CentOS7安装RocketMQ


CentOS7 安装RocketMQ并测试使用


Linux下RocketMQ环境的配置



安装

从官网看有什么安装包。

这里写图片描述

好,安装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

这里写图片描述

#新建一个新的程序文件夹用来放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

这里写图片描述

好了,打开文件路径:

cd /usr/local/rocketmq/

测试一下nameserver

nohup sh bin/mqnamesrv &

然后看到:

这里写图片描述

然后,

这里写图片描述

有错误,

这里写图片描述

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

vim bin/runbroker.sh

看到:

这里写图片描述

调低内存:

到:

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

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

http://p7040fjon.bkt.clouddn.com/QQ截图20180713133740.png

)]

解决办法,找到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)(

http://p7040fjon.bkt.clouddn.com/QQ截图20180713140032.png

)]

改为:

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

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

http://p7040fjon.bkt.clouddn.com/QQ截图20180713140252.png

)]

测试:

bin/mqnamesrv

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

http://p7040fjon.bkt.clouddn.com/QQ截图20180713140348.png

)]

测试通过。



追加-实用脚本

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

运行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 执行程序还是会卡住线程的,譬如:

在这里插入图片描述


在变成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

如下图

在这里插入图片描述

然后,你会发现,自己是有java_home这个变量设定的,问题在哪里?

请参考:


ubuntu14.04-rocketmq单机搭建

打开命令文件

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

发现调用的是

在这里插入图片描述


runserver.sh



查看runserver.sh

:

在这里插入图片描述

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

source /etc/profile

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

如下图:

在这里插入图片描述

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

在这里插入图片描述



mqbroker出现java_home问题

一样的解决方案,

在mqbroker上面这样改:

在这里插入图片描述

然后:

在这里插入图片描述



版权声明:本文为cdnight原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。