前提:根据上一篇MQ配置方式首先配置通一个MQ环境。(本文参考了https://blog.csdn.net/woogeyu/article/details/51119101 和https://blog.csdn.net/wochunyang/article/details/52449559 ,在这里表示感谢)
环境:192.168.1.105 rabbitmqCluster
192.168.1.106 rabbitmqCluster01
192.168.1.107 rabbitmqCluster02
1、hostnamectl set-hostname rabbitmqCluster01
hostnamectl set-hostname rabbitmqCluster02
hostnamectl set-hostname rabbitmqCluster
2、每台机器都执行nano /etc/hosts,添加下列值(目的是互通)
192.168.1.105 rabbitmqCluster
192.168.1.106 rabbitmqCluster01
192.168.1.107 rabbitmqCluster02
3、将rabbitmqCluster 的/var/lib/rabbitmq/.erlang.cookie 文件内容copy到rabbitmqCluster01 和rabbitmqCluster02 的对应文件。
4、采用从主节点copy的方式保持Cookie的一致性
scp /var/lib/rabbitmq/.erlang.cookie 192.168.1.105:/var/lib/rabbitmq
scp /var/lib/rabbitmq/.erlang.cookie 192.168.1.106:/var/lib/rabbitmq
scp /var/lib/rabbitmq/.erlang.cookie 192.168.1.107:/var/lib/rabbitmq
5、后天启动各节点:
rabbitmq-server -detached (如果已经启动了,则使用rabbitmqctl stop进行关闭)
6、集群关联:
在rabbitmqCluster01 和rabbitmqCluster02节点分别执行:
rabbitmqctl stop_app
rabbitmqctl join_cluster rabbit@rabbitmqCluster
rabbitmqctl start_app
7、在rabbitmqCluster节点上执行 rabbitmqctl cluster_status 查看状态
8、如果顺利 可以通过http://192.168.1.105:15672 进行访问
9、添加用户,添加角色,付权限(参考上篇关于RabbitMQ 的)
10、
遇到的问题:
1、Error: unable to connect to nodes [rabbit@rabbitmqCluster]: nodedown
解决方法:将rabbitmqctl join_cluster rabbit@rabbitmqCluster 改为 rabbitmqctl join_cluster rabbit@rabbitmqcluster(注意,操作系统会自动将大写的机器名转换成小写)
通过在网上漫游式的查找问题发现报这个错的还有2中情况会出现报这个错。
1> 没有做上面的第二步。
2> 给rabbitmqcluster 付权限:chmod 600 /var/lib/rabbitmq/.erlang.cookie (源自:https://blog.csdn.net/rznice/article/details/52416051)
3> 没执行第一步(有些环境需要,有些不需要)
2、如果资源消息队列导致内存不足会直接卡死(奔溃),如何治疗呢? 全部节点重启即可。
常用命令:
1>服务器启动与关闭
启动: rabbitmq-server –detached
关闭:rabbitmqctl stop 若单
机有多个实例,则在rabbitmqctlh后加–n 指定名称
2>插件管理(重启服务器后生效)
开启某个插件:rabbitmq-pluginsenable xxx
关闭某个插件:rabbitmq-pluginsdisablexxx
服务器状态:rabbitmqctl status
3>用户管理
新建用户:rabbitmqctl add_user xxxpwd
删除用户: rabbitmqctl delete_user xxx
改密码: rabbimqctlchange_password {username} {newpassword}
设置用户角色:rabbitmqctlset_user_tags {username} {tag ...}
Tag可以为 administrator,monitoring, management
4、 权限管理
权限设置:set_permissions [-pvhostpath] {user} {conf} {write} {read}
Vhostpath Vhost路径
user 用户名
Conf 一个正则表达式match哪些配置资源能够被该用户访问。
Write 一个正则表达式match哪些配置资源能够被该用户读。
查看所有队列信息
rabbitmqctl list_queues
- 1
关闭应用
rabbitmqctl stop_app
- 1
启动应用,和上述关闭命令配合使用,达到清空队列的目的
rabbitmqctl start_app
- 1
清除所有队列
rabbitmqctl reset
- 1
更多用法及参数,可以执行如下命令查看
rabbitmqctl
- 1
rabbitmq常用命令
rabbitmq-server start 或者 service rabbitmq-server start #启动rabbitmq
rabbitmqctl list_exchanges
rabbitmqctl list_bindings
- 1
- 2
- 3
- 4
- 5
rabbitmqctl list_queues #分别查看当前系统种存在的Exchange和Exchange上绑定的Queue信息。
rabbitmqctl status #查看运行信息
rabbitmqctl stop #停止运行rabbitmq
rabbitmq-plugins enable rabbitmq_management
启动rabbitmq的图形管理界面,这个操作必须重启rabbitmq, 然后在web中 http://127.0.0.1:15672 用户名和密码都是g
Read
一个正则表达式match哪些配置资源能够被该用户访问。