• Linux虚拟机搭建RabbitMQ集群


    在这里插入图片描述
    普通集群模式,意思就是在多台机器上启动多个 RabbitMQ 实例,每台机器启动一个。创建的 queue,只会放在一个 RabbitMQ 实例上,但是每个实例都同步 queue 的元数据(元数据可以认为是 queue 的一些配置信息,通过元数据,可以找到 queue 所在实例)。消费的时候,实际上如果连接到了另外一个实例,那么那个实例会从 queue 所在实例上拉取数据过来。

    1、服务器准备

    host-01 192.168.49.9
    host-02 192.168.49.10
    host-03 192.168.49.11

    在这里插入图片描述
    关闭防火墙:

     systemctl stop firewalld
    
     systemctl disable firewalld
    
     systemctl status firewalld
    
    • 1
    • 2
    • 3
    • 4
    • 5

    修改hostname:

    hostnamectl set-hostname host-01
    
    • 1

    在这里插入图片描述
    在这里插入图片描述

    修改三台服务器的hosts:

    vim /etc/hosts
    
    • 1

    添加:

    192.168.49.9 host-01
    192.168.49.10 host-02
    192.168.49.11 host-03
    
    • 1
    • 2
    • 3

    验证:

    在这里插入图片描述

    修改宿主机hosts文件:
    在这里插入图片描述
    在这里插入图片描述

    验证:
    在这里插入图片描述

    2、安装erlang环境

    三台虚拟机都按照下面方式按装环境:

    erlang-23.3.4.10-1.el7.x86_64.rpm下载页面

    在这里插入图片描述

    安装:

    rpm -ivh erlang-23.3.4.10-1.el7.x86_64.rpm
    
    • 1

    验证:

    yum info erlang
    
    • 1

    在这里插入图片描述

    3、安装RabbitMq

    Rabbitmq官网安装地址

    下载:

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

    下载完成后导入key:

    rpm --import https://www.rabbitmq.com/rabbitmq-release-signing-key.asc
    
    • 1

    安装:

    rpm -ivh rabbitmq-server-3.8.0-1.el7.noarch.rpm
    
    • 1

    在这里插入图片描述
    解决办法:

    yum install socat
    
    • 1

    在这里插入图片描述
    启动RabbitMQ:

    # 启动rabbitmq
    systemctl start rabbitmq-server
    # 查看rabbitmq状态
    systemctl status rabbitmq-server
    #设置开机启动
    systemctl enable rabbitmq-server
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    在这里插入图片描述
    安装管理界面:

    rabbitmq-plugins enable rabbitmq_management
    
    • 1

    在这里插入图片描述
    管理界面设置登录账号密码:
    RabbitMQ默认只有一个guest帐号,guest帐号只能在RabbitMQ安装服务器上登录,在其它服务器用guest登录提示User can only log in via localhost

    #第一步:添加 admin 用户并设置密码
    rabbitmqctl add_user admin 123456
    #第二步:添加 admin 用户为administrator角色
    rabbitmqctl set_user_tags admin administrator
    #第三步:设置 admin 用户的权限,指定允许访问的vhost以及write/read
    rabbitmqctl set_permissions -p "/" admin ".*" ".*" ".*"
    #第四步:查看vhost(/)允许哪些用户访问
    rabbitmqctl list_permissions -p /
    #第五步:查看用户列表
    rabbitmqctl list_users
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    分别访问三台虚拟机的RabbitMQ:

    http://host-01:15672/#/
    
    • 1

    在这里插入图片描述

    http://host-02:15672/#/
    
    • 1

    在这里插入图片描述

    http://host-03:15672/#/
    
    • 1

    在这里插入图片描述

    4、 构建erlang集群

    拷贝一台rabbitmq的erlang.cookie到另外一台,被拷贝的视为master

     scp /var/lib/rabbitmq/.erlang.cookie root@host-02:/var/lib/rabbitmq
     scp /var/lib/rabbitmq/.erlang.cookie root@host-03:/var/lib/rabbitmq
    
    • 1
    • 2

    重启节点:

    systemctl restart rabbitmq-server
    
    • 1

    从节点执行如下:

    #停止服务
    rabbitmqctl stop_app
    #重置服务
    rabbitmqctl reset
    #加入集群,$hostname为host-01的hostname
    rabbitmqctl join_cluster rabbit@host-01
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    在这里插入图片描述
    在这里插入图片描述

    高可用镜像集群配置:
    三台服务器分别执行:

    rabbitmqctl set_policy ha-all "^" '{"ha-mode":"all"}'
    
    • 1
  • 相关阅读:
    PriorityQueue常用接口介绍
    Java ThreadPoolExecutor 线程池
    vue 语法
    一文概括AxureRP的优缺点和替代软件
    Java编程学习-MySQL(数据库CRUD语句)
    NC14700 追债之旅 (拆点+最短路)
    uni-app 下载文件并保存到手机(带进度条)
    这3个图表“小心机”,用对了雪中送炭,用错了是惨不忍睹
    Master JavaScript Coding
    Python内置库:shutil
  • 原文地址:https://blog.csdn.net/qq_22744093/article/details/133675423