DockerにRabbitMQを素早くインストールする方法

DockerにRabbitMQを素早くインストールする方法

1. 画像を取得する

#Webコントロールページを含むバージョンを指定します docker pull rabbitmq:management

2. イメージを実行する

#方法 1: デフォルトのゲストユーザー、パスワードも guest
docker run -d --hostname my-rabbit --name rabbit -p 15672:15672 -p 5672:5672 rabbitmq:management

#方法 2: ユーザー名とパスワードを設定する docker run -d --hostname my-rabbit --name rabbit -e RABBITMQ_DEFAULT_USER=user -e RABBITMQ_DEFAULT_PASS=password -p 15672:15672 -p 5672:5672 rabbitmq:management

3. UIページにアクセスする

http://localhost:15672/

4. Golangの場合

#producer プロデューサーコード パッケージ メイン

輸入 (
  「fmt」

  "ログ"

  「github.com/streadway/amqp」
)

定数(
  //AMQP URI

  uri = "amqp://guest:[email protected]:5672/" // 10.0.0.11 はホスト IP です

  //永続的な AMQP 交換名

  exchangeName = ""

  //永続的な AMQP キュー名

  queueName = "テストキュー"

  //メッセージの本文

  bodyMsg 文字列 = "こんにちは天使"
)

//エラーがある場合は出力します func failOnError(err error, msg string) {

  err != nil の場合 {

    log.Fatalf("%s: %s", メッセージ, エラー)

    パニック(fmt.Sprintf("%s: %s", msg, err))

  }

}

関数main() {

  //メッセージ公開関数を呼び出します publish(uri, exchangeName, queueName, bodyMsg)

  log.Printf("%dB を公開しました。OK", len(bodyMsg))

}

//パブリッシャーメソッド //@amqpURI、amqp アドレス //@exchange、exchange 名 //@queue、キュー名 //@body、本文コンテンツ func publish(amqpURI 文字列、exchange 文字列、queue 文字列、本文文字列) {

  //接続を確立 log.Printf("ダイヤル中 %q", amqpURI)

  接続、エラー:= amqp.Dial(amqpURI)

  failOnError(err, "RabbitMQへの接続に失敗しました")

  接続を延期する。Close()

  //チャンネルを作成する

  log.Printf("接続を取得しました。チャネルを取得しています")

  チャネル、エラー:= connection.Channel()

  failOnError(err, "チャネルを開けませんでした")

  チャネルを延期する。Close()

  log.Printf("キューを取得しました、%q を宣言しています", queue)

  //キューを作成する

  q, err := チャネル.QueueDeclare(

    queueName, // 名前

    false、// 耐久性あり

    false, // 未使用の場合は削除

    false, // 排他的

    false, // 待機なし

    nil, // 引数

  )

  failOnError(err, "キューの宣言に失敗しました")

  log.Printf("宣言されたキュー、%dB の body (%q) を公開", len(body), body)

  // プロデューサーはエクスチェンジに送信することしかできず、キューに直接送信することはできません // ここではデフォルトのエクスチェンジを使用します (名前は空文字です)。このデフォルトのエクスチェンジを使用すると、指定されたキューに送信できます。

  // routing_key は指定されたキュー名です err = channel.Publish(

    交換、// 交換

    q.Name, // ルーティングキー

    false, // 必須

    false, // 即時

    amqp.パブリッシング{

      ヘッダー: amqp.Table{},

      コンテンツタイプ: "text/plain",

      コンテンツエンコーディング: "",

      本文: []byte(body),
    })

  failOnError(err, "メッセージの公開に失敗しました")

}

5. 独自のメッセージ確認コード

#プロデューサー
パッケージメイン

輸入 (
  「fmt」
  「github.com/streadway/amqp」
  "ログ"
  「オス」
  「文字列」
)

定数(
  //AMQP URI
  uri = "amqp://guest:[email protected]:5672/"
  //永続的な AMQP 交換名
  exchangeName = ""
  //永続的な AMQP キュー名
  queueName = "テストキューの確認"
)

//エラーがある場合は出力します func failOnError(err error, msg string) {
  err != nil の場合 {
    log.Fatalf("%s: %s", メッセージ, エラー)
    パニック(fmt.Sprintf("%s: %s", msg, err))
  }
}

関数main() {
  bodyMsg := bodyFrom(os.Args)
  //メッセージ公開関数を呼び出します publish(uri, exchangeName, queueName, bodyMsg)
  log.Printf("%dB を公開しました。OK", len(bodyMsg))
}

func bodyFrom(args []string) 文字列 {
  var s 文字列
  len(args) < 2 の場合 || os.Args[1] == "" {
    s = "こんにちは天使"
  } それ以外 {
    s = 文字列.Join(args[1:], " ")
  }
  返品
}

//パブリッシャーメソッド //@amqpURI、amqp アドレス //@exchange、exchange 名 //@queue、キュー名 //@body、本文コンテンツ func publish(amqpURI 文字列、exchange 文字列、キュー文字列、本文文字列) {
  //接続を確立 log.Printf("ダイヤル中 %q", amqpURI)
  接続、エラー:= amqp.Dial(amqpURI)
  failOnError(err, "RabbitMQへの接続に失敗しました")
  接続を延期する。Close()

  //チャンネルを作成する
  log.Printf("接続を取得しました。チャネルを取得しています")
  チャネル、エラー:= connection.Channel()
  failOnError(err, "チャネルを開けませんでした")
  チャネルを延期する。Close()

  log.Printf("キューを取得しました、%q を宣言しています", queue)

  //キューを作成する
  q, err := チャネル.QueueDeclare(
    queueName, // 名前
    false、// 耐久性あり
    false, // 未使用の場合は削除
    false, // 排他的
    false, // 待機なし
    nil, // 引数
  )
  failOnError(err, "キューの宣言に失敗しました")

  log.Printf("宣言されたキュー、%dB の body (%q) を公開", len(body), body)

  // プロデューサーは Exchange にのみ送信でき、キューに直接送信することはできません。
  // 今のところ、デフォルトの交換 (名前として空の文字列) を使用します。このデフォルトの交換により、特定のキューに送信できるようになります。
  // routing_key は指定されたキュー名です。
  エラー = チャネル.公開(
    交換、// 交換
    q.Name, // ルーティングキー
    false, // 必須
    false, // 即時
    amqp.パブリッシング{
      ヘッダー: amqp.Table{},
      コンテンツタイプ: "text/plain",
      コンテンツエンコーディング: "",
      本文: []byte(body),
    })
  failOnError(err, "メッセージの公開に失敗しました")
}

これで、docker で rabbitmq を素早くインストールする手順に関するこの記事は終了です。docker で rabbitmq をインストールする方法の詳細については、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • DockerでRabbitMqの共通クラスタとミラークラスタを構築する詳細な操作
  • Docker を使用した RabbitMQ 環境のデプロイの詳細な紹介
  • Dockerでrabbitmqをデプロイする際に発生した2つの問題
  • dockerでrabbitmqをインストールすると管理ページに入れなくなる問題
  • Docker デプロイメント RabbitMQ コンテナ実装プロセス分析
  • Dockerはrabbitmqのサンプルコードをインストールして実行します
  • Dockerでrabbitmqクラスタをデプロイする方法
  • Dockerでrabbitmqクラスタ環境を構築する方法
  • RabbitMQ の Docker インストールと設定手順

<<:  Mac ノードの削除と再インストールのケーススタディ

>>:  Linux環境にMySQLデータベースをインストールする詳細なチュートリアル

推薦する

CentOS7 のシステム サービスに Nginx を追加する方法

導入コンパイル、インストール、問題の解決後、Nginx は正常に動作していますが、現時点では Ngi...

MySQL データベースのアップグレードにおけるいくつかの「落とし穴」

商用データベースの場合、データベースのアップグレードは優先度が高く、バージョンアップのロードマップ、...

データベースのインデックス作成に関する知識ポイントのまとめ。必要な情報はすべてここにあります。

データベースインデックスについては皆さんもよくご存知だと思います。 インデックスは、データベース テ...

VMware ESXi 6.0 および仮想マシンのインストール チュートリアルの展開 (画像とテキスト)

社内には以前からアイドル状態だった、構成の整ったサーバーがあったので、EXSI 6.0 を使って複数...

Linuxのsortコマンドの複数のパラメータを理解するための1つの質問

sort コマンドは非常によく使用されますが、-o、-n、-u、-r などの多くのパラメーターがあり...

JavaScript でカルーセル効果を実装する

この記事では、カルーセルの効果を実現するためのJavaScriptの具体的なコードを参考までに共有し...

Windows で mysql5.7.21 をインストールするための詳細なチュートリアル

この記事では、参考までにMySQL 5.7.21のインストールチュートリアルを紹介します。具体的な内...

Tomcat でのサーブレットの作成と実装に関する深い理解

1. サーブレットとは何か1.1. 正式な言葉で説明する:サーブレットは、動的な Web リソースを...

Vue で Alibaba のアイコンフォント ベクター アイコンを使用する方法について

インターネット上には多くのインポート方法があり、公式も3つのインポート方法を提供していますが、インポ...

CSS3 で Taobao に空白スペースを実装する方法

Taobao用の空白スペースを作成します。 ブラウザページを縮小すると、コンテンツ領域は縮小されませ...

WeChatミニプログラムページ間の価値転送を実装する方法の例

ミニプログラムページ間で値を渡すみなさんこんばんは。こんばんはと言うのは、これを夜に書いたからです。...

MySQLの使用中に発生した問題

ここでは、MySQL の使用中に発生するいくつかの問題とその解決策を示します。 sql_mode=o...

Mysqlは隣接リスト(隣接リスト)を通じてツリー構造を保存します。

以下の内容では、隣接リストを使用してツリー構造を保存する MYSQL のプロセスとソリューションを紹...

Vue は水の波紋効果のクリックフィードバック指示を実装します

目次水波効果実装を見てみましょう水の波紋のデフォルトスタイルをカスタマイズする水の波紋の位置と直径を...

IDEA を使用して Web プロジェクトを作成し、Tomcat に公開する方法

目次ウェブ開発1. Web開発の概要Tomcatのインストールと設定Tomcatをインストールする2...