質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.37%

Q&A

解決済

2回答

5109閲覧

openstackのrabbitmqが何をしているかわかりません。

mint.cherry

総合スコア284

0グッド

0クリップ

投稿2015/11/26 09:15

質問はタイトル通りですm(__)m

rabbitmq自体知らないので調べました。
「RabbitMQはメッセージを送るコンポーネントと送られるコンポーネントの間に入って、メッセージを受け取る、渡すというシンプルな動きをします。」
いまいち理解ができません。

例えば、glanceがもっているimageの情報をhorizon(web)に表示させたい時に、rabbitmqを経由して表示ができているということなのでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

OpenStackでは、各コンポーネント(のプロセス)を負荷分散等のため、多重化することがあります。
そのような場合でもメッセージを投げる方は、相手のことを気にせず、どんどん投げ、受け取り側は手が空いたプロセスがメッセージを取って処理していくという形になります。
rabbitmqを使わず、コンポーネントが1対1で対応していたら、このようなことはしにくいです。

投稿2015/11/26 11:11

yoshi777

総合スコア674

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

わたしもRabbitMQは使ったことがありませんが、ググると、

RabbitMQとは
メッセージキューイングとはその名前のまま、何らかの「メッセージ」を「キュー」に入れておいてくれるサーバーです。
通常アプリケーションでの通信は、

  1. 相手方に接続して
  2. 何か処理して(処理が終わるのを待って)
  3. 切断する

という流れになりますが、メッセージキューイングサーバーを使うことで、

  1. メッセージキューイングサーバーに接続して

  2. 処理したいことを書いたメッセージをキューを投げて

  3. 切断する

  4. 処理する側がメッセージキューイングサーバーに接続して

  5. メッセージが届いていないか確認して

  6. メッセージがあれば処理

という手順にすることができ、処理を依頼する側は処理の完了を待つ必要がありません
ユーザーインタフェースとしてはすぐに反応が返ってくるので気持ちよいですよね(時間のかかる処理の場合、経過がわかるような処理を作る必要はありますが)。

投稿2015/11/26 09:35

Orlofsky

総合スコア16417

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mint.cherry

2015/11/26 09:50

回答ありがとう御座います。 リンク先非常にわかりやすかったですm(__)m 仕組みとメリットは理解しました。助かります(笑) つまり、openstackのhorizonでimage情報見ているときにあわせると 1.glanceがrabbitmqに接続 2.glanceがimage情報をキューに投げる 3.切断する 1.horizonがrabbitmqに接続 2.glanceのimage情報があるか確認 3.あれば処理してwebに表示 ということでいいでしょうか?
Orlofsky

2015/11/26 09:59

はい、その理解で会っています。 何を調べたいのかって検索するキーワードを考えて自分でググって調べると学習効率もあがります。
mint.cherry

2015/11/26 10:05

返信ありがとうございますm(__)m 調べても難しい言葉ばかりで、自分の解釈が不安でした...でも、その不安が解消されました。ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.37%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問