如何在CentOS 7上设置RabbitMQ集群

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

内容简介: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集群》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

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

Erlang趣学指南

Erlang趣学指南

邓辉、孙鸣 / 人民邮电出版社 / 2016-9-7 / 79.00元

这是一本讲解Erlang编程语言的入门指南,内容通俗易懂,插图生动幽默,示例短小清晰,结构安排合理。书中从Erlang的基础知识讲起,融汇所有的基本概念和语法。内容涉及模块、函数、类型、递归、错误和异常、常用数据结构、并行编程、多处理、OTP、事件处理,以及所有Erlang的重要特性和强大功能。一起来看看 《Erlang趣学指南》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换

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

HEX CMYK 互转工具