rabbitmq 创建集群
Rabbitmq的集群是依赖于erlang的集群来工作的,所以必须先构建起erlang的 集群环境,而Erlang的集群中各节点是通过一个magic cookie来实现的,这个 cookie 存放在 /var/lib/rabbitmq/.erlang.cookie 中,文件是 400 的权限,所以必须 保证各节点cookie保持一致,否则节点之间就无法通信。
各服务器关闭rabbitmq
systemctl stop rabbitmq-server
在mq-serverl同步.erlang.cookie至碁他两台服务器
scp /var/lib/rabbitmq/.erlang.cookie 172.31.0.106:/var/lib/rabbitmq/.erlang.cookie
chown rabbitmq:rabbitmq /var/lib/rabbitmq/.erlang.cookie #需要重新加下权限不然拷贝过去的文件存在权限问题会导致服务不能启动
各服务器启动rabbitmq
systemctl start rabbitmq-server
査看当前集群状态
rabbitmqctl cluster_status
创建rabbitmq 集群
root@mq-serverl:~# rabbitmqctl stop_app #停止 app 服务
root@mq-serverl:~# rabbitmqctl reset #*清空元数据
Resetting node rabbit@mq-serverl...
#将rabbitmq-serverl添加到集群当中,并成为内存节点,不加-ram默认是磁盘节点
root@mq-serverl:~# rabbitmqctl join_cluster rabbit@mq-server3 -ram
Clustering node rabbit@mq-serverl with rabbit@mq-server3
root@mq-serverl:~# rabbitmqctl start_app #启动 app 服务
Starting node rabbit@mq-serverl ...
completed with 3 plugins.
将集群设置为镜像模式
rabbitmqctl set_policy ha-all "#" '{"ha-mode":"all"}' 一台节点执行即可
验证集群状态
[root@mq-server3 rabbitmq]# rabbitmqctl cluster_status
Cluster status of node 'rabbit@mq-server3' ...
[{nodes,[{disc,['rabbit@mq-server3']},{ram,['rabbit@mq-server1']}]},
{running_nodes,['rabbit@mq-server1','rabbit@mq-server3']},
{cluster_name,<<"rabbit@mq-server3">>},
{partitions,[]},
{alarms,[{'rabbit@mq-server1',[]},{'rabbit@mq-server3',[]}]}]
本文来自博客园,作者:运维笔记123,转载请注明原文链接:https://www.cnblogs.com/qiuyq/p/16062338.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构