RabbitMQ

AMQPを実装し、プログラム間のメッセージのやりとりを仲介するRabbitMQの御紹介です。

 

AMQPって何もの??

AMQP

Advanced Message Queuing Protocolの略であり、ビジネスメッセージをアプリケーションや組織間で伝達するための公開規格です。
公式サイトによると、元々は金融機関向けに開発されたようで、バンク・オブ・アメリカ、JPMorgan、ドイツ銀行など欧米有力銀行で利用されているようです。
主な機能としては、異なる組織・異なるプラットフォーム・異なる時間(非同期処理)・異なる場所(離れている場所やネットワーク環境)でも、繋げることができる点に強みがあります。

@see http://qiita.com/gambaray/items/3cc02b419c860a96bc94

 

RabbitMQの嬉しい機能

  • Queueの前にExchange機能が特長で、ルーティング、ロードバランス、ファンアウトを利用できます。
  • 非同期処理
  • クラスタ化で耐障害性

Exchangeが特長です。

 

ソシャゲとRabbitMQ

課金と分割されたDBへの平行処理に使っている例がとても詳しいですね!

 

導入しましょう

EPELのインストール

 

RabbitMQのインストール

 

ファイアウォール設定

RabbitMQの起動

ユーザの作成

ユーザリストの表示

ホスト設定

ホストリスト

パーミッション設定

※管理者権限付与する場合

パーミッションを削除する場合

RabbitMQ : PHP から利用する

 

 

 

受信

 

 

送信

 

 

 

実際にメッセージを送ってみよう

RabbitMQ

左が受信側で、右が送信側のコンソール。メッセージを送信します。

 

 

RabbitMQ

右のコンソールからPHPスクリプトで送信を行うと、左のコンソールにメッセージが届きました。受信が出来たことがわかります。

 

 

管理画面の導入

ファイアウォール設定

RabbitMQ

http://サーバIPアドレス:15672

管理権限を与えたユーザでログインが可能です。

 

実際にRabbitMQを利用する際は冗長化を行って下さいね。

お疲れ様です。

 

 

金広 優 (エンジニア)
この記事を書いた人:金広 優 (エンジニア)

システムガーディアン爆弾処理班。アクセス負荷対策やNginxへの移行案件が多いこの頃。IBM SoftLayerやAWSなどクラウド案件も多くなってきました。