RabbitMQ属于一个流行的开源消息队列系统。属于AMQP( 高级消息队列协议 ) 标准的一个 实现。是应用层协议的一个开放标准,为面向消息的中间件设计。用于在分布式系统中存储转发消息,在 易用性、扩展性、高可用性等方面表现不俗。node
MQ 是消费 - 生产者模型的一个典型的表明,一端往消息队列中不断写入消息,而另外一端则能够读取或者订阅队列中的消息。 MQ 则是遵循了 AMQP协议的具体实现和产品。在项目中,将一些无需即时返回且耗时的操做提取出来,进行了异步处理,而这种异步处理的方式大大的节省了服务器的请求响应时间,从而提升了系统的吞吐量。web
一、客户端链接到消息队列服务器,打开一个channel。vim
二、客户端声明一个exchange,并设置相关属性。服务器
三、客户端声明一个queue,并设置相关属性。cookie
四、客户端使用routing key,在exchange和queue之间创建好绑定关系。app
五、客户端投递消息到exchange。异步
六、 exchange接收到消息后,就根据消息的key和已经设置的binding,进行消息路由,将消息投递到一个或多个队列里分布式
1>全部机器所有安装测试
yum install -y erlang rabbitmq-server.noarch
2>所有启动spa
3>查看启动状态是否启动
4>查看监听端口
5>lichaohsot1 : 编辑rabbittmq变量文件
vim /etc/rabbitmq/rabbitmq-env.conf
#编辑内容以下
RABBITMQ_NODE_PORT=5672 limit -S -n 4096 RABBITMQ_SERVER_ERL_ARGS="+K true +A30 +P 1048576 -kernel inet_default_connect_options [{nodelay,true},{raw,6,18,<<5000:64/native>>}] -kernel inet_default_listen_options [{raw,6,18,<<5000:64/native>>}]" RABBITMQ_NODE_IP_ADDRESS=192.168.206.137
6>发送给其余两台机器并修改ip
#1
#2
#3修改
#4修改
7>全部机器开启rabbitmq的web管理页面
rabbitmq-plugins enable rabbitmq_management
8>访问web界面
web界面端口号 : 15672
9>输入帐户密码 并登陆(默认为 guest)
10>lichaohost1 发送erlang.cookie到其余节点配置集群
12>lichaohost2和lichaohost3中止应用,并以ram的方式加入lichaohost1节点,并重启应用
systemctl restart rabbitmq-server.service rabbitmqctl stop_app rabbitmqctl join_cluster --ram rabbit@lichaohost1 rabbitmqctl start_app
#
13>lichaohost1 查看集群状态
14>登陆web 界面 验证
15>添加一个openstack的用户,并设密码为admin。并设置权限和成为管理员
#1
rabbitmqctl add_user openstack admin (添加用户)
#2
rabbitmqctl set_permissions openstack ".*" ".*" ".*" (设置权限)
#3
rabbitmqctl set_user_tags openstack administrator (设置为管理员)
16>登陆测试
#