实验目的:实现异步通信
实验条件:
主机名 | IP地址 | 组件 |
test1 | 20.0.0.10 | rabbitmq服务 |
test2 | 20.0.0.20 | rabbitmq服务 |
test3 | 20.0.0.30 | rabbitmq服务 |
实验步骤:
1、安装rabbitmq服务
2、erlang进入命令行,查看版本
erl
q().
rabbitmqctl version
3、主机映射
vim /etc/hosts
4、设置集群为镜像模式,集群节点互为对方节点的主节点
(1)启动rabbitmq服务
(2)安装网页插件,使得集群可以通过网页访问
rabbitmq-plugins enable rabbitmq_management
(3)在test1节点操作
①将主节点的cookie复制到其他两个节点
scp /var/lib/rabbitmq/.erlang.cookie root@20.0.0.20:/var/lib/rabbitmq/.erlang.cookie
scp /var/lib/rabbitmq/.erlang.cookie root@20.0.0.30:/var/lib/rabbitmq/.erlang.cookie
②查看集群状态
rabbitmqctl cluster_status
(4)在test2节点上操作【test3上同操作】
①加入集群
rabbitmqctl stop_app #停止服务
rabbitmqctl reset #重置数据,会把数据都删除
rabbitmqctl join_cluster rabbit@test1 #加入集群
rabbitmqctl start_app #启动服务
rabbitmqctl set_policy ha-all "#" '{"ha-mode":"all"}'
#设置集群为镜像模式
rabbitmqctl cluster_status #确认集群状态
5、确认集群是否同步
在test1上创建一个用户
rabbitmqctl add_user yyy #添加账户
rabbitmqctl set_user_tags yyy administrator
#将账户打上最高权限标签
rabbitmqctl set_permissions yyy ".*" ".*" ".*" #设置为最高权限
rabbitmqctl list_users #查看所有用户
6、在test2,test3确认账户生成,证明数据同步成功,集群搭建完成
rabbitmqctl list_users
账户同步,集群搭建完成
7、登录网页查看集群状态
20.0.0.20:15672
创建用户,赋予管理员权限
发布消息
用新建的用户登录节点服务器
问题:需要安全验证,无法登录
原因:集群挂了,无法同步新建的用户
解决:节点服务器重新加入集群
消费消息