CentOS7にRocketMQ4.7.1をインストールします

序文

Aliのfastjsonの低バージョン(<= 12..68)にはセキュリティの脆弱性があることが明らかになり、RocketMQ4.7.0はfastjson1.2.62を使用するため、RocketMQをRocketMQ 4.7.1(fastjson 1.2.69)にアップグレードする必要があります。

CentOS7にRocketMQ4.7.1をインストールします

この記事では、開発およびテスト環境としてのみ使用される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のポートは、次の方法で変更できます。

  1. 新しいネームサーバー構成ファイルnamesrv.confを追加し、内容を保存します。
    listenPort=10076
  2. ネームサーバーの起動時に構成ファイルを指定します。
    nohup sh bin/mqnamesrv -c namesrv.conf >/dev/null 2>&1 &
  3. RocketMQプロセスを表示します。
    ps -ef | grep rocketmq
  4. RocketMQネームサーバーのポート番号を確認します。
    netstat -tnlp | grep <nameserver_pid>
  5. ブローカーは、変更後に新しいネームサーバーアドレス(ポート)を指定する必要があります。

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*.jarRocketMQのインストールディレクトリ(この例では/ 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 ServerBrokerエラー、またはテストPlease set the JAVA_HOME variable in your environment, We need java(x64)!がシステムがすでにOpenJDK8にインストールされており、設定されている場合JAVA_HOME

解決策:実行which javaして、たとえばjavaのパスを確認します/usr/bin/java

変更bin/runserver.shbin/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

おすすめ

転載: blog.51cto.com/mageedu/2539862