在标准的服务器设置方式之外,有时可能需要根据特定的需求来定制安装过程。例如,可能需要将RabbitMQ与产品一起打包,或者编写批处理脚本。本文将触及一些重要领域,以帮助自定义安装和打包。RabbitMQ的官方文档详细解释了这些内容,本文将这些步骤进行编译和总结,目的是让理解这个过程和依赖关系。
首先,需要下载以下内容:
注意:上述提到的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_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上,位置为:
由于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手动安装。在安装并运行管理插件后,将在“概览”部分看到两个节点。