下载
http://www.rabbitmq.com/releases/erlang/erlang-19.0-1.el7.centos.x86_64.rpm
https://dl.bintray.com/rabbitmq/rabbitmq-server-rpm/:rabbitmq-server-3.6.12-1.el7.noarch.rpm
基础知识:
参考:http://www.cnblogs.com/flying607/p/9505386.html
消息和队列可以指定是否持久化,如果指定持久化则会保存到硬盘上 ,不然只在内存里。
普通集群模式下持久化的队列不能重建,内存节点和磁盘节点的区别就是将元数据放在了内存还是硬盘,仅此而已,当在集群中声明队列、交换器和绑定 ,这些操作会同步元数据到所有节点
元数据必须至少保存在一个硬盘上,内存节点重启会去磁盘节点下载当前集群元数据拷贝,磁盘节点全挂了,那么集群就无法创建新的东西了,但是还能继续使用已有的东西。
默认情况下,队列只会保存在一个节点上,其他只是保存元数据,当然消息也会投递到这个队列所在的机器上,所以我们才有了创建镜像队列的需求,镜像队列则需要队列适配了策略。
三节点IP
192.168.22.177
192.168.22.178
192.168.22.179
# cat /etc/redhat-release
CentOS Linux release 7.1.1503 (Core)
修改三个节点的/etc/hosts文件,把三个节点IP和对应的主机名分别写入三个节点的文件中。
1、安装
三个节点安装
# rpm -ivh erlang-19.0-1.el7.centos.x86_64.rpm
# rpm -ivh rabbitmq-server-3.6.12-1.el7.noarch.rpm
warning: rabbitmq-server-3.6.12-1.el7.noarch.rpm: Header V4 RSA/SHA512 Signature, key ID 6026dfca: NOKEY
error: Failed dependencies:
socat is needed by rabbitmq-server-3.6.12-1.el7.noarch
# yum install socat
# rpm -ivh rabbitmq-server-3.6.12-1.el7.noarch.rpm
启动服务
# rabbitmq-server -detached
查看状态
# rabbitmqctl status
列出插件
# rabbitmq-plugins list
开启页面管理插件
# rabbitmq-plugins enable rabbitmq_management
2、创建集群
保持三个节点.erlang.cookie文件一致
# find / -name "*.erlang.cookie*"
/var/lib/rabbitmq/.erlang.cookie
# ll /var/lib/rabbitmq/.erlang.cookie
-r-------- 1 rabbitmq rabbitmq 20 Oct 24 00:00 /var/lib/rabbitmq/.e