序文
Aliのfastjsonの低バージョン(<= 12..68)にはセキュリティの脆弱性があることが明らかになり、RocketMQ4.7.0はfastjson1.2.62を使用するため、RocketMQをRocketMQ 4.7.1(fastjson 1.2.69)にアップグレードする必要があります。
この記事では、開発およびテスト環境としてのみ使用されるCentOS7にRocketMQ4.7.1をインストールするプロセスについて説明します。
- スタンドアロン展開。NameServerとBrokerの両方が1つのサーバーにインストールされます。
- RocketMQのデフォルトのJVMサイズを削減しました。
- 自己起動プロセスとデーモンプロセスは設定されていません。
インストールプロセス
OpenJDK 8がサーバーにインストールされ、セットアップされましたJAVA_HOME
。
RocketMQをダウンロードして解凍します
RocketMQ公式WebサイトでRocketMQ4.7.1をダウンロードするためのリンクを見つけ、RocketMQをダウンロードして解凍します。
# 下载
wget http://ftp.cuhk.edu.hk/pub/packages/apache.org/rocketmq/4.7.1/rocketmq-all-4.7.1-bin-release.zip
# 解压
unzip rocketmq-all-4.7.1-bin-release.zip
# 安装到/usr/local/rocketmq
mv rocketmq-all-4.7.1-bin-release /usr/local
ln -s /usr/local/rocketmq-all-4.7.1-bin-release /usr/local/rocketmq
RocketMQのJVMサイズを縮小します
RocketMQのデフォルトのJVMは大きすぎて開発およびテスト環境で使用できないため、JVMのサイズを小さくする必要があります。
RocketMQのインストールディレクトリ(この例では/ usr / local / rocketmq)で、shスクリプトでJVMパラメータ設定を見つけます。
find . -name '*.sh' | xargs egrep 'Xms'
次のshスクリプトのJVMパラメーターを変更する必要があります。
bin/runserver.sh
bin/runbroker.sh
bin/tools.sh
変更する前に、対応するスクリプトをバックアップすることを忘れないでください。特定のJVMサイズは、実際の状況に応じて設定されます。
--bin / runserver.sh
修正する前に:
JAVA_OPT="${JAVA_OPT} -server -Xms4g -Xmx4g -Xmn2g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
変更後:
JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn128m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
--bin / runserver.sh
修正する前に:
JAVA_OPT="${JAVA_OPT} -server -Xms4g -Xmx4g -Xmn2g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
変更後:
JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn128m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
-bin / tools.shが
変更される前:
JAVA_OPT="${JAVA_OPT} -server -Xms1g -Xmx1g -Xmn256m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=128m"
変更後:
JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn128m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=128m"
ネームサーバーを起動します
# 后台启动
nohup sh bin/mqnamesrv >/dev/null 2>&1 &
NameServerのデフォルトポートは9876です。shbin/ mqnamesrv-pを実行してNameServerの構成アイテムを表示し、-cnamesrv.confで構成ファイルを指定することから始めます。
RocketMQのデフォルトのログパスは `〜/ logs / rocketmqlogs /` `です。
起動名サーバーコマンドをスクリプトとして保存して、次回の起動を容易にすることができます。
ブローカーを開始
Brokerを起動するときに、接続するネームサーバーを指定する必要があります。
# 后台启动
nohup sh bin/mqbroker -n localhost:9876 >/dev/null 2>&1 &
起動ブローカーコマンドをスクリプトとして保存して、次回の起動を容易にすることができます。
RocketMQプロセスを表示する
ps -ef | grep -v grep | grep rocketmq
RocketMQをテストする
メッセージの送受信をテストする
RocketMQ独自のメッセージプロデューサーとコンシューマーの例を使用して、メッセージの送受信をテストします。
export NAMESRV_ADDR=localhost:9876
sh bin/tools.sh org.apache.rocketmq.example.quickstart.Producer
sh bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer
RocketMQを閉じる
ブローカーを閉じる
sh bin/mqshutdown broker
Broker shutdownコマンドをスクリプトとして保存して、次のシャットダウンを容易にすることができます。
ネームサーバーを閉じる
sh bin/mqshutdown namesrv
Name Serverを閉じる前に、ブローカーを閉じる必要があります。
次のシャットダウンを容易にするために、コマンドを保存してネームサーバーをスクリプトとして閉じることができます。
ネームサーバーのポートを変更する
RocketMQ Name Serverのデフォルトポートは9876です。NameServerのポートは、次の方法で変更できます。
- 新しいネームサーバー構成ファイルnamesrv.confを追加し、内容を保存します。
listenPort=10076
- ネームサーバーの起動時に構成ファイルを指定します。
nohup sh bin/mqnamesrv -c namesrv.conf >/dev/null 2>&1 &
- RocketMQプロセスを表示します。
ps -ef | grep rocketmq
- RocketMQネームサーバーのポート番号を確認します。
netstat -tnlp | grep <nameserver_pid>
- ブローカーは、変更後に新しいネームサーバーアドレス(ポート)を指定する必要があります。
RocketMQコンソールをインストールします
rocketmq-externalsプロジェクトのクローンを作成し、rocketmq-consoleをコンパイルします。
コマンド例:
git clone https://github.com/apache/rocketmq-externals.git
cd rocketmq-externals/rocketmq-console
mvn clean package -Dmaven.test.skip=true
それはされますtarget/rocketmq-console-ng*.jar
RocketMQのインストールディレクトリ(この例では/ usr / local /のrocketmq)に入れました。
RocketMQインストールディレクトリにRocketMQコンソールを起動するスクリプトを作成して、RocketMQコンソールを起動します。
nohup java -jar rocketmq-console-ng*.jar --server.port=8080 --rocketmq.config.namesrvAddr=localhost:9876 > /dev/null 2>&1 &
デフォルトでは、RocketMQコンソールはログインにパスワードを必要としません。構成については、RocketMQのドキュメントを参照してください。
見る:
トラブルシューティング
質問1:開始Name Server
とBroker
エラー、またはテストPlease set the JAVA_HOME variable in your environment, We need java(x64)!
がシステムがすでにOpenJDK8にインストールされており、設定されている場合JAVA_HOME
。
解決策:実行which java
して、たとえばjavaのパスを確認します/usr/bin/java
。
変更bin/runserver.sh
とbin/runbroker.sh
してbin/tools.sh
、コメントを検証外JAVA_HOME
の文と明示的に指定するJAVA路
パスを:
#[ ! -e "$JAVA_HOME/bin/java" ] && JAVA_HOME=$HOME/jdk/java
#[ ! -e "$JAVA_HOME/bin/java" ] && JAVA_HOME=/usr/java
#[ ! -e "$JAVA_HOME/bin/java" ] && error_exit "Please set the JAVA_HOME variable in your environment, We need java(x64)!"
#export JAVA_HOME
export JAVA="/usr/bin/java"
参考文献
- RocketMQのインストールと展開のチュートリアルの詳細な説明
- RocketMQのインストールの詳細な手順
原文:http
://suo.im/6197rC作成者:nklinsirui