RabbitMQ集群部署

环境:

ip z主机名 c操作系统
10.0.0.1 test1 Centos7.2
10.0.0.2 test2 Centos7.2
10.0.0.3 test3 Centos7.2

一、安装依赖环境。

  yum -y install gcc glibc-devel make ncurses-devel openssl-devel xmlto perl wget

二、防火墙、主机与ip间的映射。

  1. 关闭或设置防火墙

    systemctl stop firewalld.service

    systemctl disable firewalld.service

    firewall-cmd --state

  2. 建立主机和ip间的映射关系

    vi /etc/hosts

      10.0.0.1 test1

      10.0.0.2 test2

      10.0.0.3 test3

三、安装erlang,因为RabbitMQ基于erlang开发。

  1. 安装erlang

    cd /data/tmp

    tar -xvzf otp_src_18.3.tar.gz -C /usr/local/

    cd /usr/local/otp_src_18.3

    ./configure --prefix=/usr/local/erlang

    make &&make install

  2. 配置环境变量

    vim /etc/profile

      #set erlang environment
      ERL_HOME=/usr/local/erlang
      PATH=$ERL_HOME/bin:$PATH
      export ERL_HOME PATH

    source /etc/profile

  3. 测试,如果进入erlang的shell则表示成功

    erl

四、安装RabbitMQ(以下为test1部署,同理部署test2、test3)。

  1. 下载解压

    cd /data/tmp

    tar -xvzf rabbitmq-server-generic-unix-3.5.4.tar.gz -C /data/local/rabbitmq-server

    cd /data/local

    mv rabbitmq-server-3.5.4 rabbitmq-server

  2. 配置环境变量

    vim /etc/profile

      # rabbitmq evironment configration
      export PATH=$PATH:/data/local/rabbitmq-server/sbin

    source /etc/profile

  3. 启动RabbitMQ server (如提示找不到命令,请检查环境变量路径是否正确)

    rabbitmq-server -detached

    rabbitmqctl status/stop/list_users               ## 查看状态、停止服务、列出角色命令

    rabbitmqctl cluster_status 查看当前节点集群状态

      Cluster status of node [email protected] ...
      [{nodes,[{disc,[[email protected]]}]},
      {running_nodes,[[email protected]]},
      {cluster_name,<<"[email protected]">>},
      {partitions,[]}]

  4. 配置web页面插件

    rabbitmq-plugins enable rabbitmq_management

  5. 访问管理页面测试 10.0.0.1:15672 (此时没有登录用户)

  6.  添加管理员账号

    rabbitmqctl add_user admin 123.abc                               ## 添加用户,后面两个参数是用户名和密码.
    rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"          ## 添加权限
    rabbitmqctl set_user_tags admin administrator               ## 修改用户角色

  7. 登录测试,删除guest用户,安装完成。

四、配置MQ集群。

  1. 设置节点间认证cookie(将test1上的拷贝到其他两台)

    scp /root/.erlang.cookie 10.0.0.2:/root/

    scp /root/.erlang.cookie 10.0.0.2:/root/

  2. 加入到test1的集群(分别在test2、test3上操作)

    rabbitmqctl stop_app                                # 先停掉节点,否则join_cluster会清除该节点所有资源和数据

    rabbitmqctl join_cluster [email protected]       # 加入集群

    rabbitmqctl start_app                                # 启动节点

    rabbitmqctl cluster_status                         # 查看集群状态,test2、test3都执行完集群应该有三个节点

  3. 测试(停掉其中一台,看集群状态的变化)

五、退出集群(当某台机器不需要再存在于集群中时,test3为例)。

  1. rabbitmqctl stop_app                  ## 停掉需要提出的节点

  2. rabbitmqctl reset                         ## 踢出集群

  3. rabbitmqctl start_app                  ## 启动集群

  4. rabbitmqctl cluster_status           ## 查看该机器当前集群状态

五、重要提示。

  (1)、当整个集群down掉时,最后一个down机的节点必须第一个启动到在线状态,如果不是这样,节点会等待30s等最后的磁盘节点恢复状态,然后失败。如果最后下线的节点不能上线,可以通过forget_cluster_node 指令来踢出集群。

  (2)、如果所有的节点不受控制的同时宕机,比如掉电,会进入所有的节点都会认为其他节点比自己宕机的要晚,即自己先宕机,这种情况下可以使用force_boot指令来启动一个节点。

六、其他

  1. 关于用户

    新增用户:rabbitmqctl add_user username password

    删除用户:rabbitmqctl delete_user username

    修改密码:rabbitmqctl  change_password  Username  Newpassword

    查看当前用户列表:rabbitmqctl  list_users

  2. 关于角色(五类系统角色)

    a. 角色分类

      administrator 超级管理员:可查看所有的信息,可以对用户,策略进行操作。
      monitoring 监控者:可登陆管理控制台查看rabbitmq节点的相关信息(进程数、内存、磁盘使用情况等)。
      policymaker 策略制定者:可登陆管理控制台对policy进行管理。但无法查看节点的相关信息。
      management 普通管理者:仅可登陆管理控制台,无法看到节点信息,也无法对策略进行管理。
      其他用户:无法登陆管理控制台,通常就是普通的生产者和消费者。

    b. 相关命令

      修改用户角色:rabbitmqctl set_user_tags username administrator
      也可以赋予多个角色:rabbitmqctl set_user_tags username administrator monitoring

  3. 关于权限(用户权限指的是用户对exchange,queue的操作权限)

    a. 权限分类

      配置权限:配置权限会影响到exchange,queue的声明和删除。
      读写权限:读写权限影响到从queue里取消息,向exchange发送消息以及queue和exchange的绑定(bind)操作。

    b. 相关命令

      设置用户权限:使用户admin具有在vhost1这个/virtual host中所有资源的配置、写、读权限
        rabbitmqctl set_permissions -p /vhost1 user_admin ‘.*‘ ‘.*‘ ‘.*‘
      查看(指定hostpath)所有用户的权限信息
        rabbitmqctl list_permissions -p /vhost1
      查看指定用户的权限信息
        rabbitmqctl list_user_permissions User
      清除用户的权限信息
        rabbitmqctl clear_permissions -p /vhost1 User

原文地址:https://www.cnblogs.com/hsjy/p/8532188.html

时间: 2024-08-11 22:13:39

RabbitMQ集群部署的相关文章

Rabbitmq集群部署手册

一.Rabbitmq集群部署手册 1.环境介绍 系统环境:Red HatEnterprise Linux Server release 6.2 (Santiago) 内核版本:Linux zxt-02.com2.6.32-220.el6.x86_64 #1 SMP Wed Nov 9 08:03:13 EST 2011 x86_64 x86_64 x86_64GNU/Linux 软件版本:otp_src_17.3:rabbitmq-server-3.2.4:Python 2.6.6:simple

Rabbitmq集群部署Haproxy

安装前的说明: 1.为了配合做rabbitmq的负载均衡,本次的安装包是安装的低版本1.5.8版本,下载包的地址:https://src.fedoraproject.org/repo/pkgs/haproxy/2.按照上两篇博客,先把rabbitmq集群装好:单机版Rabbitmq部署:http://blog.51cto.com/10950710/2135676Rabbitmq集群部署:http://blog.51cto.com/10950710/2135717 安装步骤: 1.将haproxy

分布式rabbitmq集群部署

分布式rabbitmq集群部署本次部署使用的三台centos服务器安装的erlang 版本为 21.0.4安装的rabbitmq版本为3.7.8-rc.2在三台服务器中分别安装rabbitmq-serverrabbitmq通信是建立在erlang环境中 所以需要先安装erlang环境 因为国外的erlang官方地址中中国不能直接访问,所以我们使用第三方包https://github.com/rabbitmq/erlang-rpm 安装说明地址 修改系统repo包文件修改repo# In /etc

RabbitMQ集群部署和高可用

RabbitMQ 安装和使用 1.安装依赖环境 在 http://www.rabbitmq.com/which-erlang.html 页面查看安装rabbitmq需要安装erlang对应的版本 在 https://github.com/rabbitmq/erlang-rpm/releases 页面找到需要下载的erlang版本,`erlang-*.centos.x86_64.rpm`就是centos版本的. 复制下载地址后,使用wget命令下载,wget -P /home/download h

Linux CentOS6.5下RabbitMQ集群部署配置

一.服务器与主机名列表 环境:2台Linux主机,主机名和IP如下,rabbitmq执行用户为rabbitmq,所属组为rabbitmq 172.16.192.145   ecs003 172.16.192.146   ecs004 二.在个节点服务器上做好hosts解析 #cat>>/etc/hosts< 172.16.192.145   ecs003 172.16.192.146   ecs004 EOF 三.在各节点安装Rabbitmq 1.安装epel源和rabbit-relan

私有云Rabbitmq 集群部署

默认openstack使用rabbitmq做信息队列,如果想要是云高可用,那么需要对每个涉及的组件都进行高可用配置,本文介绍如何使用rabbitmq 做高可用 高可用方法 通过 Erlang 的分布式特性(通过 magic cookie 认证节点)进行 RabbitMQ 集群,各 RabbitMQ 服务为对等节点,即每个节点都提供服务给客户端连接,进行消息发送与接收. 这些节点通过 RabbitMQ HA 队列(镜像队列)进行消息队列结构复制.本方案中搭建 3 个节点,并且都是磁盘节点(所有节点

rocketmq集群部署(多master多slave异步)

一.最近公司在做队列的技术选型,经过调研,决定使用rocketmq作为整个架构的队列层,我们之前的公司是用RabbitMQ,集群部署参考我之前的文章:RabbitMQ集群部署:rocketmq集群由NameServer和Broker两种角色组成,NameServer是无状态的可以横向部署多台达到消除单点的目的:Broker分多master.多master多slave同步.多master多slave异步这三种部署方案,一般生产环境都使用的是多master多slave异步这种方案,关于这三种方案的优

RabbitMQ集群化部署

压测环境上RabbitMQ主库采用三台集群化部署,部署在172.16.103.127, 172.16.103.138, 172.16.103.129三台机器上. 安装目录:/opt/rabbitmq/rabbitmq_3.6.2 集群化部署 1.设置hosts解析,所有节点配置相同 vi /etc/hosts 172.16.103.129 mq-n129172.16.103.128 mq-n128172.16.103.127 mq-n127 2.设置节点间认证的cookiescp /root/.

RabbitMQ学习之集群部署

我们先搭建一个普通集群模式,在这个模式基础上再配置镜像模式实现高可用,Rabbit集群前增加一个反向代理,生产者.消费者通过反向代理访问RabbitMQ集群. 架构图如下: 设计架构可以如下:在一个集群里,有4台机器,其中1台使用磁盘模式,另2台使用内存模式.2台内存模式的节点,无疑速度更快,因此客户端(consumer.producer) 连接访问它们.而磁盘模式的节点,由于磁盘IO相对较慢,因此仅作数据备份使用,另外一台作为反向代理. 一.4台机器如下(通过/etc/sysconfig/ne