天天看點

RabbitMQ

一、應用場景

  1. 異步處理
  2. 應用解耦
  3. 流量削峰

二、系統架構

RabbitMQ
RabbitMQ

概念說明:

Broker:提供一種傳輸服務,角色就是維護一條從生産者到消費者的路線,保證資料能按照指定的方式進行傳輸。

Exchange:消息交換機,它指定消息按什麼規則,路由到哪個隊列。

Queue:消息的載體,每個消息都會被投到一個或多個隊列。

Binding:綁定,它的作用就是把exchange和queue按照路由規則綁定起來。

Routing Key:路由關鍵字,exchange根據這個關鍵字進行消息投遞。

vhost:虛拟主機,一個broker裡可以有多個vhost,用作不同使用者的權限分離。

Producer:消息生産者,就是投遞消息的程式。

Consumer:消息消費者,就是接受消息的程式。

Channel:消息通道,在用戶端的每個連接配接裡,可建立多個channel。

RabbitMQ常用的Exchange Type有三種:fanout、direct、topic。

fanout:把所有發送到該Exchange的消息投遞到所有與它綁定的隊列中。(子網廣播,最快)

RabbitMQ

direct:把消息投遞到那些binding key與routing key完全比對的隊列中。(完全比對、單點傳播)

RabbitMQ

topic:将消息路由到binding key與routing key模式比對的隊列中。