CentOS 7上设置RabbitMQ集群

1.最近一直在忙于项目的事情,很少写博客了,一个朋友突然让我写一篇rabbitMq的集群的文章

第1步-设置主机文件

  1.我们将在所有服务器上编辑“ / etc / hosts”文件,并将每个服务器IP地址映射为主机名。

     vim /etc/hosts

    现在,在其中粘贴以下配置。

    10.0.15.21 node01

    10.0.15.22 node02

  10.0.15.22 node03

     把之前的主机名隐藏掉

     vim /etc/hostname  改成对于的主机名   reboot重启一下 服务器

第2步-安装RabbitMQ服务器

      1.将EPEL存储库添加到CentOS 7系统。

         sudo yum -y install epel-release

   2.现在,使用下面的yum命令将RabbitMQ Server安装到所有节点“ node01”,“ node02”和“ node03”。

     sudo yum -y install rabbitmq-server

   3.并且在安装完成后,启动RabbitMQ服务,并使它每次在系统引导时启动。

     sudo systemctl start rabbitmq-server

    sudo systemctl enable rabbitmq-server

    如果在这过程中启动报错 可以看一下启动的日记   systemctl status rabbitmq-server.service

    如果是链接不是其他几点 可以把上面的ip先切换成内网的ip 一般不会出现问题 

第3步-启用RabbitMQ管理插件

         在此步骤中,我们将启用RabbitMQ管理插件。这个界面允许您从Web浏览器监视和处理RabbitMQ服务器,该服务器在默认的TCP端口“ 15672”上运行。

         通过运行以下命令来启用RabbitMQ管理插件。

          sudo rabbitmq-plugins enable rabbitmq_management

     确保没有错误,然后重新启动RabbitMQ服务。

     sudo systemctl restart rabbitmq-server

     并且RabbitMQ管理已启用。查看一下是否启动 

     ps -ef|grep rabbit

第4步-配置CentOS Firewalld

         我们将打开使用RabbitMQ服务器'5672'的端口,用于RabbitMQ管理的端口'15672'和用于RabbitMQ集群的端口'4369,25672'

         1.前提服务器的防火墙已经启动了        

     sudo firewall-cmd --add-port=15672/tcp --permanent
sudo firewall-cmd --add-port=5672/tcp --permanent
sudo firewall-cmd --add-port={4369/tcp,25672/tcp} --permanent

2.现在重新加载firewalld,并检查列表中所有打开的端口。
      sudo firewall-cmd --reload
sudo firewall-cmd --list-all

3.自己去后台安全组把对于的端口开起来。CentOS防火墙配置已完成,我们已经准备好设置RabbitMQ集群。

第5步-设置RabbitMQ集群

           1.为了设置RabbitMQ集群,我们需要确保所有节点上的'.erlang.cookie'文件都相同。

              如果你的ip是外网   使用来自“ node01”的scp命令复制“ .erlang.cookie”文件。

              scp /var/lib/rabbitmq/.erlang.cookie root@node02:/var/lib/rabbitmq/

      scp /var/lib/rabbitmq/.erlang.cookie root@node03:/var/lib/rabbitmq/

       如果你使用的ip的内网 自己去node01下面把.erlang.cookie”文件的值复制到node02,node03对于的文件下面 文件是隐藏文件 自己 ls -a 去看一下

       确保两台服务器上都没有错误。

       接下来,我们需要设置“ node02”和“ node03”以加入集群“ node01”。

      在“ node02”和“ node03”服务器上运行以下所有命令。

        1.重新启动RabbitMQ服务并停止该应用程序。

     sudo systemctl restart rabbitmq-server

     sudo rabbitmqctl stop_app

       如果这个地方重启报错 可能是权限的问题 走一下这命令

       chown rabbitmq:rabbitmq /var/lib/rabbitmq/.erlang.cookie

       2.现在,让两个节点上的RabbitMQ服务器加入“ node01”上的集群,然后启动应用程序。

       sudo rabbitmqctl join_cluster rabbit@node01

     sudo rabbitmqctl start_app

       3.完成后,检查RabbitMQ集群状态。

       sudo rabbitmqctl cluster_status

       

       其他节点上也 可以运行一下  已创建RabbitMQ群集,其中node01,node02和node03为成员。

第6步-创建新的管理员用户

             我们将为RabbitMQ服务器创建一个新的admin用户,并删除默认的“ guest”用户。我们将从“ node01”创建一个新用户,并将其自动复制到集群中的所有节点

             1.添加一个名为“ hakase”的新用户,其密码为“ aqwe 123 @ ”。

        sudo rabbitmqctl add_user hakase aqwe123@

2.将“ hakase”用户设置为管理员
sudo rabbitmqctl set_user_tags hakase administrator

3.并授予“ hakase”用户修改,写入和读取所有虚拟主机的权限。
        sudo rabbitmqctl set_permissions -p / hakase ".*" ".*" ".*"

4.现在删除默认的“ guest”用户。
        sudo rabbitmqctl delete_user guest 

5.并检查所有可用的用户
        sudo rabbitmqctl list_users

步骤7-RabbitMQ设置队列镜像

            必须进行此设置,我们需要配置“ ha策略”集群以进行队列镜像和复制到所有集群节点。如果承载队列主服务器的节点发生故障,则只要同步,则最早的镜像将升级为新的主服务器,具体取决于“ ha-mode”和“ ha-params”策略。

           1.设置名为“ ha-all”的ha策略,该策略将RabbitMQ集群上的所有队列镜像到集群上的所有节点。

              sudo rabbitmqctl set_policy ha-all ".*" '{"ha-mode":"all"}'

      2.设置名为“ ha-nodes”的ha策略,该策略的所有队列名称均以“ nodes”开头。将镜像到群集上的两个特定节点“ node02”和“ node03”。

        sudo rabbitmqctl set_policy ha-nodes "^nodes\." \

             '{"ha-mode":"nodes","ha-params":["rabbit@node02", "rabbit@node03"]}'

3.检查所有可用策略。
        sudo rabbitmqctl list_policies;

4.如果要删除该策略,请使用以下命令。

sudo rabbitmqctl clear_policy ha-two

步骤8-测试   打开Web浏览器,然后键入端口为“ 15672”的节点的IP地址。

              到此集群已经搭建完,可以打开ip+端口 输入用户名和密码 可以看到各个节点的情况

              如果后期要增加集群的设备,只要增加每个集群的hosts里面的配置 把集群的策略删了 从新配置一下就行

 

posted @ 2019-12-05 18:05  平平淡淡的小黑  阅读(297)  评论(0编辑  收藏  举报