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ログインインターフェースを設計する

推薦する

JS ES6 変数分割代入の詳細な説明

目次1. 脱構築とは何か? 2. 配列の分割3. 配列モードと代入モードの統一4. デフォルト値の構...

Spring Boot Docker パッケージング ツールの概要

目次スプリングブートDocker spring-boot-maven-プラグインSpotify Ma...

JavaScriptのvar let constの違いは何ですか?

目次1. 繰り返し宣言1.1 変数1.2 しましょう1.3 定数2. 可変プロモーション2.1 変数...

Javascript を使用して、スライドバー効果のあるスライドナビゲーション プラグインを開発します。

目次1. はじめに2. 使用方法3. 開発プロセス1. モデル例2. イベントとアニメーション4. ...

統計量に対するmySql SQLクエリ操作

余計なことは言わないで、コードだけ見てみましょう〜 プロジェクト番号を選択、 sum(case wh...

Linux で Docker を使用して MySQL をインストールする手順

テスターとして、学習プロセス中に Linux でソフトウェアをインストールする必要が頻繁にある場合が...

要素のフォーム要素の使用の概要

フォーム要素はたくさんあります。簡単にまとめると、次のようになります。私のやり方では、主にテキスト ...

Jenkinsはマイクロサービスをパッケージ化してDockerイメージを構築し、実行します。

目次環境の準備始める1. GitLabリモートリポジトリがマイクロサービスプロジェクトを作成する2....

MySQLの文字セットと検証ルールの詳細な説明

1いくつかの一般的な文字セットMySQL で最も一般的な文字セットには、ASCII 文字セット、ラテ...

DIVマスクを使用して、マウスでチェックボックスを直接チェックすることが無効である問題を解決します

フロントエンドの開発過程で、チェックボックスが必要な状況が発生しました。ユーザー操作の利便性を考慮し...

Linuxファイルの基本属性の知識ポイントのまとめ

Linux システムは典型的なマルチユーザー システムです。異なるユーザーは異なる立場にあり、異なる...

フレックスレイアウトにおけるflex-growとflex-shrinkの計算方法の詳しい説明

CSS のFlex(彈性布局)すると、Web ページのレイアウトを柔軟に制御できます。Flex Fl...

スクロール時に選択領域のフォント色を暗くするために CSS を使用するサンプルコード

日付ピッカーをカプセル化する場合、選択時にフォントの色を暗くする必要があります。実装後の効果を見てみ...

Dockerコンテナの接続と通信の実装

ポート マッピングは、Docker を別のコンテナーに接続する唯一の方法ではありません。 Docke...

HTML で #include ファイルを使用する例

a.htmとb.htmの2つのファイルがあります。同じディレクトリ内のa.htmの内容は次のとおりで...