1.rabbitmq版本查看

执行命令:rabbitmqctl status

rabbitmq 容器启动并挂载数据目录 启动rabbitmq命令_重启


红框内显示的既是当前rabbitmq版本号。

RabbitMQ命令汇总以及出现的问题

集群关闭后,重启启动失败

网上找方法,一步步测试,总结如下:

1.systemctl status rabbitmq-server.service 此命令查看相关信息

2.前台执行 ./rabbitmq-server 启动服务器,会有错误信息输出到屏幕上

3./usr/sbin/rabbitmq-server 使用这个启动

4. service rabbitmq-server stop 集群停止

5. service rabbitmq-server start 集群启动

6. rabbitmq-server -detached 集群后台启动

7. rabbitmqctl cluster_status 检查集群状态

/mnt/disk1/data/rabbitmq/log

集群重启顺序
集群重启的顺序是固定的,并且是相反的。 如下所述:

启动顺序:磁盘节点 => 内存节点

关闭顺序:内存节点 => 磁盘节点

最后关闭必须是磁盘节点,不然可能回造成集群启动失败、数据丢失等异常情况。
重建集群
注1:此处的mq集群重建是比较快速和有效的方法,面向的是初次安装或者可以接受mq中所存有的数据丢失的情况下,必须先有mq的.json后缀的配置文件或者有把握写入集群中exchange、queue等配置。

按顺序停止所有机器中的rabbitmq
#机器A
service rabbitmq-server stop
epmd -kill
#机器B
service rabbitmq-server stop
epmd -kill
#机器C
service rabbitmq-server stop
epmd -kill
移除rabbitmq配置记录与存储文件
#位于 /var/lib/rabbitmq/mensia
mv /var/lib/rabbitmq/mensia /var/lib/rabbitmq/mensia.bak
按顺序启动所有机器中的rabbitmq
#机器C
service rabbitmq-server start
#机器B
service rabbitmq-server start
#机器A
service rabbitmq-server start
停止被加入集群节点app
比如A、B、C三台机器,将B和C加入到A中去,需要执行以下命令

#机器B
rabbitmqctl stop_app
#机器C
rabbitmqctl stop_app
建立集群
注意此处master为唯一没有执行rabbitmqctl stop_app的机器

#机器B
rabbitmqctl join_cluster rabbit@master
#机器C
rabbitmqctl join_cluster rabbit@master
启动集群
#机器B
rabbitmqctl start_app
#机器C
rabbitmqctl start_app
检查集群状态
在任意一台机器上执行rabbitmqctl cluster_status命令即可检查,输出包含集群中的节点与运行中的节点,兼以主机名标志

添加集群配置
创建用户
例子中创建了两个用户

添加用户add_user,设置角色set_user_tags,添加rabbitmq虚拟主机add_vhost,设置访问权限set_permissions,以下是详细用法

# 创建第一个用户
/usr/sbin/rabbitmqctl add_user 用户名 密码
/usr/sbin/rabbitmqctl set_user_tags 用户名 administrator
/usr/sbin/rabbitmqctl set_permissions -p /  用户名 ".*" ".*" ".*"
# 创建第二个用户
/usr/sbin/rabbitmqctl add_user 用户名2 密码
/usr/sbin/rabbitmqctl set_user_tags 用户名2 management 
/usr/sbin/rabbitmqctl add_vhost sip_ext 
/usr/sbin/rabbitmqctl set_permissions -p sip_ext 用户名2 '.*' '.*' '.*'

备注:RabbitMQ 虚拟主机,RabbitMQ 通过虚拟主机(vhost)来分发消息。拥有自己独立的权限控制,不同的vhost之间是隔离的,单独的。
权限控制的基本单位:vhost。
用户只能访问与之绑定的vhost。
vhost是AMQP中唯一无法通过协议来创建的基元。只能通过rabbitmqctl工具来创建。
打开15672网页管理端,访问mq
/usr/sbin/rabbitmq-plugins enable rabbitmq_management

备注:如果发现命令执行完毕没有打开此服务,15672端口没有监听,则是由于没有重启mq导致的