RabbitMQ集群设置
RabbitMQ服务的搭建不再叙说,请参考我先前的文章
1、分别在每个集群机器上面配置hosts文件(一般在C:\Windows\System32\drivers\etc目录下),里面是机器的IP地址和机器的名称
例如:192.168.0.26 name1
192.168.0.40 name2
2、集群时需要保证erlang的cookie各个机器一致,否则无法通信。
任意选择一台集群中的机器,进入到C:\Windows目录下,找到.erlang.cookie文件,复制该文件并替换其他各个机器,再把该文件复制到每台集群机器的目录:C:\Users\Administrator 下。保证所有机器下面的这两个目录下的cookie文件内容一致。
5、命令行方式
将各节点的rabbitmq服务开启: rabbitmq-service start
选择其中一个节点将其停止: rabbitmqctl stop_app
将步骤2中的机器加入集群: rabbitmqctl join_cluster (--ram) rabbit@hostname
(ram 为内存节点, 默认情况下为disc磁盘节点) 注意此时的node在windows机器下面是大写的。
开启rabbitmq服务: rabbitmqctl start_app
查看集群状况: rabbitmqctl cluster_status
出现如上图,表示集群设置成功。
用浏览器打开网页监控软件,会看到两个RabbitMQ服务器集群的信息
主机IP变更后,需要更换主机和从机的hosts文件
net stop RabbitMQ && net start RabbitMQ:停止RabbitMQ后启动
rabbitmqctl list_queues:查看所有队列信息
rabbitmqctl stop_app:关闭应用(关闭当前启动的节点)
rabbitmqctl start_app:启动应用,和上述关闭命令配合使用,达到清空队列的目的
rabbitmqctl reset:从管理数据库中移除所有数据,例如配置过的用户和虚拟宿主, 删除所有持久化的消息(这个命令要在rabbitmqctl stop_app之后使用)
rabbitmqctl force_reset:作用和rabbitmqctl reset一样,区别是无条件重置节点,不管当前管理数据库状态以及集群的配置。如果数据库或者集群配置发生错误才使用这个最后的手段
rabbitmqctl status:节点状态
rabbitmqctl add_user username password:添加用户
rabbitmqctl list_users:列出所有用户
rabbitmqctl list_user_permissions username:列出用户权限
rabbitmqctl change_password username newpassword:修改密码
rabbitmqctl add_vhost vhostpath:创建虚拟主机
rabbitmqctl list_vhosts:列出所有虚拟主机
rabbitmqctl set_permissions -p vhostpath username "." "." ".*":设置用户权限
rabbitmqctl list_permissions -p vhostpath:列出虚拟主机上的所有权限
rabbitmqctl clear_permissions -p vhostpath username:清除用户权限
rabbitmqctl -p vhostpath purge_queue blue:清除队列里的消息
rabbitmqctl delete_user username:删除用户
rabbitmqctl delete_vhost vhostpath:删除虚拟主机