過多的描述就不扯了,本文主要記錄RabbitMQ的安裝以及簡單使用。本次安裝是爲了實現spring cloud的消息總線:SpringCloud全家桶學習之消息總線---SpringCloud Bushtml
RabbitMQ是Erlang語言編寫,因此Erang環境必需要有,注:Erlang環境必定要與RabbitMQ版本匹配:https://www.rabbitmq.com/which-erlang.htmlspring
Erlang下載地址:https://www.rabbitmq.com/releases/erlang/(根據自身需求及匹配關係,下載對應rpm包)vim
RabbitMQ下載地址:https://www.rabbitmq.com/releases/rabbitmq-server/(根據自身需求及匹配關係,下載對應rpm包)後端
rabbitmq安裝依賴於socat,因此須要下載socat。瀏覽器
socat下載地址:http://repo.iotti.biz/CentOS/6/x86_64/socat-1.7.3.2-1.el6.lux.x86_64.rpmapp
必定按照如下順序安裝:post
①rpm -ivh erlang-18.3-1.el6.x86_64.rpm性能
②rpm -ivh socat-1.7.3.2-1.el6.lux.x86_64.rpm學習
③rpm -ivh rabbitmq-server-3.6.5-1.noarch.rpm url
①cd /usr/lib/rabbitmq/bin
②./rabbitmq-server start
①生產者發送消息給交換機
②交換機接收消息,若是交換機沒有綁定隊列,消息扔進垃圾桶
③隊列接收消息,存儲在內存,等待消費者鏈接監聽獲取消息,消費成功後,返回確認
一些場景:短信,QQ
①生產者將消息發送給交換機
②交換機發送給綁定的後端隊列
③一個隊列被多個消費者同時監聽,造成消息的爭搶結構:根據消費者所在的系統的空閒、性能爭搶隊列中的消息
一些場景:搶紅包
注:圖中未畫消費者
①交換機定義類型爲:fanout
②交換機綁定多個隊列
③生產者將消息發送給交換機,交換機複製同步消息到後端全部的隊列中
一些場景:郵件羣發
①交換機定義類型爲:direct
②交換機綁定多個隊列,隊列綁定交換機時,給交換機提供了一個routingkey(路由key)
③發佈訂閱時,全部fanout類型的交換機綁定後端隊列用的路由key都是「」;在路由模式中須要綁定隊列時提供當前隊列的具體路由key
一些場景:錯誤消息的接收和提示
①交換機定義類型爲:topic
②交換機綁定多個隊列,與路由模式很是類似,作到按類劃分消息
③路由key隊列綁定的通配符以下:#表示任意字符串,*表示沒有特殊符號(單詞)的字符串