1、集群搭建
转载:https://blog.51cto.com/11134648/2155934
2、集群类型
集群分为普通模式和镜像模式
元数据包含一下内容:
队列元数据:队列名称及属性。
交换器:交换器名称及属性。
绑定关系元数据:交换器与队列或者交换器与交换器。
vhost元数据:为vhost内的队列、交换器和绑定提供命名空间及安全属性之间的绑定关系。
3、常用命令
#查看节点状态 rabbitmqctl status #停止运行rabbitmq的erlang虚拟机和rabbitmq服务应用 #如果指定了pid_file,还需要等待指定进程的结束。pid_file是通过调用 #rabbitmq-server命令启动rabbitmq服务时创建的,默认情况下存放于 #Mnesia目录中。若使用rabbitmq-sever-detach这个带有-detach后缀 #的命令来启动rabbitmq服务则不会生成pid-file文件。 rabbitmqctl stop [pid_file] #停止rabbitmq服务应用,但是erlang虚拟机还处于运行状态。此命令 #的执行优先于其它管理操作(这些管理操作需要先停止rabbitmq应用), #比如rabbitmqctl reset rabbitmqctl stop_app #将rabbitmq节点还原到最初状态。 #包括从原来所在集群中删除此节点,从管理数据库中删除所有的配置数 #据,如已经配置的用户,vhost等,以及删除所有的持久化消息。 #执行rabbitmq reset命令前必须停止rabbitmq应用(比如先执行rabbitmqctl stop_app) rabbitmqctl reset #强制将rabbitmq节点重置还原到最初状态。此命令不论当前管理数据库 #的状态和集群配置是什么,都会无条件地重置节点,只能在数据库或集群 #配置已经损坏的情况下使用 rabbitmqctl force_reset #将节点加入到指定集群中。在这个命令执行签需要停止rabbitmq应用并重#置节点 rabbitmqctl [-n nodename] join_cluster {cluster_node}[--ram] -n nodename:指定需要操作的目标节点,例如:rabbit@node1 cluster_node:需要加入的集群节点名称,格式同上 --ram:集群节点类型,有两种:ram|disc,默认disc (ram:内存节点,所有的元数据都存储在内存中;disc:磁盘节点,所有的元数据都存储在磁盘中) #查看集群状态 rabbitmqctl cluster_status #修改集群节点类型,使用此命令前要停止rabbitmq应用 rabbitmqctl change_cluster_node_type {disc|ram} node_name #将节点重集群中删除,允许离线执行 rabbitmqctl forget_cluster_node [--offiine] #在集群中的节点应用启动前咨询clusternode节点的最新信息,并更新 #相应的集群信息。这个和join_cluster不同,他不加入集群 rabbitmqctl update_cluster_nodes {clusternode} #确保节点可以启动,即使他不是最后一个关闭的节点 rabbitmqctl force_boot (集群中的节点相继宕机,如果要恢复之前的集群,则需要按照节点宕机的先后顺序,从后向前启动节点,因为最后宕机的节点数据最完善) #设置集群名称。集群名称在客户端连接的时候回通报给客户端。 #集群名称默认是集群中第一个节点的名称 rabbitmqctl set_cluster_name {name}