3、三台安装rabbitmq-server HA 普通队例 镜像队列 连接可持久化
######################################################################################
参考文档
https://www.cnblogs.com/xishuai/p/centos-rabbitmq-cluster-and-haproxy.html
https://www.cnblogs.com/hukey/p/8047150.html
https://blog.csdn.net/weixin_42758707/article/details/100184082#43_rabbitMQ_303
https://www.jianshu.com/p/01adbe8d4fb2
https://www.jianshu.com/p/3a625aacd9aa
https://www.andylouse.net/linux-galera-haproxy-keepalived-mariadb
https://www.cnblogs.com/hukey/p/8047125.html
yum -y install rabbitmq-server
#遇到问题可重新安装
yum -y remove rabbitmq-server
rm -rf /var/lib/rabbitmq/*
#node1启动
systemctl enable rabbitmq-server
systemctl restart rabbitmq-server
scp /var/lib/rabbitmq/.erlang.cookie root@node2:/var/lib/rabbitmq/.erlang.cookie
scp /var/lib/rabbitmq/.erlang.cookie root@node3:/var/lib/rabbitmq/.erlang.cookie
#node2 启动并加入集群node1
ssh root@node2
chown -R rabbitmq:rabbitmq /var/lib/rabbitmq/.erlang.cookie
systemctl enable rabbitmq-server
systemctl start rabbitmq-server
rabbitmq-plugins enable rabbitmq_management
rabbitmqctl stop_app
rabbitmqctl join_cluster rabbit@node1
rabbitmqctl start_app
exit
#node3 启动并加入集群node1
ssh root@node3
chown -R rabbitmq:rabbitmq /var/lib/rabbitmq/.erlang.cookie
systemctl enable rabbitmq-server
systemctl start rabbitmq-server
#开启管理插件
rabbitmq-plugins enable rabbitmq_management
#关闭所有应用
rabbitmqctl stop_app
#加入集群
rabbitmqctl join_cluster rabbit@node1
#启动所有应用
rabbitmqctl start_app
exit
#添加用户和密码
rabbitmqctl add_user openstack openstack
#授权
rabbitmqctl set_permissions openstack ".*" ".*" ".*"
#查看状态
rabbitmqctl cluster_status
#镜像对例配置
这种模式更适合非持久化队列,只有该队列是非持久的,客户端才能重新连接到集群里的其他
# 在任意一个节点上执行:
rabbitmqctl set_policy ha-all "^" '{"ha-mode":"all"}'
# 查看策略
rabbitmqctl list_policies
http://192.168.176.62:15672
以下是收集命令
# 停止服务
rabbitmqctl -n rabbit@izuf6e78y3y0pi1watmli4z stop_app
# 加入集群 --ram 类型为内存节点;不加此参数默认为磁盘节点
rabbitmqctl -n rabbit@izuf6e78y3y0pi1watmli4z join_cluster --ram rabbit@izuf6ghdadtcqh6fnjs6zgz
# 启动服务
rabbitmqctl -n rabbit@izuf6e78y3y0pi1watmli4z start_app
# 查看节点的集群状态
rabbitmqctl -n rabbit_2@izuf6ghdadtcqh6fnjs6zgz cluster_status
# 启动界面管理服务插件
rabbitmq-plugins -n rabbit_2@izuf6ghdadtcqh6fnjs6zgz enable rabbitmq_management
# 将节点移除集群
rabbitmqctl -n rabbit_2@izuf6e78y3y0pi1watmli4z reset
# 更改节点类型 disc:磁盘节点;ram:内存节点
rabbitmqctl -n rabbit@izuf6ghdadtcqh6fnjs6zgz change_cluster_node_type disc
查看rabbitMq进程:ps -ef | grep rabbitmq
默认监听端口15672/5672:netstat -anplt | grep LISTEN rabbitmq
# 新增一个用户
rabbitmqctl add_user Username Password
# 删除一个用户
rabbitmqctl delete_user Username
# 修改用户的密码
rabbitmqctl change_password Username Newpassword
# 查看当前用户列表
rabbitmqctl list_users
# 用户角色:
(1) 超级管理员(administrator)
可登陆管理控制台(启用management plugin的情况下),可查看所有的信息,并且可以对用户,策略(policy)进行操作。
(2) 监控者(monitoring)
可登陆管理控制台(启用management plugin的情况下),同时可以查看rabbitmq节点的相关信息(进程数,内存使用情况,磁盘使用情况等)
(3) 策略制定者(policymaker)
可登陆管理控制台(启用management plugin的情况下), 同时可以对policy进行管理。但无法查看节点的相关信息(上图红框标识的部分)。
与administrator的对比,administrator能看到这些内容
(4) 普通管理者(management)
仅可登陆管理控制台(启用management plugin的情况下),无法看到节点信息,也无法对策略进行管理。
(5) 其他
无法登陆管理控制台,通常就是普通的生产者和消费者。
# 设置用户角色的命令为:
rabbitmqctl set_user_tags User Tag
# User为用户名, Tag为角色名(对应于上面的administrator,monitoring,policymaker,management,或其他自定义名称)。
# 也可以给同一用户设置多个角色,例如
rabbitmqctl set_user_tags hncscwc monitoring policymaker
# 允许用户远程访问
rabbitmqctl set_permissions -p "/" admin ".*" ".*" ".*"
# 退出集群节点:
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl start_app
# 移除节点:
rabbitmqctl stop_app
rabbitmqctl forget_cluster_node rabbit@rabbit2
# 加入集群时指定节点类型:
rabbitmqctl stop_app
rabbitmqctl join_cluster --ram rabbit@rabbit2
rabbitmqctl start_app
其中,--ram 指定内存节点类型,--disc指定磁盘节点类型
# 修改节点类型:
rabbitmqctl stop_app
rabbitmqctl change_cluster_node_type disc
rabbitmqctl start_app
# 插件存放路径
/usr/lib/rabbitmq/lib/rabbitmq_server-3.7.7/plugins
# 查看插件列表
rabbitmq-plugins list
# 启动插件
rabbitmq-plugins enable plugin-name
# 关闭插件
rabbitmq-plugins disable plugin-name
###########################################################################################