erlang rabbitmq-server安装
erlang rabbitmq-server安装
yum -y install xsltproc fop tk unixODBC unixODBC-devel make gcc gcc-c++ kernel-devel m4 ncurses-devel openssl-devel
yum –y install erlang
yum –y install rabbitmq-server
服务器集群信息,确保节点之间主机名可以相互解析。
172.16.230.166 master
172.16.230.167 slave1
172.16.230.168 slave2
172.16.230.166、167、168 启动rabbitmq进程
/etc/init.d/rabbitmq-server start
Rabbitmq的集群是依赖于erlang的集群来工作的,所以必须先构建起erlang的集群环境。Erlang的集群中各节点是通过一个magic cookie来实现的,这个cookie存放在$HOME/.Erlang.cookie 中,文件是400的权限。所以必须保证各节点cookie保持一致,否则节点之间就无法通信。
[root@master ~]# cd /var/lib/rabbitmq/
[root@master ~]# tar -zcvf erlang.cookie.tar.gz .erlang.cookie
[root@master ~]#scp erlang.cookie.tar.gz 172.16.230.167:/var/lib/rabbitmq/
[root@master ~]#scp erlang.cookie.tar.gz 172.16.230.168:/var/lib/rabbitmq/
[root@slave1 ~]# cd /var/lib/rabbitmq/; tar –zxvf erlang.cookie.tar.gz
[root@slave2 ~]# cd /var/lib/rabbitmq/; tar –zxvf erlang.cookie.tar.gz
前期准备工作已经完成,下面就来开始rabbitmq集群的配置,有了erliang的集群环境,rabbitmq集群环境构建起来很简单,只需要把其他节点添加到一台节点中即可,这里采用将slave1 添加到master中 ,slave2添加到slave1上的方法。
集群中有两种节点:
1 内存节点:只保存状态到内存(一个例外的情况是:持久的queue的持久内容将被保存到disk)
2 磁盘节点:保存状态到内存和磁盘。
- 首先要执行3台rabbitmq 相互隔离
[root@master ~]# rabbitmq-server –detached
[root@slave1 ~]# rabbitmq-server –detached
[root@slave2 ~]# rabbitmq-server –detached
- 查看rabbitmq集群状态
[root@master ~]# rabbitmqctl cluster_status
[root@slave1 ~]# rabbitmqctl cluster_status
[root@slave2 ~]# rabbitmqctl cluster_status
- 创建集群,slave1 与 slave2 为内存节点
[root@slave1 ~]# rabbitmqctl stop_app #关闭本机集群节点
[root@slave1 ~]# rabbitmqctl reset #重新设置
[root@slave1 ~]# rabbitmqctl join_cluster –ram rabbit@master
[root@slave1 ~]# rabbitmqctl stop_app
查看集群状态
[root@master ~]# rabbitmqctl cluster_status
[root@slave1 ~]# rabbitmqctl cluster_status
Slave2 加入到slave1
[root@slave2~]# rabbitmqctl stop_app #关闭本机集群节点
[root@slave2 ~]# rabbitmqctl reset #重新设置
[root@slave2 ~]# rabbitmqctl join_cluster –ram rabbit@master
[root@slave2~]# rabbitmqctl stop_app
查看集群状态
[root@master ~]# rabbitmqctl cluster_status
[root@slave1 ~]# rabbitmqctl cluster_status
[root@slave2 ~]# rabbitmqctl cluster_status
- 退出节点
[root@master~]# rabbitmqctl stop_app #关闭本机集群节点
[root@ master ~]# rabbitmqctl reset #重新设置
izhhhi[root@ master ~]# rabbitmqctl start_app