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 [email protected]:/var/lib/rabbitmq/

      scp /var/lib/rabbitmq/.erlang.cookie [email protected]:/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 [email protected]

     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 [email protected]

      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":["[email protected]", "[email protected]"]}‘

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

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

        sudo rabbitmqctl clear_policy ha-two

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

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

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

原文地址:https://www.cnblogs.com/gaojingya/p/11990903.html

时间: 2024-08-30 11:37:25

CentOS 7上设置RabbitMQ集群的相关文章

在CentOS7上部署Rabbitmq集群配置

概述 RabbitMQ是目前流行的开源消息队列系统.MQ(消息队列)是一种应用程序对应用程序的通信方法. RabbitMQ的结构图如图所示: 实现步骤 在一个集群里,有三台服务器,其中一台使用磁盘模式,另两台使用内存模式.两台内存模式的节点无疑速度更快,因此通过客户端连接访问它们.但是客户端不可能分别连接两个内存节点,肯定是通过前端反向代理去轮询分发请求如果担心前端反向代理服务器故障,可以通过Keepalived软件做一个高可用架构.而磁盘模式的节点,由于磁盘IO相对较慢,因此仅作数据备份使用.

在CentOS 7上安装Kafka集群

一.安装准备1.修改系统配置#关闭selinux.firewall#修改/etc/security/limits.conf添加以下内容: soft nofile 65536 hard nofile 65536 soft nproc 65536 hard nproc 65536 #修改/etc/security/limits.d/20-nproc.conf soft nproc 655363.创建账户.目录groupadd -g 800 kafkauseradd -u 800 -g kafka k

RabbitMQ集群和失败处理

RabbitMQ内建集群的设计用于完成两个目标:允许消费者和生产者在RabbitMQ节点在奔溃的情况下继续运行,以及通过添加更多的节点来线性扩展消息通信的吞吐量.当失去一个RabbitMQ节点时客户端能够连接集群中的任何其他节点并继续生产或者消费消息.同样,如果RabbitMQ集群正疲于应对庞大的消息通信量,可以通过添加更过的节点线性增加性能. RabbitMQ集群不会保证消息的万无一失:因为RabbitMQ默认不会将队列的内容复制到整个集群上.如果不进行特殊的配置,这些消息仅存在队列所属的那个

rabbitmq集群搭建方法简介(测试机linux centos)【转】

本文将介绍四台机器搭建rabbitmq集群: rabbitmq IP和主机名(每台机器已安装RabbitMQ 3.5.6, Erlang 18.1) 192.168.87.73 localhost73 192.168.87.74 localhost74 192.168.87.75 localhost75 192.168.87.76 localhost76 将上述IP和主机名添加到hosts文件( vim /etc/hosts) Rabbitmq的集群是依赖于erlang的集群来工作的,所以必须先

CentOS+rabbitMQ集群配置

1.实验环境 rabbitmq-node1.com192.168.1.112 rabbitmq-node2.com192.168.1.113 rabbitmq-node3.com192.168.1.128 2.配置前检查同步时间 #ntpdate pool.ntp.org 3.注意一定要修改hosts #cat /etc/hosts 192.168.1.112   rabbitmq-node1.com rabbitmq-node1 192.168.1.113   rabbitmq-node2.c

在CentOS上安装Hadoop集群(一)-- Centos系统配置

在CentOS上安装Hadoop集群(一) 1.  Centos的系统配置 1.1打开终端方式: 方式1:在桌面单击右键,>>Open in terminal 方式2:Applications菜单上选择System tools -> Terminal 打开了 1.2配置网络环境 查看ip地址命令:ifconfig 网络安装命令:setup 重启网络服务命令:service network restart 网络连接命令:ifup eth0 如图所示,电脑有个红叉表示网络未连接 ifconf

高可用RabbitMQ集群安装配置

RabbitMQ集群安装配置+HAproxy+Keepalived高可用 rabbitmq 集群 消息队列 RabbitMQ简介 RabbitMQ是流行的开源消息队列系统,用erlang语言开发.RabbitMQ是AMQP(高级消息队列协议)的标准实现. AMQP,即Advanced Message Queuing Protocol,高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计.消息中间件主要用于组件之间的解耦,消息的发送者无需知道消息使用者的存在,反之亦然.AMQP的主

RabbitMQ集群、镜像部署配置

1   RABBITMQ简介及安装 RabbitMQ是一个开源的AMQP实现,服务器端用Erlang语言编写,支持多种客户端,如:Python.Ruby..NET.Java.JMS.C.PHP.ActionScript.XMPP.STOMP等,支持AJAX.用于在分布式系统中存储转发消息,在易用性.扩展性.高可用性等方面表现不俗. AMQP,即Advanced message Queuing Protocol,高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计.消息中间件主要用

RabbitMQ集群搭建

rabbitmq集群是通过erlang的分布式特性进行rabbitmq集群,各个rabbitmq的服务为相应的节点,每个节点都提供给客户端连接,进行消息的发送与接收. 环境:CentOS 6.8 64位 服务器:192.168.179.128 wangwq01 192.168.179.129 wangwq02 192.168.179.130 wangwq03 1. 主机域名解析 rabbitmq各节点之间通信使用域名,所以集群成员中所有主机名都要可解析,这里使用修改hosts文件来实现解析. 2