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はカスタムドロップダウンボックスを実装します

この記事の例では、カスタムドロップダウンボックスを実装するためのjsの具体的なコードを参考までに共有...

Intellij IDEA による Docker イメージの展開方法の手順の迅速な実装

目次1. Dockerはリモートアクセスを可能にする2. Intellij IDEAにDockerプ...

MySqlは指定されたユーザーのデータベースビュークエリ権限を設定します

1. 新しいユーザーを作成します。 1. SQL ステートメントを実行して新しいものを作成します (...

FlashFXP FTP クライアント ソフトウェア登録クラッキング方法

FlashFXPのダウンロードアドレスは、https://www.jb51.net/softs/95...

写真とテキストによる MySQL と sqlyog のインストール チュートリアル

1. MySQL 1.1 MySQLのインストールmysql-5.5.27-winx64 ダウンロー...

Mysqlマスタースレーブ同期の実装原理

1. MySQL マスター/スレーブ同期とは何ですか?マスター データベースのデータが変更されると、...

少なくともn日間連続してログインしているユーザーに対するSQLクエリ

MySQL ツールを使用して、3 日間連続する例を見てみましょう。 1. SQL テーブルを作成しま...

Adobe Brackets の簡単な使い方のグラフィックチュートリアル

Adobe Brackets は、HTML、CSS、JavaScript 用のオープンソースでシンプ...

モバイルデバイス上のぼやけた小さなアイコンの問題を解決する方法

序文以前、画像とテキストの垂直方向のずれの問題について説明しました。ここで示した小さな例では、小さな...

一般的なMySQLストレージエンジンの長所と短所

目次すべてのストレージエンジンを表示InnoDB ストレージ エンジンMyISAM ストレージエンジ...

Win10でのMySQL5.7.17無料インストール版の基本設定チュートリアルについて(画像とテキスト付き)

データベース アプリケーションは、アプリケーション システムに不可欠な部分です。リレーショナル デー...

Tomcat および Web アプリケーションの Docker デプロイメントの実装

1.dockerをオンラインでダウンロードする yum インストール -y epel-release...

Linux で txt を mysql にインポートする方法

序文昨日、小さなプロジェクトを書いていたときに、txt ドキュメントのデータを mysql データベ...

ページコードの変更の効率を向上させ、HTML言語のコア知識を習得します。

ウェブサイトを構築するとき、HTML 言語は重要ではないと思われるかもしれませんが、実際には、基本的...

mysql の追加、削除、変更、クエリの基本ステートメント

文法以下は、MySQL テーブルにデータを挿入するための INSERT INTO コマンドの一般的な...