開源框架rabbitMQ

RabbitMQ:api

安裝:瀏覽器

  1.安裝erlang開發環境。服務器

  2.安裝RabbitMQ,安裝RabbitMQ插件,這樣能夠在瀏覽器操做Rabbit MQ;tcp

步驟:插件

  

 

  rabbitMQ消息隊列做爲服務器,生茶者和消費者是客戶端。blog

  生產者步驟:rabbitmq

 ConnectionFactory factory = new ConnectionFactory();             factory.setHost("localhost");             factory.setPort(5672);             factory.setUsername("guest");             factory.setPassword("guest");             factory.setVirtualHost("/");//rabbitmq默認虛擬機名稱爲「/」,虛擬機至關於一個獨立的mq服務隊列

    1.經過建立一個鏈接工廠來來鏈接主機、端口號、用戶名、密碼。路由

  2.經過這個工廠生成一個tcp鏈接,經過該鏈接建立通道。開發

  3.經過通道定義一個隊列

 /**              * 聲明隊列,若是Rabbit中沒有此隊列將自動建立              * param1:隊列名稱              * param2:是否持久化              * param3:隊列是否獨佔此鏈接              * param4:隊列再也不使用時是否自動刪除此隊列              * param5:隊列參數              */             channel.queueDeclare(QUEUE, true, false, false, null);

  4.定義一個字符串消息

  5.經過通道調用api,發佈該消息。

  消費者步驟:

  1.建立工廠。建立鏈接,建立通道,聲明隊列。

  2.經過通道調用api,肯定監聽哪一個隊列,監聽成功,而後調用哪一個方法。channel.basicConsume(QUEUE, true, consumer);

  3.方法定義,經過這個方法就能夠得到消息內容  DefaultConsumer consumer = new DefaultConsumer(channel) { }這個是匿名內部類,裏邊要實現一個handleDelivery方法,這個方法會被自動調用,能夠在這個方法內處理消息。

  

一、發送端操做流程

1)建立鏈接
2)建立通道
3)聲明隊列

4)發送消息 二、接收端

1)建立鏈接
2)建立通道
3)聲明隊列

4)監聽隊列
5)接收消息

 

RabbitMQ消息隊列使用流程文字化敘述:首先生產者即客戶端,要建立鏈接,而後建立通道,經過通道建立交換機(聲明交換機類型)和隊列,而後綁定某個交換機和某個隊列,而且指定路由key,這樣發送消息給交換機時候,會指定路由key,而後交換機根據與本身綁定的隊列看看有沒有路由key相符合的,發送給它,發送wan之後,消費者監聽到之後,就會調用相應的消費方法。

 

RabbitMQ工做模式:對於 任務太重或任務較多狀況使用工做隊列能夠提升任務處理的速度。

 

1. 工做隊列:使用默認的交換機(全部的隊列都會和默認交換機鏈接,路由key是隊列名字),發送消息時,路由key是隊列的名字。 

  有兩個或兩個以上消費者監聽同一個隊列,而後輪流從隊列取出消息。

  一個交換機,一個隊列,多個消費者。

 

 2.發佈訂閱模式:適合那種註冊成功,短信郵箱一塊兒通知。

定義交換機,要選擇交換機類型爲發佈訂閱類型,綁定交換機和消息隊列,不指定路由key,交換機會把消息發送給每個消息隊列。

3.路由模式:

定義新的交換機,要選擇交換機類型爲路由類型,須要綁定交換機和消息隊列,綁定時須要指定消息隊列在這個交換機中的路由key,而後向這個交換機發布消息時

指定路由key,就會將消息發送給指定的消息隊列。

4.通配符模式:有這樣一個案例,根據用戶的設置,來決定用戶接受短信、郵件、仍是都接受,若是使用路由模式,那麼一條消息根據路由key,只能匹配上短信或者郵件,不能兩個都匹配,而使用通配符模式,就能夠實現二者都匹配或者只匹配一個。

和路由模式同樣,只是路由key設置的是帶通配符的,這樣就能夠模糊匹配了。

 

 5.Header模式:

header模式與routing不一樣的地方在於,header模式取消routingkey,使用header中的 key/value(鍵值對)匹配 隊列。
案例:
根據用戶的通知設置去通知用戶,設置接收Email的用戶只接收Email,設置接收sms的用戶只接收sms,設置兩種 通知類型都接收的則兩種通知都有效。

6.RPC模式

相關文章
相關標籤/搜索