Rabbitmq集群安装与配置
一、rabbitmq安装环境准备
1、安装环境准备
这里,我们以两个节点为例进行安装,一个节点为内存节点,另一个节点为硬盘节点,具体可根据自己需要分配节点。
安装系统 |
主机名称 |
IP地址 |
备注 |
Cnetos6.8 |
Server1 |
10.0.0.13 |
内存节点 |
Centos6.8 |
Server2 |
10.0.0.14 |
硬盘节点 |
2、修改两台节点主机hosts文件使之能互相解析
在两台主机的hosts文件中分别执行如下操作:
]#cat >> /etc/hosts <<EOF > 10.0.0.13 server1 > 10.0.0.14 server2 > EOF
二、rabbitmq的安装(两台节点上需要安装同样的软件)
1、安装所需软件
(1)安装socat
]#wget http://dl.fedoraproject.org/pub/epel/6/x86_64//socat-1.7.2.3-1.el6.x86_64.rpm ]#yum localinstall -y socat-1.7.2.3-1.el6.x86_64.rpm
(2)安装erlang19.0.4
]#wget http://www.rabbitmq.com/releases/erlang/erlang-19.0.4-1.el6.x86_64.rpm ]#yum localinstall -y erlang-19.0.4-1.el6.x86_64.rpm
(3)安装rabbitmq-server
]#wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.2/rabbitmq-server-3.6.2-1.noarch.rpm ]#yum localinstall -y erlang-19.0.4-1.el6.x86_64.rpm
2、配置启动rabbitmq
(1)启动rabbitmq
~]# service rabbitmq-server start #启动rabbitmq ~]# service rabbitmq-server status #查看rabbitmq的运行状态
(2)开启扩展管理,开启后可以通过网页登录管理rabbitmq,登录地址为服务器加端口号15672
~]# rabbitmq-plugins enable rabbitmq_management ~]# ss -tanl | grep 5672 #开启扩展管理后,才能看到端口号15672,有时看不到,需要重启rabbitmq LISTEN 0 128 :::5672 ::* LISTEN 0 128 *:25672 *:* LISTEN 0 128 *:15672 *:*
三、rabbitmq集群配置
1、在配置集群前需要同步elrang cookie
将一台节点的elrang cookie同步到其他机器节点(有些版本的elrang cookie存放位置为/var/lib/rabbitmq/..erlang.cookie,有些版本的erlang cookie存放位置为~/..erlang.cookie)。
以下操作均需要在需要同步的机器上操作,有多个节点时需要在其他节点上执行相同的操作,此处我们将10.0.0.13的elrang cookie同步到其他节点。
~]# rabbitmqctl stop #在同步前停止rabbitmq ~]# scp root@10.0.0.13:/var/lib/rabbitmq/.erlang.cookie /var/lib/rabbitmq/.erlang.cookie ~]# rabbitmqctl start #在同步后启动rabbitmq
2、创建rabbitmq集群
~]#rabbitmqctl stop_app ~]#rabbitmqctl reset ~]#rabbitmqctl join_cluster rabbit@n1 #默认创建的为磁盘节点,如果创建内存节点需要在此命令后面加--ram,rabbitmq中至少需要一个磁盘节点 ~]#rabbitmqctl start_app
3、验证集群
Rabbitmq集群创建完成后可通过命令“ rabbitmqctl cluster_status”来验证集群,如出现如下信息则说明rabbitmq集群创建成功。
~]# rabbitmqctl cluster_status Cluster status of node rabbit@server1 ... [{nodes,[{disc,[rabbit@server1,rabbit@server2]}]}, {running_nodes,[rabbit@server2,rabbit@server1]}, {cluster_name,<<"rabbit@server1">>}, {partitions,[]}, {alarms,[{rabbit@server2,[]},{rabbit@server1,[]}]}]
4、为Rabbitmq添加用户
由于为rabbitmq做了集群,所以在一台设备上的操作,会同步到其他节点,所以添加用户只需在一台节点上添加,会同步到其他节点。
~]# rabbitmqctl add_user username password #为rabbitmq添加用户并设置密码 ~]# rabbitmqctl set_user_tags username administrator #为创建的用户添加标签,即将用户加入到某个组中