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賬號。我這是在測試環境里。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM