RabbitMQ Clustering


rabbit試験機器rabbit 1 rabbit 2 rabbit 3

独立したノードの開始

rabbit1$ rabbitmq-server -detached
rabbit2$ rabbitmq-server -detached
rabbit3$ rabbitmq-server -detached

各マシンでクラスタのステータスを表示するには、各マシンが独立したモードである必要があります.
rabbitmqctl cluster_status

クラスタの作成


3つのノードを1つのクラスタに配置しrabbit 1を主とする
rabbit2$ rabbitmqctl stop_app
rabbit2$ rabbitmqctl join_cluster --ram rabbit@rabbit1
rabbit2$ rabbitmqctl start_app
rabbit3$ rabbitmqctl stop_app
rabbit3$ rabbitmqctl join_cluster rabbit@rabbit1
rabbit3$ rabbitmqctl start_app

rabbit 1でステータスを表示する
rabbit1$ rabbitmqctl cluster_statu

ノードタイプの変更

rabbit2$ rabbitmqctl stop_app
rabbit2$ rabbitmqctl change_cluster_node_type disc
rabbit2$ rabbitmqctl start_app
rabbit3$ rabbitmqctl change_cluster_node_type ram
rabbit3$ rabbitmqctl start_app

クラスタノードの再起動

rabbit1$ rabbitmqctl stop
rabbit3$ rabbitmqctl stop
rabbit1$ rabbitmq-server -detached
rabbit3$ rabbitmq-server -detached

データの消失を防ぐために、少なくとも1つのディスクノード
最後のノードが閉じる前に最初のノードをオンラインにするには、forget_を使用します.cluster_nodeコマンド

クラスタの取り外し

rabbit3$ rabbitmqctl stop_app
rabbit3$ rabbitmqctl reset
rabbit3$ rabbitmqctl start_app

ノードをリモートで削除

rabbit1$ rabbitmqctl stop_app
rabbit2$ rabbitmqctl forget_cluster_node rabbit@rabbit1
 
rabbit1$ rabbitmqctl reset
rabbit1$ rabbitmqctl start_app

クラスタの自動構成

 :rabbitmq.config
[
  ...
  {rabbit, [
        ...
        {cluster_nodes, {['rabbit@rabbit1', 'rabbit@rabbit2', 'rabbit@rabbit3'], disc}},
        ...
  ]},
  ...
].

rabbit1$ rabbitmq-server -detached
rabbit2$ rabbitmq-server -detached
rabbit3$ rabbitmq-server -detached

参照ドキュメント:http://www.rabbitmq.com/clustering.html