想要真正的了解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請...