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账号。我这是在测试环境里。