Docker インストール rocketMQ チュートリアル (最も詳細)

Docker インストール rocketMQ チュートリアル (最も詳細)

RocketMQ は、Alibaba が設計した分散型のキューベースのメッセージング ミドルウェアで、次の機能を備えています。

  • 厳密なメッセージ順序付けをサポート
  • トピックモードとキューモードをサポート
  • 数十億のメッセージが蓄積される可能性がある
  • フレンドリーな分散機能
  • メッセージの消費にはプッシュモードとプルモードの両方をサポート
  • Tmall Double 11の大量メッセージの多くのテストの後
  • RocketMQ は純粋な Java で記述されており、通信フレームワーク Netty に基づいています。

実際、編集者は、RocketMQ が Tmall Double Eleven の膨大なメッセージ量のテストに何度も耐えてきたため、RocketMQ を選択すべきだと感じています。さらに、数十億のメッセージを蓄積する能力があります。このような強力なコンポーネントは、新しいダークホースです。次に、Centos7 で docker を使用して rocketMQ をインストールする方法を説明します。

1. Namesrvをインストールする

画像をプルする

docker pull rocketmqinc/rocketmq:4.4.0 

/usr/localディレクトリに新しいフォルダmqを作成します。

コマンド: mkdir mq

コンテナを起動する

docker run -d -p 9876:9876 -v {独自のパス}/data/namesrv/logs:/root/logs -v {RmHome}/data/namesrv/store:/root/store --name rmqnamesrv -e "MAX_POSSIBLE_HEAP=100000000" rocketmqinc/rocketmq:4.4.0 sh mqnamesrv

以下に示すように、私のパスは/usr/local/mqです。

パスは自分でカスタマイズできます。パスを置き換えるだけ

予防

{your own path} は、ホスト マシン上で MQ ログとデータを保存する場所に置き換える必要があります。Docker の -v パラメータを介してボリューム機能を使用して、ローカル ディレクトリをコンテナー内のディレクトリにマップします。それ以外の場合、すべてのデータはデフォルトでコンテナ ランタイムのメモリに保存され、再起動後に元の開始点に戻ります。

2. ブローカーをインストールする

broker.conf ファイルを作成する

1: {own path}/confディレクトリにbroker.confファイルを作成します。

以前の/usr/local/mqディレクトリに入り、mkdir confコマンドを入力して新しいconfディレクトリを作成します。

次に、confディレクトリにコマンドtouch broker.confを入力して新しいファイルを作成します。

vi broker.conf コマンドを入力し、キーボードの Insert キーを押して挿入を開始します。

broker.confに以下を記述します

ブローカークラスタ名 = デフォルトクラスタ
ブローカー名 = ブローカー-a
ブローカーID = 0
削除時 = 04
ファイル予約時間 = 48
ブローカーロール = ASYNC_MASTER
フラッシュディスクタイプ = ASYNC_FLUSH
brokerIP1 = {ローカルパブリックIP} 

(私のサーバーは Alibaba Cloud です。矢印はパブリック IP アドレスを示しています)

入力後、Escキーを押し、Shiftキーを押し、Vキーを押します。

終了するにはwq!と入力してください

コンテナを起動する

docker run -d -p 10911:10911 -p 10909:10909 -v {独自のパス}/data/broker/logs:/root/logs -v {独自のパス}/rocketmq/data/broker/store:/root/store -v {独自のパス}/conf/broker.conf:/opt/rocketmq-4.4.0/conf/broker.conf --name rmqbroker --link rmqnamesrv:namesrv -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 

予防

知らせ: {独自のパス}は前の手順と同じなので、ここでは繰り返されません。 broker.conf ファイル内の brokerIP1 は、Namesrv に登録されているブローカーの IP です。指定しない場合は、デフォルトでコンテナの内部 IP アドレスが使用されます。アプリケーションがネットワークに接続されたコンテナーにもデプロイされていない限り、ブローカー サービスにローカルまたはコンテナー外部で接続できず、RemotingTooMuchRequestException などのさまざまな例外が発生します。

3. RocketMQコンソールをインストールする

画像をプルする

docker pull styletang/rocketmq-console-ng 

ミラードッカーpsを表示

RocketMQコンソールを起動する

docker run -e "JAVA_OPTS=-Drocketmq.namesrv.addr=サーバーのパブリックネットワークIP:9876 -Dcom.rocketmq.sendMessageWithVIPChannel=false" -p 8080:8080 -t styletang/rocketmq-console-ng 

実行ステータスを表示する

ステータスup で操作が成功したことを示しています。

ドッカーps -a 

ブラウザアクセス

ファイアウォールのポートを開くことを忘れないでください

以下もご興味があるかもしれません:
  • DockerにRocketMQをインストールするための実装手順
  • Docker Desktop で rocketmq をインストールするための非常に詳細なチュートリアル
  • Docker での RocketMQ の詳細なインストールと使用
  • RocketMQ の Docker インストールとインストール中に発生した問題の解決策

<<:  VUE ユニアプリテンプレート構文についての簡単な説明

>>:  XHTML 入門チュートリアル: よく使われる XHTML タグ

推薦する

JavaScriptは組み込みオブジェクトのプロトタイプメソッド実装を追加します

オブジェクトがメソッドを呼び出す順序:インスタンス内にメソッドが存在しない場合は、インスタンス オブ...

Nginx フォワード プロキシとリバース プロキシ、および負荷分散機能の構成コード例

この記事は主に、Nginx のフォワード プロキシとリバース プロキシ、および負荷分散機能の設定コー...

Element における複数データ読み込み最適化の実装

目次シナリオコードの実装要約:シナリオ最近、ElementUI をベースにしたバックグラウンド管理シ...

MySQL クエリにおける LIMIT の大きなオフセットによって引き起こされるパフォーマンス低下の分析

序文MySQLクエリはselectコマンドを使用し、limitとoffsetパラメータを使用して、指...

VMware インストール エラー VMware Workstation が VMware 認証サービスを開始できませんでした

背景: SAP ECC サーバーをインストールし、XP をプレインストールしたいと考えています。XP...

MySQLでユーザーを作成し、権限を管理する方法

1. ユーザーとパスワードの作成方法1. MySQLデータベースに入る mysql> mysq...

5分でWebRTCビデオチャットを構築する

前回の記事では、Ubuntu 上の webrtc ベースの多人数ビデオチャット サービスの詳細なコー...

Mac に mysql5.7 をインストールするための完全な手順 (画像とテキスト付き)

最近、Mac システムを使用して、ローカル Web サーバー環境を構築する準備をしていました。 Ma...

ウェブ開発者やデザイナーにとって欠かせないオンラインウェブツールとアプリケーション

これまでの記事で、フロントエンド開発者にとって必須のツール、スクリプト、リソースのコレクションを紹介...

Docker+K8S+GitLab/SVN+Jenkins+Harbor をベースにした継続的インテグレーション配信環境の構築に関する詳細なチュートリアル

目次環境設定の概要1.K8Sとは何ですか? 2. K8S を使用する理由3. K8S を使用する利点...

バッチモードでtopコマンドを実行する方法

top コマンドは、Linux システムのパフォーマンスを監視するために誰もが使用している最適なコマ...

Centos7 で crontab + シェル スクリプトによる定期的な自動ファイル削除の問題を解決する

問題の説明:最近、rsyncで毎回同期するデータ量が多いが、データベースのbakファイルを保持する必...

LayUI+Shiroは動的なメニューを実装し、メニュー拡張の例を記憶します

目次1. Maven 依存関係2. メニュー関連クラス1. メインメニュー2. サブメニュー3. S...

Webデザインの経験:ナビゲーションシステムをシンプルにする

<br />友人と話し合っていたとき、フレームワークのレイヤー設計の中で最も核となるのは...

Linux でディスク IO を表示し、読み取りと書き込みで高い IO を占有するプロセスを見つけます。

背景 - オンラインアラートオンライン サーバーがアラームを発し、ディスク使用率 disk.util...