参考
OpenStack Docs: Messaging service for high availability
RabbitMQ - Installing on Debian / Ubuntu
かっぱのほげふが | RabbitMQ のクラスタ構成を体感する
RabbitMQ - Highly Available (Mirrored) Queues
memcachedセットアップ実施後に、以下作業をコントローラ3台に実施する。
①RabbitMQ Serverインストール&停止
$ sudo apt -y install rabbitmq-server $ sudo systemctl stop rabbitmq-server
③rabbitmq-server起動
$ sudo systemctl start rabbitmq-server.service
④クラスタ組み込み
2,3号機で以下を実施
$ sudo rabbitmqctl stop_app $ sudo rabbitmqctl join_cluster --ram rabbit@cnt1 $ sudo rabbitmqctl start_app
※モードはramとdiscの2種類あり。ramモードはキューデータをramに格納(電源障害時データ保護なし)。discモードはramとディスク両方に格納。HAキューミラー構成時は、1台でもdiscがあれば保護レベルは担保されるため、2,3号機はramモードで起動させる。詳細はmanのrabbitmqctlを参照。
⑤以下コマンドを実行してクラスタ状態を確認
$ sudo rabbitmqctl cluster_status Cluster status of node rabbit@cnt2 ... [{nodes,[{disc,[rabbit@cnt1]},{ram,[rabbit@cnt3,rabbit@cnt2]}]}, {running_nodes,[rabbit@cnt3,rabbit@cnt1,rabbit@cnt2]}, {cluster_name,<<"rabbit@cnt1.pikesaku.net">>}, {partitions,[]}] $
※running_nodesに3サーバあること
⑥キューミラー設定
1号機で以下を実施
$ sudo rabbitmqctl set_policy ha-all '^(?!amq\.).*' '{"ha-mode": "all"}'
※この(?!amq¥.)は以下URLの「先読み否定グループ」。"amq."で始まるもの以外全ての意味。
正規表現サンプル集