[7-01-03].第03节:环境搭建 - 集群架构
RabbitMQ学习大纲
一、使用集群的原因
- 1.基于以下原因,需要搭建一个 RabbitMQ 集群来解决实际问题
- 单机版的,无法满足目前真实应用的要求。如果 RabbitMQ 服务器遇到内存崩溃、机器掉电或者主板故障等情况,会导致rabbitMQ无法提供服务
- 单台 RabbitMQ服务器可以满足每秒 1000 条消息的吞吐量,那么如果应用需要 RabbitMQ 服务满足每秒 10 万条消息的吞吐量,就会导致消息堆积
二、搭建步骤:
第1步: 修改 3 台机器的主机名称
- vim /etc/hostname
第2步:配置各个节点的 hosts 文件,让各个节点都能互相识别对方
- vim /etc/hosts,填入以下内容:
10.211.55.74 node1
10.211.55.75 node2
10.211.55.76 node3
第3步:以确保各个节点的 cookie 文件使用的是同一个值
- 在 node1 上执行远程操作命令
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
第4步:启动 RabbitMQ 服务,顺带启动 Erlang 虚拟机和 RbbitMQ 应用服务(在三台节点上分别执行以下命令)
- rabbitmq-server -detached
第5步:在节点 2 执行
rabbitmqctl stop_app # (rabbitmqctl stop 会将 Erlang 虚拟机关闭,rabbitmqctl stop_app 只关闭 RabbitMQ 服务)
rabbitmqctl reset
rabbitmqctl join_cluster rabbit@node1
rabbitmqctl start_app(只启动应用服务)
第6步:在节点 3 执行
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl join_cluster rabbit@node2
rabbitmqctl start_app
第7步:集群状态
- rabbitmqctl cluster_status
第8步:需要重新设置用户
- 创建账号:rabbitmqctl add_user admin 123
- 设置用户角色:rabbitmqctl set_user_tags admin administrator
- 设置用户权限:rabbitmqctl set_permissions -p “/” admin “." ".” “.*”
第9步:解除集群节点(node2 和 node3 机器分别执行)
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl start_app
rabbitmqctl cluster_status
rabbitmqctl forget_cluster_node rabbit@node2(node1 机器上执行)