RabbitMQ自定义安装与集群配置指南

在标准的服务器设置方式之外,有时可能需要根据特定的需求来定制安装过程。例如,可能需要将RabbitMQ与产品一起打包,或者编写批处理脚本。本文将触及一些重要领域,以帮助自定义安装和打包。RabbitMQ的官方文档详细解释了这些内容,本文将这些步骤进行编译和总结,目的是让理解这个过程和依赖关系。

首先,需要下载以下内容:

  • 下载Erlang OTP 19.0()。
  • 下载RabbitMQ3.6.5手动压缩包()(rabbitmq-server-windows-3.6.5.zip)。

注意:上述提到的Erlang OTP和RabbitMQ版本是撰写本文时的最新版本。

安装步骤

步骤1:按照安装向导的指示安装Erlang OTP。如果系统尚未安装Microsoft VC++ 2013可再发行包,它还会提示安装。

步骤2:解压rabbitmq-server-windows-3.6.5.zip并将其复制到C:\MyMessageBroker\Install。请注意,可以选择系统上的任何位置。为了便于理解,假设这个位置。下面的步骤也引用了相同的位置。

步骤3:将ERLANG_HOME环境变量设置为实际放置Erlang安装的位置,例如C:\Program Files\erlx.x.x(完整路径)。(RabbitMQ批处理文件预期执行%ERLANG_HOME%\bin\erl.exe。)

步骤4:设置RabbitMQ环境变量:

注意:如果在单台机器上设置集群,必须确保所有节点使用不同的端口。在下一节中,将设置两个节点的集群。

设置以下环境变量:

  • RABBITMQ_NODE_PORT - RabbitMQ服务将监听的端口号。默认值为5762。
  • RABBITMQ_DIST_PORT - 用于节点间和CLI工具通信。该值是通过将20000添加到RABBITMQ_NODE_PORT变量的值来设置的。但是,如果希望使用配置文件,则将使用那里提供的值。有关更多信息,请参见RabbitMQ文档的“网络”部分。让将值设置为(RABBITMQ_NODE_PORT + 20000) 25672。
  • RABBITMQ_SERVICENAME - 当使用默认安装程序时,RabbitMQ会将Windows服务安装为名为“RabbitMQ”的服务。但是,可以通过设置RABBITMQ_SERVICENAME变量的值来更改此名称。将RABBITMQ_SERVICENAME的值设置为“MyMessageBroker”。
  • RABBITMQ_BASE - 将RABBITMQ_BASE变量值设置为解压zip包的路径C:\MyMessageBroker\Install。
  • RABBITMQ_NODENAME - 节点名称应始终唯一。合格的节点名称格式为“MyNode1@MachineName”。此变量的值可以是“MyNode1”,例如,它将内部派生出合格的名称。让将此变量的值设置为“MyNode1”。
  • RABBITMQ_CONFIG_FILE - 将RABBITMQ_CONFIG_FILE变量设置为%RABBITMQ_BASE%\rabbitmq。此路径指示基础目录位置和配置文件的主名称。也就是说,这里的主要名称是“rabbitmq”,它将在基础位置被引用为“rabbitmq.config”。

类似地,为下面列表中的所有变量设置相应的值:

RABBITMQ_MNESIA_BASE = %RABBITMQ_BASE%\db RABBITMQ_MNESIA_DIR = %RABBITMQ_MNESIA_BASE%\%RABBITMQ_NODENAME% RABBITMQ_LOG_BASE = %RABBITMQ_BASE%\log RABBITMQ_LOGS = %RABBITMQ_LOG_BASE%\%RABBITMQ_NODENAME%.log RABBITMQ_SASL_LOGS = %RABBITMQ_LOG_BASE%\%RABBITMQ_NODENAME%-sasl.log RABBITMQ_PLUGINS_DIR = %RABBITMQ_BASE%\plugins RABBITMQ_ENABLED_PLUGINS_FILE = %RABBITMQ_BASE%\enabled_plugins

步骤5:在完成上述全部配置后,将RabbitMQ安装为Windows服务。打开命令窗口(以管理员身份),并导航到位于基础位置的“sbin”目录,即C:\MyMessageBroker\Install\sbin。执行以下命令以安装服务:

rabbitmq-service install

成功完成步骤5后,消息服务器将启动并运行。可以打开服务控制台,并在列表中找到“MyMessageBroker”服务。

可以在另一台机器上按照上述5个步骤操作,使用不同的节点名称(例如MyNode2),然后将此节点加入以形成集群。必须确保在第二台机器上,有相同的Erlang cookie值。

在集群情况下,节点(和CLI工具)使用Erlang cookie进行相互认证。它是一个包含某些值的纯文本文件。此文件的名称为“.erlang.cookie”。

在Windows上,位置为:

  • C:\Users\当前用户\.erlang.cookie (%HOMEDRIVE% + %HOMEPATH%\.erlang.cookie)
  • C:\Documents and Settings\当前用户\.erlang.cookie
  • C:\Windows\.erlang.cookie(对于RabbitMQ Windows服务)

由于RabbitMQ作为Windows服务安装,cookie应该放置在上述两个位置。

在第二台机器上,定位并编辑“.erlang.cookie”文件,并将值设置为与第一台机器上的值匹配。

完成上述5个步骤并设置cookie值后,打开命令窗口并导航到“sbin”位置。然后,执行以下命令以加入第一个节点:

rabbitmqctl stop_app

执行上述命令将停止节点。现在可以使用join_cluster命令来形成集群:

rabbitmqctl join_cluster MyNode1@MachineName

成功执行上述命令后,将显示如下消息:

....Clustering node MyNode2@MachineName with [MyNode1@MachineName] ...done

然后,可以通过发出以下命令来检查集群的状态:

rabbitmqctl cluster_status

已经完成了启用集群的RabbitMQ手动安装。在安装并运行管理插件后,将在“概览”部分看到两个节点。

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485