• RabbitMQ集群部署


    防火墙开启的话,需要开放3个指定端口:5672、15672、25672

    1.下载安装包

    下载epel

    wget https://mirrors.tuna.tsinghua.edu.cn/epel/7/x86_64/Packages/e/epel-release-7-14.noarch.rpm
    
    • 1

    下载socat

    wget http://www.rpmfind.net/linux/centos/7.9.2009/os/x86_64/Packages/socat-1.7.3.2-2.el7.x86_64.rpm
    
    • 1

    下载erlang

    wget https://github.com/rabbitmq/erlang-rpm/releases/download/v23.2.1/erlang-23.2.1-1.el7.x86_64.rpm
    
    • 1

    下载rabbitmq-server

    wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.8.9/rabbitmq-server-3.8.9-1.el7.noarch.rpm
    
    • 1

    2.安装

    yum install -y epel-release-7-14.noarch.rpm
    yum install -y socat-1.7.3.2-2.el7.x86_64.rpm
    yum install -y erlang-23.2.1-1.el7.x86_64.rpm
    rpm -ivh rabbitmq-server-3.8.9-1.el7.noarch.rpm
    
    • 1
    • 2
    • 3
    • 4

    启动rabbitmq-server

    systemctl start rabbitmq-server
    
    • 1

    查看状态

    systemctl status rabbitmq-server
    
    • 1

    停止服务命令

    systemctl stop rabbitmq-server
    
    • 1

    3.集群部署

    同步集群节点中的cookie

    ls -a /var/lib/rabbitmq
    
    • 1

    在这里插入图片描述
    注意要rabbitmq-server启动过才会显示.erlang.cookie
    把第二台、第三台上门的.erlang.cookie删除掉,然后使用source copy命令把第一台的.erlang.cookie拷贝到二三上面来,保持一致
    在这里插入图片描述

    修改hosts文件

    vi /etc/hosts
    
    • 1

    192.168.170.1 name1
    192.168.170.2 name2
    192.168.170.3 name3

    启动rabbitmq-server

    不出意外应该会报下面的错误

    Job for rabbitmq-server.service failed because the control process exited with error code. See "systemctl status rabbitmq-server.service" and "journalctl -xe" for details.
    
    • 1

    .erlang.cookie 默认账号权限是rabbitmq,我们copy过来之后变成了root会导致启动不了,修改一下用户权限

     chown rabbitmq:rabbitmq .erlang.cookie 
    
    • 1

    在这里插入图片描述
    再来启动rabbitmq-server
    在这里插入图片描述
    集群构建
    先把3台服务器的rabbitmq-server服务重启

    systemctl restart rabbitmq-server
    
    • 1

    然后在服务器二、三上面执行,@hostname1改成你的服务器1的hostname

    rabbitmqctl stop_app
    rabbitmqctl join_cluster rabbit@hostname1
    rabbitmqctl start_app
    
    • 1
    • 2
    • 3

    4.创建用户、配置镜像策略

    在3台服务器上开启管理插件

    rabbitmq-plugins enable rabbitmq_management
    
    • 1
    rabbitmqctl add_user admin 密码
    
    rabbitmqctl set_permissions -p / admin "." "." ".*"
    
    rabbitmqctl set_user_tags admin administrator		#将admin加入administrator超级管理员组
    
    • 1
    • 2
    • 3
    • 4
    • 5

    登录web页面
    http://ip:15672
    在这里插入图片描述
    镜像策略配置

    rabbitmqctl set_policy all ".*" '{"ha-mode":"all","ha-sync-mode":"automatic"}'
    
    • 1

    所有队列设置为镜像队列,即队列会被同步到各个节点保持状态一致,RabbitMQ高可用集群就已经搭建好了。
    在这里插入图片描述
    最后设置开机自启

    systemctl enable rabbitmq-server.service
    
    • 1
  • 相关阅读:
    Springboot+JPA+ORACLE12C项目hibernate生成的SQL语句中schema."小写表名"导致的“ORA-00942 表或视图不存在”问题,求解决方案。
    【Js】导出 HTML 为 Word 文档
    UE4 创建暂停和结束游戏UI
    七夕,工作的人怎么办?
    图像加密过程中的confusion和diffusion
    3. 项目立项三板斧
    力扣刷题61-旋转链表
    PHP 给数组增加数据(array_unshift、array_push、array_splice、array_pad)
    python入门篇08- 函数进阶-参数传递
    前端还是后端:探讨Web开发的两大街区
  • 原文地址:https://blog.csdn.net/qq_42259469/article/details/127837804