systemctl start rabbitmq-server
systemctl stop rabbitmq-server
systemctl restart rabbitmq-server
rabbitmqctl stop_app
rabbitmqctl change_cluster_node_type dist --磁盘节点
或
rabbitmqctl change_cluster_node_type ram --内存节点
rabbitmqctl start_app
rabbitmqctl status
rabbitmqctl reset
#机器B 加入rabbit@master节点
rabbitmqctl stop_app
rabbitmqctl join_cluster rabbit@master
rabbitmqctl start_app
#机器C 加入rabbit@master节点
rabbitmqctl stop_app
rabbitmqctl join_cluster rabbit@master
rabbitmqctl start_app
注:此处要加入至的 rabbit@master 节点,不需要执行 rabbitmqctl stop_app 命令。
rabbitmqctl stop_app
rabbitmqctl start_app
rabbitmqctl cluster_status
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl start_app
或者
rabbitmqctl forget_cluster_node rabbit@rabbit-1 #支持远程删除节点(在处理无响应节点时,这个很有用)
集群重启的顺序是固定的,并且是相反的。 如下所述:
启动顺序:磁盘节点 => 内存节点
关闭顺序:内存节点 => 磁盘节点
最后关闭必须是磁盘节点,不然可能回造成集群启动失败、数据丢失等异常情况。
没有一个直接的命令可以关闭整个集群,需要逐一进行关闭。但是需要保证在重启时,最后关闭的节点最先被启动。
如果第一个启动的不是最后关闭的节点,那么这个节点会等待最后关闭的那个节点启动,默认进行 10 次连接尝试,超时时间为 30 秒,如果依然没有等到,则该节点启动失败。
节点在停止和重新启动时经历的过程:
停止节点选择一个集群成员(将仅考虑磁盘节点)以在重新启动后与之同步。重新启动后,默认情况下,该节点将尝试与集群对方联系10次,每次响应超时为30秒。
如果对端在该时间间隔内可用,则该节点将成功启动,同步对端的信息并继续运行。如果对等方不可用,则重新启动的节点将放弃并自愿停止。
当节点在关闭过程中没有集群节点在线时,它将在不尝试与任何已知对端同步的情况下启动。它将等待对端重新加入它。
因此,当整个群集关闭时,最后一个关闭的节点是在关闭时唯一没有任何正在运行的对等节点的节点。该节点可以启动而无需先联系任何对等节点。
由于节点将尝试与已知对等方联系最多5分钟(默认情况下),因此可以在该时间段内以任何顺序重新启动节点。在这种情况下,他们将成功地彼此重新加入。
可以使用两种配置设置来调整此时间窗口:
# wait for 60 seconds instead of 30
mnesia_table_loading_retry_timeout = 60000
# retry 15 times instead of 10
mnesia_table_loading_retry_limit = 15
通过调整这些设置并调整必须返回已知对等方的时间窗口,可以解决可能需要超过5分钟才能完成的群集范围内的重新部署方案。 升级期间,有时最后一个要停止的节点必须是升级后要启动的第一个节点。该节点将被指定执行集群范围的架构迁移,其他节点可以在它们重新加入时从中进行同步并应用。
在某些情况下,无法恢复最后一个脱机节点。您可以使用forget_cluster_node
另外,可以在节点上使用force_boot rabbitmqctl命令使其引导,而无需尝试与任何对等节点同步(就像它们最后一次关闭一样)。仅当最后一个要关闭的节点或一组节点永远不会重新联机时,才通常需要这样做。
rabbitmqctl add_vhost zat
注:RabbitMQ 通过虚拟主机(vhost)来分发消息。拥有自己独立的权限控制,不同的vhost之间是隔离的,单独的。
rabbitmqctl add_user 用户名 密码
rabbitmqctl set_user_tags 用户名 administrator
rabbitmqctl set_permissions -p zat 用户名 ".*" ".*" ".*"
rabbitmqctl change_password 用户名 密码
rabbitmqctl delete_user guest
rabbitmqctl list_users
rabbitmqctl list_user_permissions username
rabbitmqctl set_policy -p zat ha-allqueue "^" ‘{"ha-mode":"all"}‘
命令說明:针对指定vhost(zat)下的queue进行设置为镜像队列,即队列会被复制到集群各个节点,各个集群节点交换机、队列、队列内容都保持一致。
rabbitmqctl sync_queue {queue_name}
注:前提是镜像队列,队列中的数据将会在整个集群的相应节点(取决于设置的策略)上复制存储。
rabbitmqctl cancel_sync_queue {queue_name}
rabbitmq-plugins enable rabbitmq_management
/var/lib/rabbitmq/mensia/rabbit@localhost
原文:https://www.cnblogs.com/caoweixiong/p/14371114.html