如何在CentOS 7上设置RabbitMQ集群

栏目: 后端 · 发布时间: 5年前

内容简介:RabbitMQ是一个开源的消息代理软件,最初实现了AMQP(高级消息队列协议)协议,虽然它已经开发和扩展,以支持其他协议,如STOMP(流式文本导向消息传递协议)和MQTT(消息排队遥测运输)。RabbitMQ是消息排队软件,支持在分布式系统,应用程序和服务之间发送和接收消息。

      RabbitMQ是一个开源的消息代理软件,最初实现了AMQP(高级消息队列协议)协议,虽然它已经开发和扩展,以支持其他协议,如STOMP(流式文本导向消息传递协议)和MQTT(消息排队遥测运输)。

       RabbitMQ是消息排队软件,支持在分布式系统,应用程序和服务之间发送和接收消息。 它使用Erlang编程语言编写,支持所有主要编程语言的客户端接口和库,包括Python,NodeJS, JAVA PHP 等。

       在本教程中,我将逐步向您展示如何在 CentOS 7服务器上设置RabbitMQ群集。 我们将使用三个CentOS服务器设置RabbitMQ集群,启用RabbitMQ管理,并为所有节点设置HA策略。

     

先决条件

  • 3个或更多CentOS 7服务器
    • 10.0.15.21 node01
    • 10.0.15.22 node02
    • 10.0.15.23 node03
  • Root权限

我们将要做什么?

  1. 设置主机文件
  2. 安装RabbitMQ服务器
  3. 启用RabbitMQ管理插件
  4. 配置Firewalld
  5. 设置RabbitMQ群集
  6. 配置新的管理员用户
  7. 设置RabbitMQ队列镜像
  8. 测试

第1步 - 设置主机文件

在此步骤中,我们将编辑所有服务器上的“/ etc / hosts”文件,并将每个服务器 ip 地址映射为主机名。

使用vim编辑器编辑'/ etc / hosts'文件  。

sudo vim / etc / hosts

现在粘贴以下配置。

<font></font><font>10.0.15.21 node01</font><font></font><font>
10.0.15.22 node02</font><font></font><font>
10.0.15.23 node03</font>

保存并退出。

第2步 - 安装RabbitMQ服务器

在此步骤中,我们将从EPEL(Enterprise Linux Extra Packages)存储库安装RabbitMQ Server软件包。

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

sudo yum -y install epel-release

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

sudo yum -y安装rabbitmq-server

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

sudo systemctl start rabbitmq-server 

sudo systemctl enable rabbitmq-server

RabbitMQ服务器已安装在所有节点集群CentOS 7上。

第3步 - 启用RabbitMQ管理插件

在此步骤中,我们将启用RabbitMQ管理插件。它是一个接口,允许您从Web浏览器监视和处理RabbitMQ服务器,在默认TCP端口'15672'上运行。

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

sudo rabbitmq-plugins启用rabbitmq_management

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

sudo systemctl重启rabbitmq-server

RabbitMQ管理已启用。

如何在CentOS 7上设置RabbitMQ集群

第4步 - 配置CentOS Firewalld

在本教程中,我们将启用CentOS firewalld服务,因此我们需要打开RabbitMQ服务器使用的端口。

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

运行以下firewalld命令。

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

现在重新加载firewalld并检查列表中所有打开的端口。

sudo firewall-cmd --reload 

sudo firewall-cmd --list-all

如何在CentOS 7上设置RabbitMQ集群

CentOS firewalld配置已经完成,我们已准备好设置RabbitMQ集群。

第5步 - 设置RabbitMQ Cluster

为了设置RabbitMQ集群,我们需要确保所有节点上的'.erlang.cookie'文件是相同的。我们将'/ var / lib / rabbitmq'目录中的'.erlang.cookie'文件从'node01'复制到其他节点'node02'和'node03'。

使用'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 /

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

如何在CentOS 7上设置RabbitMQ集群

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

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

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

sudo systemctl restart rabbitmq-server 

sudo rabbitmqctl stop_app

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

sudo rabbitmqctl join_cluster rabbit @ node01 

sudo rabbitmqctl start_app

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

sudo rabbitmqctl cluster_status

您将得到如下所示的结果。

在'node02'上。

如何在CentOS 7上设置RabbitMQ集群

在'node03'上。

如何在CentOS 7上设置RabbitMQ集群

已创建RabbitMQ群集,其中node01,node02和node03为成员。

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

在本教程中,我们将为RabbitMQ服务器创建一个新的管理员用户,并删除默认的“guest”用户。我们将从'node01'创建一个新用户,它将自动复制到集群上的所有节点。

添加一个名为' hakase ' 的新用户,密码为' aqwe123 @ '。

sudo rabbitmqctl add_user hakase aqwe123 @

以管理员身份设置'hakase'用户。

sudo rabbitmqctl set_user_tags hakase管理员

并授予'hakase'用户修改,写入和读取所有虚拟主机的权限。

sudo rabbitmqctl set_permissions -p / hakase“。*”“。*”“。*”

现在删除默认的“访客”用户。

sudo rabbitmqctl delete_user guest

并检查所有可用用户。

sudo rabbitmqctl list_users

您将得到如下所示的结果。

如何在CentOS 7上设置RabbitMQ集群

已创建新的RabbitMQ用户,并删除默认的“guest”用户。

第7步 - RabbitMQ设置队列镜像

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

以下是关于RabbitMQ ha策略的一些示例。

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

sudo rabbitmqctl set_policy ha-all“。*”'{“ha-mode”:“all”}'

设置ha策略名为'ha-two',所有队列名称都以'two'开头。将镜像到群集上的两个节点。

sudo rabbitmqctl set_policy ha-two“^ two \。” \ 

   '{“ha-mode”:“确切”,“ha-params”:2,“ha- sync -mode”:“自动”}}

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

sudo rabbitmqctl set_policy ha-nodes“^ nodes \。” \ 

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

现在使用以下命令检查所有可用的策略。

sudo rabbitmqctl list_policies;

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

sudo rabbitmqctl clear_policy ha-two

如何在CentOS 7上设置RabbitMQ集群

第8步 - 测试

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

http://10.0.15.21:15672/

输入用户名' hakase ',密码为' aqwe123 @ '。

如何在CentOS 7上设置RabbitMQ集群

您将获得如下的RabbitMQ管理仪表板。

如何在CentOS 7上设置RabbitMQ集群

所有群集节点状态均已启动并正在运行

现在单击“管理”选项卡菜单,然后单击侧面的“用户”菜单。

如何在CentOS 7上设置RabbitMQ集群

您将获得列表中的hakase用户。

现在点击“管理”标签菜单,然后点击旁边的“政策”菜单。

如何在CentOS 7上设置RabbitMQ集群

您将获得我们创建的所有RabbitMQ ha策略。

在CentOS 7服务器上安装和配置RabbitMQ Cluster已成功完成。


以上所述就是小编给大家介绍的《如何在CentOS 7上设置RabbitMQ集群》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

运营前线 2

运营前线 2

兰军 等著 / 机械工业出版社 / 2017-4 / 69.00

“运营前线”是一个系列,目前已经出版2部,与“产品前线”一样,该系列书也由资深的产品和运营专家兰军(Blues)领衔策划和写作,旨在梳理和总结国内一线互联网公司的运营方法和技巧,让所有产品人和运营人都有机会了解和学习这些大的互联网公司是如何做运营的。 这2部作品汇集了来自腾讯、阿里、百度、360、迅雷、YY、小米、爱奇艺、乐视等数十家大型互联网公司的一线运营专家的技巧和方法论。共包含9大运营......一起来看看 《运营前线 2》 这本书的介绍吧!

随机密码生成器
随机密码生成器

多种字符组合密码

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具