rabbitmq单机部署、集群部署

环境准备

服务器IP

服务器 IP hostname
rabbit-50 192.168.86.50 node0
rabbit-51 192.168.86.51 node1
rabbit-52 192.168.86.52 node2

单机模式部署

  1. 根据服务器的内核下载对应的 Erlang 版本、rabbitmq 的版本,并且将两个文件上传到服务器 /opt 目录下

    uname -r
    

    ? rabbitmq单机部署、集群部署

  2. 安装依赖 socat、logrorate

    yum install socat logrotate -y
    
  3. 安装依赖 Erlang

    cd /opt #进入上传目录
    rpm -ivh erlang-23.3.4.4-1.el7.x86_64.rpm
    
  4. 安装 rabbitmq

    rpm -ivh rabbitmq-server-3.8.19-1.el7.noarch.rpm
    
  5. 设置开机自启动

    chkconfig rabbitmq-server on
    
  6. 安装rabbitmq_management 插件用于前台管理

    rabbitmq-plugins enable rabbitmq_management
    
  7. 创建一个超级管理员用户,并且赋权

    rabbitmqctl add_user root s3crEt 
    rabbitmqctl set_user_tags root administrator
    rabbitmqctl set_permissions --vhost ‘/‘ root ‘.*‘ ‘.*‘ ‘.*‘  
    
  8. 启动、停止、查看状态

    /sbin/service rabbitmq-server status #查看状态
    /sbin/service rabbitmq-server start #启动
    /sbin/service rabbitmq-server stop #停止
    
  9. 前台浏览器访问 http://localhost:15672

集群模式部署

  1. 修改三台机器的主机名称: vi /etc/hostname

  2. 配置各个节点的hosts文件,让各个节点能够互相识别对方: vi /etc/host

    192.168.86.50 node0
    192.168.86.51 node1
    192.168.86.52 node2
    
  3. 重启服务器

  4. 按照单机模式部署的步骤,每台机器从第1步执行到第6步结束

  5. 确保每个服务器的 erlang.cookie 文件使用的是同一个值,在node0执行以下命令:

    scp /var/lib/rabbitmq/.erlang.cookie root@node1:/var/lib/rabbitmq/.erlang.cookie
    scp /var/lib/rabbitmq/.erlang.cookie root@node2:/var/lib/rabbitmq/.erlang.cookie
    
    
  6. 启动 rabbitmq 服务,在三台机器上执行以下命令

    systemctl start rabbitmq-server
    
  7. 在 node1 执行以下命令

    rabbitmqctl join_cluster rabbit@node0
    rabbitmqctl start_app
    
  8. 在node2执行以下命令

    rabbitmqctl join_cluster rabbit@node1
    rabbitmqctl start_app
    
  9. 查看集群状态

    rabbitmqctl cluster_status
    
  10. 创建用户及赋权

    rabbitmqctl add_user admin 123   #创建用户
    rabbitmqctl set_user_tags admin administrator  #设置用户角色
    rabbitmqctl set_permissions -p ‘/‘ admin ‘.*‘ ‘.*‘ ‘.*‘  #设置用户权限
    
  11. 随便打开一个节点的管理界面查看集群状态:

    rabbitmq单机部署、集群部署

常见问题

  1. 如何解除集群节点?

    #node1 上执行
    rabbitmqctl stop_app
    rabbitmqctl reset
    rabbitmqctl start_app
    rabbitmqctl cluster_status
    #node0 上执行
    rabbitmqctl forget_cluster_node rabbit@node1
    

rabbitmq单机部署、集群部署

上一篇:循环链表操作


下一篇:分层领域模型规约