仅以此文记录哪些被踩过的坑...
试验环境:
- CentOS6.7_x64
- rabbitmq-3.5.7
一、安装rabbitmq
这里采用yum方式安装rabbitmq
1、依赖包和编译环境准备:
yum -y install build-essential openssl openssl-devel unixODBC unixODBC-devel make gcc glibc-devel gcc-c++ autoconf kernel-devel m4 ncurses-devel tk tc
2、安装 Erlang
RabbitMQ是基于Erlang的,所以首先必须配置Erlang环境。
yum -y install erlang
3、安装 rabbitmq-server
rpm --import http://www.rabbitmq.com/rabbitmq-signing-key-public.asc wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.5.7/rabbitmq-server-3.5.7-1.noarch.rpm rpm -ivh rabbitmq-server-3.5.7-1.noarch.rpm
或者:
yum -y install rabbitmq-server-3.5.7-1.noarch.rpm
接下来的操作之前,请确认本机的selinux和iptables保持关闭状态,否则...
4、服务器主机配置:
请编辑主机的hosts文件,把主机名和ip地址对应关系写进来,rabbitmq的所有主机都要写,一个例子:
vim /etc/hosts 192.168.71.128 demo1 192.168.71.134 CentOS67-01
5、启动rabbitmq
在两台机器上面分别执行如下命令:
service rabbitmq-server start
6、编辑.erlang.cookie文件
确保所有rabbitmq集群节点上的文件.erlang.cookie 中的内容一致。
可以复制其中一个节点上面的内容,到其他各个节点上的所有.erlang.cookie 文件。
.erlang.cookie文件所在目录如下:
$HOME/.erlang.cookie /var/lib/rabbitmq/.erlang.cookie
以上两个路径中的.erlang.cookie都要修改。
如果出现权限问题,请接着操作:
chmod 600 $HOME/.erlang.cookie chmod 600 /var/lib/rabbitmq/.erlang.cookie
否则会出现如下错误[此处好多坑....]:
ERROR: epmd error for host demo1: address (cannot connect to host/port) * TCP connection succeeded but Erlang distribution failed Error: unable to connect to nodes [root@iZ23j868sadZ]: nodedown Error: mnesia_unexpectedly_running ...
如此等等诸多问题。
7、选择一个rabbitmq主节点(CentOS67-01),启动rabbitmq
service rabbitmq-server start
注意:hsots文件修改后以及.erlang.cookie文件修改后,都要重启下rabbitmq(所有节点)
service rabbitmq-server restart
8、将节点demo1加入集群
[root@demo1 ~]# rabbitmqctl stop_app Stopping node rabbit@demo1 ... [root@demo1 ~]# rabbitmqctl reset [root@demo1 ~]# rabbitmqctl join_cluster --ram rabbit@CentOS67-01 Clustering node rabbit@demo1 with 'rabbit@CentOS67-01' ... [root@demo1 ~]# rabbitmqctl cluster_status Cluster status of node rabbit@demo1 ... [{nodes,[{disc,['rabbit@CentOS67-01']},{ram,[rabbit@demo1]}]}]
在主节点查看集群信息
[root@CentOS67-01 ~]# rabbitmqctl cluster_status Cluster status of node 'rabbit@CentOS67-01' ... [{nodes,[{disc,['rabbit@CentOS67-01']}]}, {running_nodes,['rabbit@CentOS67-01']}, {cluster_name,<<"rabbit@CentOS67-01">>}, {partitions,[]}]
如果节点加入集群失败,则按如下顺序进行操作
[root@demo1 ~]# rabbitmqctl stop_app Stopping node rabbit@demo1 ... [root@demo1 ~]# rabbitmqctl reset [root@demo1 ~]# rabbitmqctl join_cluster --ram rabbit@CentOS67-01
如果仍然失败,请检查上述第六步骤是否操作过了,确保各个节点的.erlang.cookie 文件内容一致。
另:确保服务器的防火墙和selinux关闭。
如果都检查过了还不行,请留言交流...
接下来整理rabbitmq集群使用以及集群节点的管理相关文档...