各组件经过消息发送与接收是实现组件之间的通讯:node
# yum install rabbitmq-server –ylinux
# systemctl start rabbitmq-server.serviceweb
# rabbitmqctl add_user openstack 123456服务器
# rabbitmqctl set_permissions openstack ".*" ".*" ".*"cookie
# rabbitmqctl set_user_tags user_admin administratorapp
# rabbitmq-plugins enable rabbitmq_management插件
# rabbitmq-plugins list #查看插件3d
默认用户名密码都是guest,能够更改,web访问端口为15672:server
Rabbitmq的集群是依赖于erlang的集群来工做的,因此必须先构建起erlang的集群环境。而Erlang的集群中各节点是经过一个magic cookie来实现的,这个cookie存放在 /var/lib/rabbitmq/.erlang.cookie 中,文件是400的权限。因此必须保证各节点cookie保持一致,不然节点之间就没法通讯。blog
# scp /var/lib/rabbitmq/.erlang.cookie 192.168.10.202:/var/lib/rabbitmq/.erlang.cookie
各服务器中止全部节点RabbitMq服务,而后使用detached参数以节点方式独立运行
# systemctl stop rabbitmq-server
# rabbitmq-server –detached
# rabbitmqctl cluster_status
Cluster status of node 'rabbit@linux-host1'
在要加入集群的节点操做
# rabbitmqctl stop_app #中止应程序
# rabbitmqctl reset #清空元数据
# rabbitmqctl join_cluster rabbit@linux-host2 --ram #将rabbitmq-server1添加到集群当中,并成为内存节点,不加--ram默认是磁盘节点
# rabbitmqctl start_app #不要忘记启动应用程序
# rabbitmqctl cluster_status
Cluster status of node 'rabbit@rabbitmq-server1' ...
[{nodes,[{disc,['rabbit@linux-host1']}, #默认是磁盘节点
{ram,['rabbit@linux-host2']}]}] #内存节点
...done.
# rabbitmqctl cluster_status #添加以后的集群状态
Cluster status of node 'rabbit@linux-host2' ...
[{nodes,[{disc,['rabbit@linux-host1']}, #默认的是磁盘节点
{ram,['rabbit@linux-host2']}]}] #本身被添加为内存节点
...done.
六、更改成镜像模式:
# rabbitmqctl set_policy ha-all "#" '{"ha-mode":"all"}' #"#"为任意0个或多个即为全部,也能够使用"^test"匹配开头,还能够使用其余正则匹配
Setting policy "ha-all" for pattern "#" to "{\"ha-mode\":\"all\"}" with priority "0" ...
...done.
访问web界面:默认用户名为guest密码为guest