rabbitmqでclusterを構成を組んだ上でキューの作成やメッセージの送受信をしてみました
■rabbitmqインストール
以下の記事を参考に2台のrabbitmqサーバを作成します
chefによるインストールを紹介していますが、普通にchefじゃなくても大丈夫です
http://kakakikikeke.blogspot.com/2013/05/rabbitmq.html
chefによるインストールを紹介していますが、普通にchefじゃなくても大丈夫です
http://kakakikikeke.blogspot.com/2013/05/rabbitmq.html
■cluster構成作成
・スレーブ側操作
クラスタとして追加したサーバはRAMモードとDISKモードというキューの保存方法が異なる形式を選択することができます
DISKモードに変更したい場合は以下の操作をスレーブ側で実行します
クラスタから外したいときは以下の操作をスレーブ側で実行します
rabbitmqctl stop_app
rabbitmqctl join_cluster --ram rabbit@マスタ側サーバIP
rabbitmqctl start_app
・マスタ側操作rabbitmqctl join_cluster --ram rabbit@マスタ側サーバIP
rabbitmqctl start_app
rabbitmqctl cluster_status
クラスタとして追加したサーバはRAMモードとDISKモードというキューの保存方法が異なる形式を選択することができます
DISKモードに変更したい場合は以下の操作をスレーブ側で実行します
rabbitmqctl stop_app
rabbitmqctl change_cluster_node_type disc
rabbitmqctl start_app
rabbitmqctl change_cluster_node_type disc
rabbitmqctl start_app
クラスタから外したいときは以下の操作をスレーブ側で実行します
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl start_app
rabbitmqctl reset
rabbitmqctl start_app
■キュー作成とメッセージのやりとり
※guestユーザでvhost「/」に対して実行した場合です
rabbitmqadmin --host サーバのIPアドレス declare queue name=testqueue001
rabbitmqadmin --host サーバのIPアドレス list queues
rabbitmqadmin --host サーバのIPアドレス publish routing_key=testqueue001 payload="test message 001" exchange=amq.default
rabbitmqadmin --host サーバのIPアドレス get queue=testqueue001 requeue=false
上記実施後にマスタサーバとスレーブサーバ両方でキューの確認をすると両方のサーバに情報が反映されていることがわかります
rabbitmqadmin --host サーバのIPアドレス declare queue name=testqueue001
rabbitmqadmin --host サーバのIPアドレス list queues
rabbitmqadmin --host サーバのIPアドレス publish routing_key=testqueue001 payload="test message 001" exchange=amq.default
rabbitmqadmin --host サーバのIPアドレス get queue=testqueue001 requeue=false
上記実施後にマスタサーバとスレーブサーバ両方でキューの確認をすると両方のサーバに情報が反映されていることがわかります
■注意事項
The nodes provided are either offline or not running
上記のエラーが出るときはerlang.cookiesという設定ファイルがサーバ同志で共有されてない場合にでます
/var/lib/rabbitmq/.erlang.cookie
上記を共有したあとにrabbitmqを再起動すると直ります
上記のエラーが出るときはerlang.cookiesという設定ファイルがサーバ同志で共有されてない場合にでます
/var/lib/rabbitmq/.erlang.cookie
上記を共有したあとにrabbitmqを再起動すると直ります
0 件のコメント:
コメントを投稿