介绍node
RabbitMQ的官网:http://www.rabbitmq.comweb
RabbitMQ是一个由erlang开发的AMQP(Advanced Message Queue )的开源实现。AMQP 的出现其实也是应了广大人民群众的需求,虽然在同步消息通信的世界里有不少公开标准(如 COBAR的 IIOP ,或者是 SOAP 等),可是在异步消息处理中却不是这样,只有大企业有一些商业实现(如微软的 MSMQ ,IBM 的 Websphere MQ 等),所以,在 2006 年的 6 月,Cisco 、Redhat、iMatix 等联合制定了 AMQP 的公开标准。vim
queue队列简化图 服务器
RabbitMQ概念cookie
Broker:简单来讲就是消息队列服务器实体。app
Exchange:消息交换机,它指定消息按什么规则,路由到哪一个队列。dom
Queue:消息队列载体,每一个消息都会被投入到一个或多个队列。异步
Binding:绑定,它的做用就是把exchange和queue按照路由规则绑定起来。tcp
Routing Key:路由关键字,exchange根据这个关键字进行消息投递。ide
vhost:虚拟主机,一个broker里能够开设多个vhost,用做不一样用户的权限分离。
producer:消息生产者,就是投递消息的程序。
consumer:消息消费者,就是接受消息的程序。
channel:消息通道,在客户端的每一个链接里,可创建多个channel,每一个channel表明一个会话任务。
实验环境表
主机名 | IP | 用途 |
rabbitmq01 | 192.168.10.10 | 磁盘节点 |
rabbitmq02 | 192.168.10.11 | 内存节点 |
rabbitmq03 | 192.168.10.12 | 内存节点 |
安装步骤
配置三个节点的hosts,hostname
vim /etc/hostname //另外两台mq0二、mq03
mq01.localdomain
vim /etc/hosts //添加下面三行
192.168.10.10 mq01
192.168.10.11 mq02
192.168.10.12 mq03
init 6 //重启关闭三台机器防火墙service firewalld stop setenforce 0
安装rabbitmq软件
yum install epel-release -y #安装epel源
yum install -y rabbitmq-server #安装rabbitln -s /usr/lib/rabbitmq/bin/* /usr/bin/ #创建命令优化rabbitmq-plugins enable rabbitmq_management #启用rabbitmq_management服务 systemctl start rabbitmq-server.service #启动rabbitmq服务 netstat -ntap | grep 5672 #3个端口开启,说明正常tcp 0 0 0.0.0.0:25672 0.0.0.0:* LISTEN 2411/beam.smp
tcp 0 0 0.0.0.0:15672 0.0.0.0:* LISTEN 2411/beam.smp
tcp6 0 0 :::5672 :::* LISTEN 2411/beam.smprabbitmqctl cluster_status #检查三台的集群状态Cluster status of node rabbit@mp01 ...
[{nodes,[{disc,[rabbit@mp01]}]},
{running_nodes,[rabbit@mp01]},
{cluster_name,<<"rabbit@mp01.localdomain">>},
{partitions,[]}]
...done.
构建Erlang群集
systemctl stop rabbitmq-server.service #中止三台服务器
vi /var/lib/rabbitmq/.erlang.cookie #三台值配置成同样的,复制mq01的内容到其余两台
systemctl start rabbitmq-server.service在0二、 03节点上操做rabbitmqctl stop_app rabbitmqctl join_cluster --ram rabbit@mq01 #加入到磁盘节点 rabbitmqctl start_app
至此就能够从web页面访问到rabbit
默认用户名:guest 密码:guest