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
参考文档: