RocketMQ の Docker インストールとインストール中に発生した問題の解決策

RocketMQ の Docker インストールとインストール中に発生した問題の解決策

この記事では主にrocketMQ4.4.0のインストールについて紹介します。インストールは主に4つのステップに分かれています。
1. rocketmq イメージをプルします。
2. namesrv を作成します。
3. ブローカーノードを作成します。ここで紹介するのは、単一のブローカーを作成する方法です。
4. rocketMQ-console サービス。rocketMQ の管理インターフェイスを管理するために使用されます。

rocketmqイメージを取得する

dockerコマンドは以下のとおりです

docker pull rocketmqinc/rocketmq:4.4.0

名前rvを作成する

Docker コマンド

docker run -d --name rmqnamesrv -p 9876:9876 -v C:\data\rocketmq\logs:/root/logs -v C:\data\rocketmq\store:/root/store -e "MAX_POSSIBLE_HEAP=100000000" rocketmqinc/rocketmq:4.4.0 sh mqnamesrv

パラメータの説明

パラメータ説明する
-dデーモンプロセスとして起動する
- -名前コンテナの名前を設定する
-pコンテナの9876ポートはローカルマシンの9876ポートにマッピングされます
-vコンテナ/ルート/ログ(ログファイル)ディレクトリをローカルマシン上の対応するパスにマップします/コンテナ/ルート/ストア(データストレージ)ディレクトリをローカルマシン上の対応するパスにマップします
-eコンテナの最大ヒープメモリを100000000に設定する
ロケットmqinc/ロケットmq:4.4.0画像名: バージョン
シュmqnamesrvサービスを開始します

単一のブローカーノードを作成する

Docker コマンド

docker run -d --name rmqbroker --link rmqnamesrv:namesrv -p 10911:10911 -p 10909:10909 --privileged=true -v C:\data\broker\logs:/root/logs -v C:\data\broker\store:/root/store -v C:\data\broker\conf\broker.conf:/opt/rocketmq-4.4.0/conf/broker.conf -e "NAMESRV_ADDR=namesrv:9876" -e "MAX_POSSIBLE_HEAP=200000000" rocketmqinc/rocketmq:4.4.0 sh mqbroker -c /opt/rocketmq-4.4.0/conf/broker.conf

パラメータの説明

パラメータ説明する
-dデーモンプロセスとして起動する
- -名前コンテナの名前を設定する
- -リンクrmqnamesrvコンテナとの通信を確立する
-p 10911:10911コンテナの非VIP通信ポート10911をローカルポート10911にマップします。
-p 10909:10909コンテナのVIP通信ポート1090をローカルポート10909にマップします。
–特権=trueプライベートフォルダのマウントを許可するように設定する
-vコンテナの /root/logs (ログ ファイル) ディレクトリをローカル マシン上の対応するパスにマップします/コンテナの /root/store (データ ストレージ) ディレクトリをローカル マシン上の対応するパスにマップします/コンテナの /opt/rocketmq-4.4.0/conf/broker.conf 構成ファイルをローカル マシン上の対応するパスにマップします (ローカル マシン上の broker.conf ファイルを毎回変更し、コンテナを再起動できます)
-e “NAMESRV_ADDR=namesrv:9876”このマシンのnamesrvアドレスを9876に指定します
-e “最大ヒープサイズ=200000000”ブローカーサービスの最大ヒープメモリを200000000に設定します
ロケットmqinc/ロケットmq:4.4.0画像名: バージョン
sh MQブローカーmqbrokerサービスを開始する
-c /opt/rocketmq-4.4.0/conf/ブローカー.confブローカーを起動するための設定ファイルを指定します

broker.conf ファイルの設定

#ノードが多数ある場合は、複数のbrokerClusterName = DefaultClusterを設定できます
#ブローカー名、マスターとスレーブは同じ名前を使用し、マスターとスレーブの関係を示します。brokerName = broker-a
#0はマスターを意味し、0より大きい値は異なるスレーブを意味します
ブローカーID = 0
#メッセージを削除する時刻を示します。デフォルトは午前 4:00 です。deleteWhen = 04
#メッセージをディスク上に保持する時間の長さ(時間単位) fileReservedTime = 48
# 値は SYNC_MASTER、ASYNC_MASTER、SLAVE の 3 つです。SYNC と ASYNC は、マスターとスレーブ間でデータを同期するメカニズムを表します。
ブローカーロール = ASYNC_MASTER
#フラッシュ戦略、値: ASYNC_FLUSH、SYNC_FLUSH は同期フラッシュと非同期フラッシュを意味します。SYNC_FLUSH メッセージは、ディスクに書き込まれた後にのみ成功ステータスを返します。ASYNC_FLUSH は必要ありません。
フラッシュディスクタイプ = ASYNC_FLUSH
# ブローカーノードが配置されているサーバーの IP アドレスを設定します namesrvAddr = ローカル IP アドレス: 9876
brokerIP1 = ローカルIPアドレス

namesrvAddr 構成が broker.conf 構成ファイルに追加されていない場合、プログラムの実行時に次のエラーが報告されます。

スレッド「main」で例外が発生しました org.apache.rocketmq.remoting.exception.RemotingTooMuchRequestException: sendDefaultImpl 呼び出しがタイムアウトしました
org.apache.rocketmq.client.impl.producer.DefaultMQProducerImpl.sendDefaultImpl(DefaultMQProducerImpl.java:588) で
org.apache.rocketmq.client.impl.producer.DefaultMQProducerImpl.send(DefaultMQProducerImpl.java:1223) で
org.apache.rocketmq.client.impl.producer.DefaultMQProducerImpl.send(DefaultMQProducerImpl.java:1173) で
org.apache.rocketmq.client.producer.DefaultMQProducer.send(DefaultMQProducer.java:214) で
com.baojian.mob.base.producer.SyncProducer.main(SyncProducer.java:41) で
15:22:31.455 [NettyClientSelector_1] INFO RocketmqRemoting - closeChannel: リモートアドレス[]への接続を閉じます。結果: true
15:22:32.049 [NettyClientSelector_1] INFO RocketmqRemoting - closeChannel: リモートアドレス[]への接続を閉じます。結果: true

rocketMQ-console サービス

Docker コマンド

イメージをプルするために docker pull コマンドを使用する代わりに、docker run コマンドを直接実行することもできます。イメージが存在しない場合は、まずイメージがプルされ、次に docker run が実行されます。

docker run -d --name rmqadmin -e "JAVA_OPTS=-Drocketmq.namesrv.addr=172.16.122.115:9876 -Dcom.rocketmq.sendMessageWithVIPChannel=false" -p 8081:8080 pangliang/rocketmq-console-ng

パラメータの説明

説明する例示する
-dデーモンプロセスとして起動する
- -名前コンテナの名前を設定する
-e "JAVA_OPTS=-Drocketmq.namesrv.addr=172.16.122.115:9876 namesrvサービスのIPアドレスを設定する
-Dcom.rocketmq.sendMessageWithVIPChannel=false" VIPチャンネルを使用せずにメッセージを送信する
-p 8081:8080コンテナのポート8080をホストのポート8081にマッピングする

rocketmq-console インターフェース コンテナーが正常に実行されたら、ブラウザーを使用して http://127.0.0.1:8081 を開き、rokcetmq-console 管理インターフェースに入り、rocketmq が正常にインストールされたことを示すクラスター情報を確認します。

ここに画像の説明を挿入

Rocketmq-console プロデューサー インターフェース エラー

ここに画像の説明を挿入

「検索」をクリックすると、プロデューサーがプロダクション グループを作成した後に producer.shutdown() を使用してプロダクション グループを閉じるため、エラー メッセージが表示されます。次のコードを使用してログアウトできます。

ここに画像の説明を挿入

これで、docker に rocketMQ をインストールし、インストール プロセス中に発生した問題を解決する方法についての記事は終了です。docker に rocketMQ をインストールする方法の詳細については、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Docker-compose インストール yml ファイルの設定方法
  • dockerにros2をインストールするための詳細な手順
  • CentOS 8にdockerをインストールする最も詳細な方法
  • Dockerにlogstashをインストールする詳細な手順
  • Windows Server 2016 に Docker をインストールするプロセスと発生した問題
  • Docker のクイックインストール手順チュートリアル

<<:  Hタグの定義と注意事項について簡単に説明します

>>:  CSSスタイルを使用してシンプルなHTMLログインインターフェースを設計する

推薦する

HTML ページの先頭に戻るいくつかの実装の概要

最近、ウェブサイトを開発する際にトップに戻るボタンを作成する必要がありますが、私は主にバックエンドの...

Vue-router ネストルーティングの詳細な説明

目次ステップ1. ルーティング ルールを設定し、子構成項目を使用します。 2. ジャンプ(フルパスを...

hrefを使用すると、リンクをクリックするだけでページ上の特定の場所にジャンプできます。

ページ内の a タグをクリックした後、ページ内の対応する場所にジャンプするようにします。方法は非常に...

私のCSSアーキテクチャのコンセプト - それは人によって異なり、ベストなものはなく、適切なものだけがある

はじめに<br />私はフロントエンド分野でかなり長い間働いており、CSS分野でも長い間...

HTML テーブルタグチュートリアル (11): 水平方向の配置属性 ALIGN

水平方向では、テーブルの配置を左、中央、右に設定できます。基本的な構文<テーブル配置=&quo...

MySQL でテーブル データを削除した後もディスク領域がまだ占有されているのはなぜですか?

目次1.MySQLデータ構造2. テーブルファイルのサイズは変更されておらず、MySQLの設計に関連...

Nginx 7層負荷分散のいくつかのスケジューリングアルゴリズムの簡単な理解

この記事は主に、Nginx 7 層負荷分散のいくつかのスケジューリング アルゴリズムを紹介します。こ...

Mysql5.7 のグループ連結関数を使用するときにデータが切り捨てられる問題に対する完璧な解決策

一昨日、本番環境でGROUP_CONCAT関数を使用して選択したデータが切り捨てられ、最大長が102...

Vue プロジェクトで mock.js を使用するための完全な手順

Vue プロジェクトで mock.js を使用する開発ツールの選択: Vscode 1. コマンドラ...

Zookeeperスタンドアロン環境とクラスタ環境の構築

1. 単一マシン環境の構築# 1.1 ダウンロードZookeeper の対応するバージョンをダウンロ...

MySQL 8.0.15 winx64 のインストールと設定方法のグラフィックチュートリアル (Windows の場合)

この記事では、MySQL 8.0.15 winx64のインストールと設定方法を参考までに紹介します。...

Selenium+testng を使用して Docker で Web 自動化を実現する方法

序文長い間さまざまな資料を読んで、ついに selenium+testng のパラメータ化の問題を解決...

Dockerコンテナの原理の分析

目次01 コンテナの本質とは何か? 02 Cgroupテクノロジーと名前空間テクノロジーの概要03 ...

JS の 6 つの継承方法とその長所と短所

目次序文プロトタイプチェーン継承コンストラクタの継承組み合わせ継承(プロトタイプチェーン継承とコンス...

ウェブ画像形式としてPNG、JPG、GIFを選択して使用する方法

では、GIF、PNG、JPG のどの形式を候補形式として選択すればよいのでしょうか。また、どの画像形...