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

推薦する

Windows Server 2008R2、2012、2016、2019 の違い

目次共通バージョンの紹介共通バージョンのダウンロードアドレスとインストール以下に簡単な違いを示します...

Vue コンポーネントでのアンチシェイクとスロットリングの使用例の分析

入力ボックスへのユーザー入力、ウィンドウのサイズ変更、スクロール、Intersection Obse...

初心者向けMySQLインデックス

序文MySQL インデックスで最も重要なデータ構造は B+ ツリーなので、まずは B+ ツリーの原理...

Centos8環境でSSHポート番号を変更する方法

目次序文始める序文サーバーのデフォルトの SSH ポート番号は通常 22 であるため、ほとんどのユー...

JavaScript デザインパターン コマンドパターン

コマンド パターンは、JavaScript デザイン パターンにおける動作デザイン パターンです。定...

CSS のフローティング サンプル コードをクリアする方法

概要この記事のフレームワーク図は次のとおりです。 1. フローティングとは一体何でしょうか? W3s...

MySQL 5.7 でブロックポジショニング DDL の問題を解決する

前回の記事「MySQL テーブル構造の変更、メタデータ ロックを知っておく必要があります」では、MD...

Vueでeslintを使用する方法の詳細な説明

目次1. 説明2. 関連する依存パッケージをダウンロードする3. 設定ファイル .eslintrc....

Ubuntu システムにおけるネットワーク構成ファイルの分析と説明

今日は奇妙なネットワーク問題に遭遇しました。調査プロセスといくつかの構成状況を記録し、Linux で...

MySQL の複合インデックスはどのように機能しますか?

目次背景複合インデックスを理解する左端一致原則フィールド順序の影響複合インデックスは単一のインデック...

Linux ファイアウォール設定の詳細な手順 (yum ウェアハウス設定に基づく)

序文この実験では、デバッグ用に2つの仮想マシン(CentOs6とRed Hat 6)を準備します。 ...

HTML テーブル マークアップ チュートリアル (5): ライト ボーダー カラー属性 BORDERCOLORLIGHT

表では、左上の境界線の色を個別に定義したり、セルの右下の境界線の色を定義したりできます。これら 2 ...

Javascript の奇妙な点をご存知ですか?

私たちのベテランの先人たちは、数え切れないほどのコードを書き、数え切れないほどの落とし穴に陥ってきま...

Tomcat9 のダウンロード、インストール、設定 + Eclipse への統合に関する詳細なチュートリアル

トムキャット公式サイトtomcatはローカルサーバーと同等であり、Webページを開くことができます設...

Linux システムの busybox に mkfs.vfat コマンドを移植する

オーディオおよびビデオ ファイルを保存するためのディスク寿命を延ばすには、ディスクをフォーマットする...