环境:
四台centOS操做系统服务器192.168.0.73,192.168.0.74,192.168.0.75,192.168.0.76html
1 在每台服务器上按照以下步骤安装rabbitMQ
1.1 rabbitMQ是基于erlang语言开发的,所以先安装erlang
执行命令:web
yum install erlang
1.2 安装rabbitMQ
分别执行命令正则表达式
1 wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.5.0/rabbitmq-server-3.5.0-1.noarch.rpm 2 rpm -ivh rabbitmq-server-3.5.0-1.noarch.rpm
1.3 安装完成后以服务的方式启动rabbitMQ,并验证相关进程是否运行正常vim
1 service rabbitmq-server start 2 ps -ef | grep rabbitmq
1.4 若是须要使用webUI管理,执行一下命令安装插件;完成后重启rabbitMQ服务器
1 rabbitmq-plugins enable rabbitmq_management 2 service rabbitmq-server restart
1.5 经过webUI登陆地址http://192.168.0.73:15672 默认用户名和密码都是guest
guest帐户默认只容许经过localhost登陆,出现没法登陆时经过修改配置文件便可解决cookie
vim /etc/rabbitmq/rabbitmq.config
写入[{rabbit, [{loopback_users, []}]}]. 保存便可
2 集群搭建
这里所采用的四台rabbitMQ服务器的hostname分别是queue-01,queue-02,queue-03,queue-04;hostname可经过app
1 cat /proc/sys/kernel/hostname
命令查看oop
2.1 中止全部节点的rabbitMQ服务spa
service rabbitmq-server stop
2.2 分别在四台机器的/etc/hosts文件中加入以下内容,指定queue-01,queue-02,queue-03,queue-04的host。操作系统
192.168.0.73 queue-01 192.168.0.74 queue-02 192.168.0.75 queue-03 192.168.0.76 queue-04
2.3 以queue-01为基础,同步每一个节点的.erlang.cookie文件(以queue-02为例),具体缘由请参考:http://www.cnblogs.com/flat_peach/archive/2013/04/07/3004008.html
1 queue-01#chmod 777 .erlang.cookie 2 queue-02#chmod 777 .erlang.cookie 3 queue-01#scp .erlang.cookie root@192.168.0.74:/var/lib/rabbitmq/ 4 queue-02#chmod 400 .erlang.cookie 5 queue-01#chmod 400 .erlang.cookie
2.4 经过detached参数独立运行全部节点,查看节点状态
1 rabbitmq-server -detached 2 rabbitmqctl cluster_status
2.5 将queue-02做为磁盘节点,queue-03,queue-04做为内存节点与queue-01链接起来
1 queue-02#rabbitmqctl stop_app 2 queue-02#rabbitmqctl join_cluster rabbit@queue-01 3 queue-02#rabbitmqctl start_app 4 5 queue-03#rabbitmqctl stop_app 6 queue-03#rabbitmqctl join_cluster --ram rabbit@queue-01 7 queue-03#rabbitmqctl start_app 8 9 queue-04#rabbitmqctl stop_app 10 queue-04#rabbitmqctl join_cluster --ram rabbit@queue-01 11 queue-04#rabbitmqctl start_app
经过以上步骤rabbitMQ集群已经能正常工做了
若是但愿使用镜像功能,能够经过rabbitMQ的策略来实现,在集群中的任意节点配置策略会自动同步到其余节点。
rabbitmqctl set_policy -p test ha-allqueue "^" '{"ha-mode":"all"}'
以上命令在名称为test的vhost上建立了一个名为ha-allqueue的策略,策略模式为all,即复制到全部节点,包含新增节点。 策略正则表达式为 “^” 表示匹配全部队列名称,即全部队列都会以镜像的形式存在于其余全部节点。