RocketMQ4.5.2在centos7的安装

说是安装,不如说是配置。不象在windows下的那种。

首先,到 http://rocketmq.apache.org/ 下载软件(当前版本4.5.2)并解压到 /usr/local 下面。Java也事先解压过(别的软件用到。我并没有将其配置到环境变量里。)。在启动文件里会说明如何用Java的。

比如解压后的文件夹为 rocketmq452。日志文件和存储文件分别存放到 /var/rocketmqlog 和 /var/rocketmqstore。

在说明如何配置之前,推荐一个博客 ,分为4篇。首篇链接:https://blog.csdn.net/autfish/article/details/89226461

(一)基础
(二)进阶 (重要概念)
(三)高可用部署
(四)常见问题

推荐的博客里 讲的内容,理解了就好。但是我们要配置的是开机自动运行(作为服务)的(systend)脚本。

namesrv 用于组织协调 broker代理。启动脚本 rocketmqname.service

[Unit]
Description=RocketMQ-Nameserver
After=network.target

[Service]
Environment=JAVA_HOME=/usr/local/jdk1.8.0_201/
ExecStart=/usr/local/rocket452/bin/mqnamesrv
ExecStop=/usr/local/rocket452/bin/mqshutdown namesrv

[Install]
WantedBy=multi-user.target
Environment=JAVA_HOME=/usr/local/jdk1.8.0_201/ 的意思是 把 JAVA_HOME=/usr/local/jdk1.8.0_201/ 赋值给 Environment。
如果不写 Environment= ,是没有用的。

broker,可以理解为需要向namesrv注册。启动脚本 rocketmqbroker.service

[Unit]
Description=RocketMQ-Broker
After=rocketmqname.service

[Service]
Environment=JAVA_HOME=/usr/local/jdk1.8.0_201/
ExecStart=/usr/local/rocket452/bin/mqbroker -c /usr/local/rocket452/conf/broker.conf
ExecStop=/usr/local/rocket452/bin/mqshutdown broker

[Install]
WantedBy=multi-user.target

如果没有指定( 脚本里的参数 -c )配置文件或者配置文件里没有配置store路径,将默认 ~/store。该脚本没有指定运行的用户,所有如果默认的话就会指向 /root/store

脚本配置后的首次启动,最好清空store里的内容(如果存在的话),否则在初始化时可能过不去。

conf目录下的那些配置文件都可以改。比如xml文件的日志配置中默认是把日志写到 用户目录中。我是把 ${user.home} 改为 /var里面了。

有些时间没法博客了。这个虽然用来充数,但是也是耗费时间总结的。 

 

顺便说一下,可以到 https://github.com/apache/rocketmq-externals 下载 rocketmq-console 。这个代码有点古老,不要随便升级里面的依赖,否则会运行不下去。

我把controller注解都改了,结果提示我 org.springframework.web.bind.annotation.* 通配符的错误。

把包名改短了,也无法运行。需要把 support目录下的2个文件的 注解内容修改下( @ControllerAdvice(basePackages = "rocketmq.console") )。

rocketmq-console.service

[Unit]
Descroption=rocketmq-console8809
After=syslog.target network.target

[Service]
Type=simple
#Type=forking

User=root
Group=root
#timeout seconds
TimeoutSec=0
#Environment=HOME=/root
ExecStart=/usr/local/jdk1.8.0_201/bin/java -jar /var/www/rocketmq-console8809.jar
ExecReload=/bin/kill -s HUP $MAINPID 
ExecStop=/bin/kill -s QUIT $MAINPID 
#ExecStop=/usr/bin/kill -15 $MAINPID
SuccessExitStatus=143

[Install]
WantedBy=multi-user.target

上面的代码里,懒得新建服务账号,就直接用root账号。我这是在测试环境里。

posted @ 2019-10-10 09:44  蓝色牧客  阅读(1072)  评论(0编辑  收藏  举报