LinuxはRocketMQクラスタを配備
8993 ワード
LinuxはRocketMQクラスタを配備
1.LinuxがRocketMQを起動するrocketmq環境変数への経路:binディレクトリ binディレクトリでName Serverを起動 binディレクトリでBrokerを起動
注意:起動できない場合はrunbrokerを変更します.shとrunserver.shの起動メモリは、仮想マシンメモリよりも小さく、両方の起動メモリサイズが一致します.2つのプロセスが開始されたかどうかを確認する
ヒント:3601 Jps 3494 NamesrvStartup 3530 Broker Startupサーバーをシャットダウン:まずbrokerをシャットダウンし、nameserverをシャットダウンする必要がある
ヒント:The mqbroker(36695)is running…Send shutdown request to mqbroker(36695)OK
ヒント:The mqnamesrv(36664)is running...Send shutdown request to mqnamesrv(36664)OK
2.Linuxはデュアルマスターモードクラスタを配備する2台のホストファイルの修正:
注意:修正する前に、2台のサブファイアウォールを閉じる必要があります.NICの再起動2台で互いにpingし合う例: rocketmqを指定したフォルダに解凍
修正ファイル名rocketmq:必要に応じてデータ格納経路を作成し(両機器とも作成)、スキップ可能 2台が/usr/local/rocketmq-all-4.3.2/distribution/target/apache-rocketmq/conf/2 m-noslaveディレクトリにそれぞれ入り、コードを追加(注意経路:/conf/2 m-noslave) ホスト1 broker-a.propertiesファイルを変更するには:
ホスト2 broker-b.propertiesファイルを変更するには:
注意:必要に応じて、次のような構成を追加できます.必要に応じてログプロファイルを修正(2台の機器が同じ操作)し、スキップ可能 logsディレクトリを作成します:必要に応じて起動スクリプトパラメータを変更し、JVMチューニング(2台のマシンで同様に動作)をスキップし、nameServerとbrokerを同じマシンに配置したため、実際の状況に応じてnameServerとbrokerをそれぞれjvmの性能チューニングを行うことができ、本番環境のデフォルトでは変更を必要としない.たとえば、私の仮想マシンのメモリは1 Gしかありません.nameserverとbrokerのデフォルトの起動メモリが1 Gであると仮定すると、私の仮想機会はメモリが足りないためnameserverとbrokerを同時に起動できません.この場合、2つの起動メモリを小さくする必要があります.
a)brokerのチューニング
JAVA_を修正OPT=「${JAVA_OPT}-server-Xms 1 g-Xmx 1 g-Xmn 512 m」の起動メモリ
b)nameserverのチューニング
JAVA_を修正OPT=「${JAVA_OPT}-server-Xms 1 g-Xmx 1 g-Xmn 512 m」の起動メモリbinディレクトリに戻って2台のマシンをそれぞれ起動するnameserver(2台のマシンが同じ操作)
使用可能binディレクトリで2機ずつbrokerを起動する: ホスト1(master 1):主なパスは/conf/2 m-noslave/broker-a.propertiesであることに注意
ホスト2(master 2):主なパスは/conf/2 m-noslave/broker-b.propertiesであることに注意
使用可能rocketmqのbinディレクトリでクラスタ状況を確認する:
注意:Windows側で管理制御台を開くこともでき、起動手順は以下の第4点である.ブロッカー命令停止 nameserver命令停止
3.Linuxによるデュアルマスターデュアルslave非同期レプリケーションクラスタの導入(簡略版)4台のホストファイルの修正: NIC再起動 互いにpingし合う例: 4台が/usr/local/rocketmq-all-4.3.2/distribution/target/apache-rocketmq/conf/2 m-2 s-asyncディレクトリに入り、1行コードを追加 ホスト1 broker-a.propertiesファイルを変更ホスト2 broker-b.propertiesファイルを変更マシン1からbroker-a-s.propertiesファイルを変更マシン2からbroker-b-s.propertiesファイルを変更binディレクトリでそれぞれ4台のマシンを起動するnameserver binディレクトリでそれぞれ4台のマシンを起動するbroker: ホスト1:
ホスト2:
スレーブ1:
スレーブ2:rocketmqのbinディレクトリでクラスタ状況を確認する:
注意:Windows側で管理制御台を開くことができ、手順は以下の通りで、アプリケーションを変更する必要がある.propertiesのnamesrvAddr
4.Windows起動RocketMQ管理台ダウンロード先:https://github.com/apache/rocketmq-externals.git ダウンロードしたファイルを開き、E:rocketmq-externals-masterrocketmq-consolesrcmainresourcesに進み、アプリケーションを修正する.propertiesのnamesrvAddrとserver.port構成、例えば: Cmdコマンドボックス実行入E:rocketmq-externals-masterrocketmq-console,コンパイル生成 コンパイルに成功すると、Cmdコマンドボックス実行はE:rocketmq-externals-masterrocketmq-consoletargetに入り、'rocketmq-console-ng-1.0.0を起動する.jar’. ブラウザに「127.0.0.1:ポートの構成」と入力し、正常に確認できます.
1.LinuxがRocketMQを起動する
cd /usr/local/rocketmq-all-4.3.2/distribution/target/apache-rocketmq/bin
nohup sh mqnamesrv
nohup sh mqbroker
注意:起動できない場合はrunbrokerを変更します.shとrunserver.shの起動メモリは、仮想マシンメモリよりも小さく、両方の起動メモリサイズが一致します.
jps
ヒント:3601 Jps 3494 NamesrvStartup 3530 Broker Startup
sh mqshutdown broker
ヒント:The mqbroker(36695)is running…Send shutdown request to mqbroker(36695)OK
sh mqshutdown namesrv
ヒント:The mqnamesrv(36664)is running...Send shutdown request to mqnamesrv(36664)OK
2.Linuxはデュアルマスターモードクラスタを配備する
vi /ect/hosts
192.168.9.157 rocketmq-nameserver1
192.168.9.157 rocketmq-master1
192.168.9.150 rocketmq-nameserver2
192.168.9.150 rocketmq-master2
注意:修正する前に、2台のサブファイアウォールを閉じる必要があります.NICの再起動
service network restart
ping 192.168.9.150
ping rocketmq-nameserver2
ping rocketmq-master2
tar -zxvf rocketmq-all-4.3.2.tar.gz -C /usr/local
修正ファイル名rocketmq:
mv rocketmq-all-4.3.2 rocketmq
ソフト接続の作成(有無可):ln -s rocketmq rocketmq
mkdir rocketmq/data //
mkdir rocketmq/data/commitlog //commitLog
mkdir rocketmq/data/consumerqueue //
mkdir rocketmq/data/index //
namesrvAddr=rocketmq-nameserver1:9876;rocketmq-nameserver2:9876;
ホスト2 broker-b.propertiesファイルを変更するには:
namesrvAddr=rocketmq-nameserver1:9876;rocketmq-nameserver2:9876;
注意:必要に応じて、次のような構成を追加できます.
#
brokerClusterName=rocketmq-cluster
#broker ,
brokerName=broker-a|broker-b
#0 Master, >0 Slave
brokerId=0
#nameServer ,
namesrvAddr=rocketmq-nameserver1:9876;rocketmq-nameserver2:9876
# , topic,
defaultTopicQueueNums=4
# Broker Topic, ,
autoCreateTopicEnable=true
# Broker , ,
autoCreateSubscriptionGroup=true
#Broker
listenPort=10911
# , 0
deleteWhen=00
# , 48
fileReservedTime=120
#commitLog 1G
mapedFileSizeCommitLog=1073741824
#ConsumeQueue 30W ,
mapedFileSizeConsumeQueue=300000
#destroyMapedFileIntervalForcibly=120000
#redeleteHangedFileInterval=120000
#
diskMaxUsedSpaceRatio=88
#
storePathRootDir=/opt/rocketmq/data
#commitLog
storePathCommitLog=/opt/rocketmq/data/commitlog
#
storePathConsumeQueue=/opt/rocketmq/data/consumequeue
#
storePathIndex=/opt/rocketmq/data/index
#checkpoint
storeCheckpoint=/opt/rocketmq/data/checkpoint
#abort
abortFile=/opt/rocketmq/data/abort
#
maxMessageSize=65536
#flushCommitLogLeastPages=4
#flushConsumeQueueLeastPages=2
#flushCommitLogThoroughInterval=10000
#flushConsumeQueueThoroughInterval=60000
#Broker
#- ASYNC_MASTER Master
#- SYNC_MASTER Master
#- SLAVE
brokerRole=ASYNC_MASTER
#
#- ASYNC_FLUSH
#- SYNC_FLUSH
flushDiskType=ASYNC_FLUSH
#checkTransactionMessageEnable=false
#
#sendMessageThreadPoolNums=128
#
#pullMessageThreadPoolNums=128
mkdir /opt/rocketmq/logs
次のコードを実行してログファイルの置換を行います.sedはlinuxの置換コマンドです.cd /opt/rocketmq/conf && sed -i 's#${user.home}#/opt/rocketmq#g' *.xml
a)brokerのチューニング
vim /usr/local/rocketmq-all-4.3.2/distribution/target/apache-rocketmq/bin/runbroker.sh
JAVA_を修正OPT=「${JAVA_OPT}-server-Xms 1 g-Xmx 1 g-Xmn 512 m」の起動メモリ
b)nameserverのチューニング
vim /usr/local/rocketmq-all-4.3.2/distribution/target/apache-rocketmq/bin/runserver.sh
JAVA_を修正OPT=「${JAVA_OPT}-server-Xms 1 g-Xmx 1 g-Xmn 512 m」の起動メモリ
nohup sh mqnamesrv &
使用可能
jps
コマンドnameserverプロセスがあるかどうかを確認nohup sh mqbroker -c /usr/local/rocketmq-all-4.3.2/distribution/target/apache-rocketmq/conf/2m-noslave/broker-a.properties >/dev/null 2>&1 &
ホスト2(master 2):主なパスは/conf/2 m-noslave/broker-b.propertiesであることに注意
nohup sh mqbroker -c /usr/local/rocketmq-all-4.3.2/distribution/target/apache-rocketmq/conf/2m-noslave/broker-b.properties >/dev/null 2>&1 &
使用可能
jps
brokerプロセス注:まず2台のNameServerを起動し、2台のBorkerを起動し、シャットダウンするときは順番が逆で、2台のBrokerをシャットダウンし、2台のNameserverをシャットダウンします.sh mqadmin clusterList -n "192.168.9.157:9876;192.168.9.150:9876"
注意:Windows側で管理制御台を開くこともでき、起動手順は以下の第4点である.
sh mqshutdown broker
sh mqshutdown namesrv
3.Linuxによるデュアルマスターデュアルslave非同期レプリケーションクラスタの導入(簡略版)
vi /ect/hosts
192.168.9.157 rocketmq-nameserver1
192.168.9.157 rocketmq-master1
192.168.9.150 rocketmq-nameserver2
192.168.9.150 rocketmq-master2
192.168.9.154 rocketmq-nameserver3
192.168.9.154 rocketmq-master1-slave
192.168.9.155 rocketmq-nameserver4
192.168.9.155 rocketmq-master2-slave
service network restart
ping 192.168.9.150
ping rocketmq-nameserver2
ping rocketmq-master2
namesrvAddr=rocketmq-nameserver1:9876;rocketmq-nameserver2:9876;rocketmq-nameserver3:9876;rocketmq-nameserver4:9876
nohup sh mqnamesrv &
nohup sh mqbroker -c /usr/local/rocketmq-all-4.3.2/distribution/target/apache-rocketmq/conf/2m-2s-async/broker-a.properties >/dev/null 2>&1 &
ホスト2:
nohup sh mqbroker -c /usr/local/rocketmq-all-4.3.2/distribution/target/apache-rocketmq/conf/2m-2s-async/broker-b.properties >/dev/null 2>&1 &
スレーブ1:
nohup sh mqbroker -c /usr/local/rocketmq-all-4.3.2/distribution/target/apache-rocketmq/conf/2m-2s-async/broker-a-s.properties >/dev/null 2>&1 &
スレーブ2:
nohup sh mqbroker -c /usr/local/rocketmq-all-4.3.2/distribution/target/apache-rocketmq/conf/2m-2s-async/broker-b-s.properties >/dev/null 2>&1 &
sh mqadmin clusterList -n "192.168.9.157:9876;192.168.9.150:9876;192.168.9.154:9876;192.168.9.155:987"
注意:Windows側で管理制御台を開くことができ、手順は以下の通りで、アプリケーションを変更する必要がある.propertiesのnamesrvAddr
4.Windows起動RocketMQ管理台
server.port=8082 // ,
rocketmq.config.namesrvAddr=192.168.0.158:9876;192.168.0.179:9876
mvn clean package -Dmaven.test.skip=true
java -jar rocketmq-console-ng-1.0.0.jar
localhost:8082
ポートE:rocketmq-externals-masterrocketmq-consolesrcmainresourcesの'アプリケーション.properties'ファイルはserver.port=8082