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 をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: Mac ノードの削除と再インストールのケーススタディ
>>: Linux環境にMySQLデータベースをインストールする詳細なチュートリアル
導入コンパイル、インストール、問題の解決後、Nginx は正常に動作していますが、現時点では Ngi...
商用データベースの場合、データベースのアップグレードは優先度が高く、バージョンアップのロードマップ、...
データベースインデックスについては皆さんもよくご存知だと思います。 インデックスは、データベース テ...
社内には以前からアイドル状態だった、構成の整ったサーバーがあったので、EXSI 6.0 を使って複数...
sort コマンドは非常によく使用されますが、-o、-n、-u、-r などの多くのパラメーターがあり...
この記事では、カルーセルの効果を実現するためのJavaScriptの具体的なコードを参考までに共有し...
この記事では、参考までにMySQL 5.7.21のインストールチュートリアルを紹介します。具体的な内...
1. サーブレットとは何か1.1. 正式な言葉で説明する:サーブレットは、動的な Web リソースを...
インターネット上には多くのインポート方法があり、公式も3つのインポート方法を提供していますが、インポ...
Taobao用の空白スペースを作成します。 ブラウザページを縮小すると、コンテンツ領域は縮小されませ...
ミニプログラムページ間で値を渡すみなさんこんばんは。こんばんはと言うのは、これを夜に書いたからです。...
ここでは、MySQL の使用中に発生するいくつかの問題とその解決策を示します。 sql_mode=o...
以下の内容では、隣接リストを使用してツリー構造を保存する MYSQL のプロセスとソリューションを紹...
目次水波効果実装を見てみましょう水の波紋のデフォルトスタイルをカスタマイズする水の波紋の位置と直径を...
目次ウェブ開発1. Web開発の概要Tomcatのインストールと設定Tomcatをインストールする2...