openstack(2) -------RabbitMQ集群部署

时间:2020-12-01 07:09:50

一、RabbitMQ简介

RabbitMQ属于一个流行的开源消息队列系统。属于AMQP( 高级消息队列协议 ) 标准的一个 实现。是应用层协议的一个开放标准,为面向消息的中间件设计。用于在分布式系统中存储转发消息,在 易用性、扩展性、高可用性等方面表现不俗。

二、RabbitMQ工作原理

  MQ 是消费 - 生产者模型的一个典型的代表,一端往消息队列中不断写入消息,而另一端则可以读取或者订阅队列中的消息。 MQ 则是遵循了 AMQP协议的具体实现和产品。在项目中,将一些无需即时返回且耗时的操作提取出来,进行了异步处理,而这种异步处理的方式大大的节省了服务器的请求响应时间,从而提高了系统的吞吐量。

openstack(2) -------RabbitMQ集群部署

1、客户端连接到消息队列服务器,打开一个channel。

2、客户端声明一个exchange,并设置相关属性。

3、客户端声明一个queue,并设置相关属性。

4、客户端使用routing key,在exchange和queue之间建立好绑定关系。

5、客户端投递消息到exchange。

6、 exchange接收到消息后,就根据消息的key和已经设置的binding,进行消息路由,将消息投递到一个或多个队列里

三、部署RabbitMQ 集群

1>所有机器全部安装

yum install -y erlang rabbitmq-server.noarch

openstack(2) -------RabbitMQ集群部署

2>全部启动

openstack(2) -------RabbitMQ集群部署

3>查看启动状态是否启动

openstack(2) -------RabbitMQ集群部署

4>查看监听端口

openstack(2) -------RabbitMQ集群部署

5>lichaohsot1 : 编辑rabbittmq变量文件

vim /etc/rabbitmq/rabbitmq-env.conf

openstack(2) -------RabbitMQ集群部署

#编辑内容如下

RABBITMQ_NODE_PORT=
limit -S -n
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

openstack(2) -------RabbitMQ集群部署

6>发送给其他两台机器并修改ip

#1

openstack(2) -------RabbitMQ集群部署

#2

openstack(2) -------RabbitMQ集群部署

#3修改

openstack(2) -------RabbitMQ集群部署

#4修改

openstack(2) -------RabbitMQ集群部署

7>所有机器开启rabbitmq的web管理页面

rabbitmq-plugins enable rabbitmq_management

openstack(2) -------RabbitMQ集群部署

8>访问web界面

web界面端口号 : 15672

openstack(2) -------RabbitMQ集群部署

9>输入账户密码  并登录(默认为 guest)

openstack(2) -------RabbitMQ集群部署

10>lichaohost1 发送erlang.cookie到其他节点配置集群

openstack(2) -------RabbitMQ集群部署

12>lichaohost2和lichaohost3停止应用,并以ram的方式加入lichaohost1节点,并重启应用

systemctl restart rabbitmq-server.service
rabbitmqctl stop_app
rabbitmqctl join_cluster --ram rabbit@lichaohost1
rabbitmqctl start_app

openstack(2) -------RabbitMQ集群部署

#

openstack(2) -------RabbitMQ集群部署

13>lichaohost1 查看集群状态

openstack(2) -------RabbitMQ集群部署

14>登录web 界面 验证

openstack(2) -------RabbitMQ集群部署

15>添加一个openstack的用户,并设密码为admin。并设置权限和成为管理员

#1

rabbitmqctl add_user openstack admin    (添加用户)

openstack(2) -------RabbitMQ集群部署

#2

rabbitmqctl set_permissions openstack ".*" ".*" ".*"    (设置权限)

openstack(2) -------RabbitMQ集群部署

#3

rabbitmqctl set_user_tags openstack administrator   (设置为管理员)

openstack(2) -------RabbitMQ集群部署

16>登录测试

openstack(2) -------RabbitMQ集群部署

#

openstack(2) -------RabbitMQ集群部署