バックグラウンド
以前のRocketMQシリーズは、ネームサーバーとブローカーの両方がnohupモードで起動されるマシン上でrocketmqを構築する方法を共有していました。実際の運用・保守工程では、この種の起動にはさらに厄介な問題があります。たとえば、マシンがダウンした後、マシンが再起動され、ブローカーとnamserverサービスが起動時に自動的に開始できず、サービスを開始するには各マシンにログインする必要があります。 。起動スクリプトを管理し、スクリプトを停止するためのより良い方法はありませんか?
これがシステム管理コンポーネントです:systemd。
ユニットファイル、ネームサーバー、ブローカーをユニットに続くsystemdとして記述し、それによってsystemdが管理することができます。次に、systemctl start / restart / stop xxxを使用してネームサーバーとブローカーを開始および停止し、systemctl enable xxxを使用して、ネームサーバーとブローカーを自動的に開始するように設定できます。
あまり意味がないので、ユニットファイルの作成を始めましょう。
nohup管理
1)ネームサーバー
启PIN:cd / usr / local / rocketmq / bin && nohup ./mqnamesrv -c namesrv.properties&
離:cd / usr / local / rocketmq / bin && sh mqshutdown namesrv
2)ブローカー
启PIN:cd / usr / local / rocketmq / bin && nohup sh mqbroker -c rmq-broker.conf&
表示:cd / usr / local / rocketmq / bin && shmqshutdownブローカー
上記の起動方法をユニットファイルに変更してみませんか?
パス/ usr / lib / systemd / systemの下に.serviceで終わるファイルを書き込むだけです。次に、これら2つのファイルを別々に書き込みます。
システム単位ファイル
1)ネームサーバーユニットファイルは次のように書き込まれます: /usr/lib/systemd/system/rmq_namesrv.service
[単位]
説明= rmqAfter
= network.target[サービス]
#HereTypeはsimpleType
= simpleと 書く必要があります#ExecStartとExecStopは、それぞれsystemctlstartとsystemctlstopのときに動員されます
。ExecStart= / usr / local / rocketmq / bin / mqnamesrv -c /usr/local/rocketmq/bin/namesrv.properties
ExecStop = / usr / local / rocketmq / bin / mqshutdown namesrv[インストール]
WantedBy = multi-user.target
2)ブローカーユニットファイルの準備: /usr/lib/systemd/system/rmq_broker.service
[単位]
説明= rmqAfter
= network.target[サービス]
Type = simple
ExecStart = / usr / local / rocketmq / bin / mqbroker -c /usr/local/rocketmq/bin/rmq-broker.conf
ExecStop = / usr / local / rocketmq / bin / mqshutdown browser[インストール]
WantedBy = multi-user.target
systemctl start service
実行してみましょう:
まず、前のネームサーバーとブローカーを手動で停止し、ネームサーバーとブローカーのマシンでそれぞれ次のコマンドを実行します。
ネームサーバー机器:/ usr / local / rocketmq / bin / mqshutdown namesrv
ブローカー机器:/ usr / local / rocketmq / bin / mqshutdownブローカー
次に、ネームサーバーとブローカーのマシンでそれぞれネームサーバーとブローカーを起動します
ネームサーバー
1)ネームサーバーを起動します
systemctl start rmq_namesrv
2)次に対応するステータスを確認します
systemctl status rmq_namesrv
次の図を参照してください。これは、起動が成功したことを示しています。
3)次に、起動時に自動的に開始するように設定します
systemctl enable rmq_namesrv
4)その他
ネームサーバーを停止する場合は、次のコマンドを実行します。systemctlstop rmq_namesrv
複数のネームサーバーがある場合は、それぞれに対して上記の関連操作を順番に実行します。
ブローカ
1)ブローカーを起動します
systemctl start rmq_broker
2)対応するステータスを表示する
systemctl status rmq_broker
次の図を参照してください。これは、起動が成功したことを示しています。
3)起動時に自動的に起動するように設定
systemctl enable rmq_broker
4)その他
ブローカーを停止する場合は、次のコマンドを実行します。systemctlstop rmq_broker
複数のブローカーがある場合は、それぞれに対して上記の関連操作を順番に実行します。
上記は、rocketmqの開始操作と停止操作を管理するためのsystemdの使用です。これがお役に立てば幸いです。メッセージを残してください。
ブロガー:お金を稼ぐためのテスト
モットー:テストと自動化に焦点を当て、研究開発の効率を改善するよう努めます。元の蓄積を完了するためのテストと勤勉さ、読書と財務管理から経済的自由まで。
csdn:https://blog.csdn.net/ccgshigao
ブログパーク:https://www.cnblogs.com/qa-freeroad/
51cto:https://blog.51cto.com/14900374