深入解讀RabbitMQ工作原理及簡單使用

2021-10-10 16:31:31 字數 1054 閱讀 6609

想要真正的了解rabbit有些名詞是你必須知道的。

包括:connectionfactory(連線管理器)、channel(通道)、exchange(交換器)、queue(佇列)、routingkey(路由鍵)、bindingkey(繫結鍵)。

connectionfactory(連線管理器):應用程式與rabbit之間建立連線的管理器,程式**中使用;

channel(通道):訊息推送使用的通道;

exchange(交換器):用於接受、分配訊息;

queue(佇列):用於儲存生產者的訊息;

routingkey(路由鍵):用於把生成者的資料分配到交換器上;

bindingkey(繫結鍵):用於把交換器的訊息繫結到佇列上;

看到上面的解釋,最難理解的路由鍵和繫結鍵了,那麼他們具體怎麼發揮作用的,請看下圖:

交換機的主要作用是接收相應的訊息並且繫結到指定的佇列.交換機有四種型別,分別為direct,topic,headers,fanout.

direct是rabbitmq預設的交換機模式,也是最簡單的模式.即建立訊息佇列的時候,指定乙個bindingkey.當傳送者傳送訊息的時候,指定對應的key.當key和訊息佇列的bindingkey一致的時候,訊息將會被傳送到該訊息佇列中.

topic**資訊主要是依據萬用字元,佇列和交換機的繫結主要是依據一種模式(萬用字元+字串),而當傳送訊息的時候,只有指定的key和該模式相匹配的時候,訊息才會被傳送到該訊息佇列中.

headers也是根據乙個規則進行匹配,在訊息佇列和交換機繫結的時候會指定一組鍵值對規則,而傳送訊息的時候也會指定一組鍵值對規則,當兩組鍵值對規則相匹配的時候,訊息會被傳送到匹配的訊息佇列中.

fanout是路由廣播的形式,將會把訊息發給繫結它的全部佇列,即便設定了key,也會被忽略.

Read Write spinlock工作原理

1 假設臨界區內沒有任何的thread,這時候任何read thread或者write thread可以進入,但是只能是其一。2 假設臨界區內有乙個read thread,這時候新來的read thread可以任意進入,但是write thread不可以進入 3 假設臨界區內有乙個write thr...

SpringCloud Eureka工作原理

eureka 作為 spring cloud 體系中最核心 預設的註冊中心元件,研究它的執行機制,有助於我們在工作中更好地使用它。eureka 註冊中心 包含兩個元件 eureka server和eureka client。服務提供者和服務的消費者。eureka負責管理 記錄服務提供者的資訊。服務呼...

selenium webdriver工作原理

1 啟動瀏覽器,selenium webdriver會將目標瀏覽器繫結帶特定的埠,啟動後的瀏覽器則作為webdriver的remote server 服務端 2 客戶端 也就是測試指令碼 傳送http請求給server端。通訊協議 the webdriver wire protocol,在http請...