RabbitMQ集群安装 - 单机多实例
如何在CentOS6 单机上安装多实例的 RabbitMQ
前置条件
在安装集群之前,需要在虚拟机上安装好Erlang环境和RabbitMQ。此外,还要规划好每个rabbitmq实例的节点名和端口。
假设规划的三个实例的node name 和 node port 分别是:
node name | node port |
rabbit01 | 5672 |
rabbit02 | 5673 |
rabbit03 | 5674 |
安装步骤
配置NodeName和NodePort
配置NodeName的NodePort有两种方式,分别是命令行方式和配置文件的方式。
命令行方式
分别给三个实例配置各自的端口号,在启动的时候,用一下命令给每个实例指定,key都是大写。
RABBITMQ_NODE_PORT=5672 RABBITMQ_NODENAME=rabbit01 ./rabbitmq-server
RABBITMQ_NODE_PORT=5673 RABBITMQ_NODENAME=rabbit02 ./rabbitmq-server
RABBITMQ_NODE_PORT=5674 RABBITMQ_NODENAME=rabbit03 ./rabbitmq-server
配置文件方式
在 {rabbitmq_home}/etc/rabbit01/rabbitmq-env.conf 文件中添加如下配置,注意没有前缀RABBITMQ。
NODENAME=rabbit01@localhost
NODE_PORT=5672
启动的时候,可能会报错,如果报错,多数是因为端口冲突导致的。如果开启了rabbitmq_management 插件,需要为每个实例的rabbitmq_management 插件配上端口。
配置rabbitmq_management 插件端口的方式同样命令行方式和配置文件的方式。
命令行方式
RABBITMQ_NODE_PORT=5672 RABBITMQ_NODENAME=rabbit01 RABBITMQ_SERVER_START_ARGS="-rabbitmq_management listener [{port,15672}]"/rabbitmq-server
配置文件方式
在 {rabbitmq_home}/etc/rabbit01/rabbitmq.conf 文件中添加如下配置,注意这里的配置文件和上面的不是一个配置文件。
# management plugin
management.tcp.port=15672
启动节点
配置完成后,启动三个实例。如果是命令行方式配置,其实已经启动好了。如果是配置文件方式,则可以使用下面的命令启动。
RABBITMQ_CONF_ENV_FILE={rabbitmq_home}/etc/rabbitmq/rabbitmq-env.conf ./rabbitmq-server
加入集群
默认情况下,每个节点组成只有自己的单节点集群。将三个实例组成一个集群,需要将其中两个节点加入到另外一个节点中。
这里我们将 rabbit02 和 rabbit03 加入rabbit01 中,分别对rabbit02 和 rabbit03 执行下面的命令。
./rabbitmqctl -n rabbit02@localhost stop_app # 停止服务
./rabbitmqctl -n trbbit02@localhost reset # 重置
./rabbitmqctl -n rabbit02@localhost join_cluster rabbit01@localhost # 加入集群
./rabbitmqctl -n rabbit02@localhost start_app #重启服务
./rabbitmqctl -n rabbit03@localhost stop_app # 停止服务
./rabbitmqctl -n trbbit03@localhost reset # 重置
./rabbitmqctl -n rabbit03@localhost join_cluster rabbit01@localhost # 加入集群
./rabbitmqctl -n rabbit03@localhost start_app #重启服务
这样,单台虚拟机中搭建RabbitMQ集群就完成了。后面将介绍项目中搭建集群的方式,也就是多机多节点的方式。