RocketMQ系列:使用systemd管理nameserver和broker

背景

前面RocketMQ系列中分享瞭如何在機器上搭建rocketmq,其中nameserverbroker都是以nohup的方式啓動。在實際運維過程中,這種啓動存在一個比較麻煩的問題:比如機器宕機後,重新啓動機器,brokernamserver服務無法自動隨開機拉起,還需要我們登陸到每臺機器上去操作啓動服務。又沒有比較好的方式管理啓動腳本和停止腳本呢?

這裏介紹一個系統管理組件:systemd。

我們可以編寫unit file,將nameserverbroker作爲一個systemd下面的一個unit,從而被systemd管理起來。然後就可以通過systemctl start/restart/stop xxx來啓停nameserver和broker了,再通過systemctl enable xxx,可以設置nameserver和broker開啓自行啓動。

廢話不多說,我們開始編寫unit file吧。

nohup方式管理

1)nameserver

啓動:cd /usr/local/rocketmq/bin &&  nohup ./mqnamesrv -c namesrv.properties &

停止:cd /usr/local/rocketmq/bin && sh mqshutdown namesrv

2) broker

啓動:cd /usr/local/rocketmq/bin && nohup sh mqbroker -c rmq-broker.conf &

停止:cd /usr/local/rocketmq/bin && sh mqshutdown broker

那將上述啓動方式改成改寫成unit file呢?

在/usr/lib/systemd/system這個路徑下編寫一個.service結尾的文件即可。接下來,我們分別來編寫這兩個文件。

system的unit file

1)nameserver的unit file編寫: /usr/lib/systemd/system/rmq_namesrv.service

[Unit]
Description=rmq
After=network.target

[Service]

#這裏Type一定要寫simple
Type=simple  

#ExecStart和ExecStop分別在systemctl start和systemctl stop時候調動
ExecStart=/usr/local/rocketmq/bin/mqnamesrv -c /usr/local/rocketmq/bin/namesrv.properties
ExecStop=/usr/local/rocketmq/bin/mqshutdown namesrv

[Install]
WantedBy=multi-user.target

2)broker的unit file編寫: /usr/lib/systemd/system/rmq_broker.service

[Unit]
Description=rmq
After=network.target

[Service]
Type=simple
ExecStart=/usr/local/rocketmq/bin/mqbroker -c /usr/local/rocketmq/bin/rmq-broker.conf
ExecStop=/usr/local/rocketmq/bin/mqshutdown broker


[Install]
WantedBy=multi-user.target

systemctl啓動服務

我們嘗試運行一下:

首先要手動停掉之前的nameserver和broker,分別在nameserver和broker機器上執行如下命令: 

nameserver機器:/usr/local/rocketmq/bin/mqshutdown namesrv

broker機器:/usr/local/rocketmq/bin/mqshutdown broker

然後分別在nameserver和broker機器進行啓動nameserver和broker

nameserver

1)啓動nameserver

systemctl start rmq_namesrv

2)然後查看對應的狀態

systemctl status rmq_namesrv

看到如下圖,說明啓動成功。

3)再設置隨開機自動啓動

systemctl enable rmq_namesrv

4)其他

如果想要停止nameserver,執行:systemctl stop rmq_namesrv

如果有多臺nameserver,則依次在每臺上做如上相關操作。

broker

1)啓動broker

systemctl start rmq_broker

2)查看對應的狀態

systemctl status rmq_broker

看到如下圖,說明啓動成功。

3)設置隨開機自動啓動

systemctl enable rmq_broker

4)其它

如果想要停止broker,執行:systemctl stop rmq_broker

如果有多臺broker,則依次在每臺上做如上相關操作。

以上就是用systemd來管理rocketmq的進程啓停操作了,希望對你有幫助,歡迎留言!


博主:測試生財

座右銘:專注測試與自動化,致力提高研發效能;通過測試精進完成原始積累,通過讀書理財奔向財務自由。

csdn:https://blog.csdn.net/ccgshigao

博客園:https://www.cnblogs.com/qa-freeroad/

51cto:https://blog.51cto.com/14900374


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章