介紹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