rabbit 测试机器 rabbit1  rabbit2 rabbit3 

开始独立的节点

rabbit1$ rabbitmq-server -detachedrabbit2$ rabbitmq-server -detachedrabbit3$ rabbitmq-server -detached

在每台机器上查看集群状态,每台应该都是独立模式

rabbitmqctl cluster_status

创建集群

把三个节点放到一个集群里面,以rabbit1为主

rabbit2$ rabbitmqctl stop_apprabbit2$ rabbitmqctl join_cluster --ram rabbit@rabbit1rabbit2$ rabbitmqctl start_app
rabbit3$ rabbitmqctl stop_apprabbit3$ rabbitmqctl join_cluster rabbit@rabbit1rabbit3$ rabbitmqctl start_app

在rabbit1 上查看状态

rabbit1$ rabbitmqctl cluster_statu

改变节点类型

rabbit2$ rabbitmqctl stop_apprabbit2$ rabbitmqctl change_cluster_node_type discrabbit2$ rabbitmqctl start_apprabbit3$ rabbitmqctl change_cluster_node_type ramrabbit3$ rabbitmqctl start_app

重新启动集群节点

rabbit1$ rabbitmqctl stoprabbit3$ rabbitmqctl stoprabbit1$ rabbitmq-server -detachedrabbit3$ rabbitmq-server -detached

至少有一个磁盘节点,以防止数据丢失

最后一个节点关闭前要使第一个节点在线,如果没有这样操作,可以使用forget_cluster_node 命令

拆除一个集群

rabbit3$ rabbitmqctl stop_apprabbit3$ rabbitmqctl resetrabbit3$ rabbitmqctl start_app

远程删除一个节点

rabbit1$ rabbitmqctl stop_apprabbit2$ rabbitmqctl forget_cluster_node rabbit@rabbit1被删除的节点操作rabbit1$ rabbitmqctl resetrabbit1$ rabbitmqctl start_app

自动配置集群

配置文件:rabbitmq.config[  ...  {rabbit, [        ...        {cluster_nodes, {['rabbit@rabbit1', 'rabbit@rabbit2', 'rabbit@rabbit3'], disc}},        ...  ]},  ...].rabbit1$ rabbitmq-server -detachedrabbit2$ rabbitmq-server -detachedrabbit3$ rabbitmq-server -detached

参考文档: