RabbitMq 3.0.1 初探

RabbitMq的核心組建 Exchange and Queue

Exchange,又稱交換器,它接受消息和路由信息,然後將消息發送給消息隊列。對於每個虛擬主機內部,交換器有獨一無二的名字。應用程序在其權限範圍之內可以自由的創建、共享、使用和銷燬交換器實例。 交換器可以是持久的、臨時的或者自動刪除的。持久交換器會一直存在於服務器,直到它被顯式刪除;臨時交換器會工作到服務器被關閉時爲止;而一旦沒有應用程序使用自動刪除交換器,它就會被服務器自動刪除掉。 消息隊列是一個具名緩衝區,它們代表一組消費者應用程序保存消息。應用程序在其權限範圍之內可以自由的創建、共享、使用和消費消息隊列.

Queue消息隊列提供了有限制的先進先出保證。服務器會將從某一個生產者發出的同等優先級的消息按照它們進入隊列的順序傳遞給某個消費者,萬一某些消息不能被消費者處理,它們可能會被打亂順序重新傳遞。 消息隊列可以是持久的、臨時的或者自動刪除的。臨時消息隊列會工作到服務器被關閉時爲止;而一旦沒有應用程序使用自動刪除消息隊列,它就會被服務器自動刪除掉。只要用戶(客戶端)擁有相應的權限,任何隊列都可以被顯式刪除。 消息隊列將消息保存在內存、硬盤,或者這兩種介質的組合之中。消息隊列限定在虛擬主機範圍之中。消息隊列保存消息,並將消息分發給一個或多個訂閱客戶端。 消息隊列會跟蹤消息的獲取情況,消息要出隊就必須被獲取(acquire和consume是兩個動作,先執行acquire,相當於對消息加鎖)。這阻止了多個客戶端同時獲取和消費同一條消息,也可以被用來做單個隊列多個消費者之間的負載均衡。

 

RabbitMq的Exchange綁定類型有三種/直接交換/廣播交換/主題交換

所謂綁定就是將一個特定的Exchange 和一個特定的Queue綁定起來,綁定關鍵字成爲BindingKe

Exchange 和Queue的綁定可以是多對多的關係,每個發送給Exchange的消息都有一個叫做RoutingKey的關鍵字,Exchange要想將該消息轉發給特定隊列,該隊列與交換器的BindingKey必須與消息的RoutingKey相匹配才行.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章