rabbitmq消息队列实验

实验目的:实现异步通信

实验条件:

主机名

IP地址

组件

test1

20.0.0.10

rabbitmq服务

test2

20.0.0.20

rabbitmq服务

test3

20.0.0.30

rabbitmq服务

实验步骤:

1、安装rabbitmq服务

rabbitmq消息队列实验_第1张图片

2、erlang进入命令行,查看版本

erl

q().

rabbitmqctl version

rabbitmq消息队列实验_第2张图片

3、主机映射

vim /etc/hosts

rabbitmq消息队列实验_第3张图片

4、设置集群为镜像模式,集群节点互为对方节点的主节点

(1)启动rabbitmq服务

rabbitmq消息队列实验_第4张图片

(2)安装网页插件,使得集群可以通过网页访问

rabbitmq-plugins enable rabbitmq_management

rabbitmq消息队列实验_第5张图片

(3)在test1节点操作

①将主节点的cookie复制到其他两个节点

scp /var/lib/rabbitmq/.erlang.cookie [email protected]:/var/lib/rabbitmq/.erlang.cookie

scp /var/lib/rabbitmq/.erlang.cookie [email protected]:/var/lib/rabbitmq/.erlang.cookie

rabbitmq消息队列实验_第6张图片

②查看集群状态

rabbitmqctl cluster_status

rabbitmq消息队列实验_第7张图片

(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    #确认集群状态

rabbitmq消息队列实验_第8张图片

rabbitmq消息队列实验_第9张图片

rabbitmq消息队列实验_第10张图片

5、确认集群是否同步

在test1上创建一个用户

rabbitmqctl add_user yyy               #添加账户

rabbitmqctl set_user_tags yyy administrator    

#将账户打上最高权限标签

rabbitmqctl set_permissions yyy ".*" ".*" ".*"  #设置为最高权限

rabbitmqctl list_users  #查看所有用户

rabbitmq消息队列实验_第11张图片

6、在test2,test3确认账户生成,证明数据同步成功,集群搭建完成

rabbitmqctl list_users

rabbitmq消息队列实验_第12张图片

rabbitmq消息队列实验_第13张图片

账户同步,集群搭建完成

7、登录网页查看集群状态

20.0.0.20:15672

rabbitmq消息队列实验_第14张图片

rabbitmq消息队列实验_第15张图片

创建用户,赋予管理员权限

rabbitmq消息队列实验_第16张图片

rabbitmq消息队列实验_第17张图片

发布消息

rabbitmq消息队列实验_第18张图片

rabbitmq消息队列实验_第19张图片

rabbitmq消息队列实验_第20张图片

rabbitmq消息队列实验_第21张图片

rabbitmq消息队列实验_第22张图片

用新建的用户登录节点服务器

问题:需要安全验证,无法登录

rabbitmq消息队列实验_第23张图片

原因:集群挂了,无法同步新建的用户

解决:节点服务器重新加入集群

rabbitmq消息队列实验_第24张图片

rabbitmq消息队列实验_第25张图片

消费消息

rabbitmq消息队列实验_第26张图片

你可能感兴趣的:(rabbitmq,linux,分布式)