RocketMQ系列:使用systemd管理nameserver和broker
背景
前面RocketMQ系列中分享瞭如何在機器上搭建rocketmq,其中nameserver和broker都是以nohup的方式啟動。在實際運維過程中,這種啟動存在一個比較麻煩的問題:比如機器當機後,重新啟動機器,broker和namserver服務無法自動隨開機拉起,還需要我們登陸到每臺機器上去操作啟動服務。又沒有比較好的方式管理啟動指令碼和停止指令碼呢?
這裡介紹一個系統管理元件:systemd。
我們可以編寫unit file,將nameserver和broker作為一個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
相關文章
- 5-RocketMQ-NameServerMQServer
- 【RocketMQ】路由中心 NameServerMQ路由Server
- RocketMQ——Broker篇MQ
- RocketMQ中NameServer的啟動MQServer
- 深入剖析RocketMQ原始碼-NameServerMQ原始碼Server
- rocketMQ學習筆記——nameServerMQ筆記Server
- 一張圖進階 RocketMQ - NameServerMQServer
- 聊一聊RocketMQ的註冊中心NameServerMQServer
- RocketMQ基礎概念之BrokerMQ
- RocketMQ(六):nameserver與佇列儲存定位解析MQServer佇列
- Linux:使用systemd管理程式Linux
- Data Guard Broker系列之四:資料庫管理資料庫
- RocketMQ中Broker的刷盤原始碼分析MQ原始碼
- RocketMQ中Broker的啟動原始碼分析(一)MQ原始碼
- RocketMQ(4.8.0)——Broker 的關機恢復機制MQ
- 使用DG_broker工具管理DG之switchover
- 使用 restic 和 systemd 自動備份REST
- RocketMQ中Broker的訊息儲存原始碼分析MQ原始碼
- RocketMQ 4.2.0 broker JVM優化引數深入刨析MQJVM優化
- RocketMQ系列:rocketmq運維控制檯使用詳解(全網獨家)MQ運維
- RocketMQ系列一:入門級使用演示MQ
- systemd 和 如何修改和建立一個 systemd service (Understanding and administering systemd)
- Data Guard Broker系列之二:Data Guard Broker配置實戰
- Oracle DG管理Broker配置Oracle
- systemd程式管理工具
- 使用Broker管理Data Guard——停用、改保護模式等模式
- LFCS 系列第七講:通過 SysVinit、Systemd 和 Upstart 管理系統自啟動程式和服務
- Systemd簡介與使用
- 使用 systemd 執行 Horizon
- rocketmq 管理控制檯MQ
- systemd 編寫服務管理指令碼指令碼
- 如何在 systemd 下管理Linux系統的時間和日期Linux
- 使用Systemd執行Docker容器Docker
- 使用systemd部署r-nacos
- ?【Alibaba中介軟體技術系列】「RocketMQ技術專題」Broker服務端自動建立topic的原理分析和問題要點指南MQ服務端
- IBM Message Broker筆記系列(九)IBM筆記
- RocketMQ系列(二)環境搭建MQ
- RocketMQ系列(一)基本概念MQ