面試官:RabbitMQ有哪些工作模式?

曠世奇才927發表於2022-04-10

哈嘍!大家好,我是小奇,一位不靠譜的程式設計師
小奇打算以輕鬆幽默的對話方式來分享一些技術,如果你覺得通過小奇的文章學到了東西,那就給小奇一個贊吧
文章持續更新

一、前言

今天又、又、又來面試了,還是老規矩,上來先做兩張面試題,然後填半斤表,什麼血型、什麼星座的,話說我不知道自己什麼血型,只能空著了。。。

在這裡插入圖片描述

今天這公司環境還可以,大廳可以看到外面的世界,我已經想好了以後該去哪裡摸魚了(前提是能夠面試上)。。。

在這裡插入圖片描述

在用完了兩根簽字筆後,重要填寫完了這半斤表,然後交給面試官,等待面試。。。

二、面試

面試官:小奇是吧,過來路上遠嗎

我:不遠,也就二里地吧。。。

面試官:行,那我們們直接進入主題,我看你這簡歷上寫著對RabbitMQ非常有了解是嗎

我:何止是非常瞭解啊,那是相當的瞭解。。。

三、RabbitMQ工作模式

面試官:哦~,那你先說一下RabbitMQ有哪些工作模式吧

我:RabbitMQ一般有五種工作模式。
1:簡單模式
2:work工作模式
3:pub/sub釋出訂閱模式
4:Routing路由模式
5:Topics主題模式

面試官:那你能說一下這些模式的原理與區別嗎

簡單模式:就是一個生產者一個消費者,中間通過一個佇列直接連線。

在這裡插入圖片描述

work工作模式:就是有多個消費者消費佇列裡的訊息,佇列裡的訊息只能被一個消費者消費,這樣多部署幾個消費者,就可以緩解壓力,比如過年的時候搶票,搶票成功後會給你發簡訊,這個時候就可以把發簡訊的任務放入佇列裡,然後有多個發簡訊的服務來處理佇列裡的任務。

在這裡插入圖片描述

pub/sub釋出訂閱模式:上面兩種模式生產者的訊息只能被一個消費者消費,不符合某些實際場景。

假如我們有一個國家氣象局天氣預報系統,這個時候他傳送訊息,其他的服務商,比如百度、網易、騰訊等公司都要從國家天氣預報系統那裡獲取天氣怎麼辦呢?

總不能百度獲取了今天的天氣其他公司就獲取不了天氣了吧,或者讓國家天氣預報系統給每個服務商都傳送一次訊息,那樣顯然是很麻煩的。

所以我們需要用到一個Exchange交換機角色來幫助我們把訊息發給所有訂閱我們的服務商。

在這裡插入圖片描述

Routing路由模式:路由模式就是交換機並不是給所有訂閱他的佇列傳送訊息了,而是根據路由鍵來確定應該給哪個佇列傳送訊息,佇列和交換機繫結的時候需要通過路由鍵,而生產者傳送訊息的時候也需要指定路由鍵,這樣就可以確定給哪個佇列傳送訊息了。

這裡我們可以看到是給張三傳送訊息,所以只會給路由鍵為張三的那個佇列傳送訊息。

在這裡插入圖片描述

Topics主題模式:主題模式就相當於模糊匹配,假如我想給姓張的傳送訊息,那麼我就可以通過主題模式給所有姓張的傳送訊息。

在這裡插入圖片描述

面試官:你說的非常的全面,但是我記不住, 能用一個生活中的例子來描述一下嗎

我:記不住就背,八股文哪有那麼容易就記住的。。。

假如我今天去公司的會議室辦公了,公司的會議室只有一根網線,那我自己一個人是不是就可以連線這根網線使用了呢,這個就是簡單模式,一對一。

到了下午了張三也來會議室工作了,就一個網線怎麼辦,這時我想到了一個方法,我們兩個一人插一會網線,比如我寫郵件的時候不需要插網線,但是我發郵件的時候你就把網線讓給我讓我發出去,就這樣我和張三每人用五分鐘網線,這就是work工作模式,一根網線兩個人用,其中一個人用了,另一個人就用不到了。

又過了一會李四也特麼的來會議室了,這咋整,三個人用一根網線也太難了吧,但是聰明的我又想到了一個方法,我們找來了一個路由器,將網線接入路由器,然後我們每個人的膝上型電腦都連線路由器的無線網,這樣我們都可以上網了,這就是pub/sub釋出訂閱模式,所有訂閱路由器的膝上型電腦都可以收到流量,都可以上網哈。

過了一會網越來越卡了,我特麼一看後臺有8個人連線我們的無線網,原來我們沒有設定密碼,隔壁摸魚的小姐姐連線無線逛淘寶呢,我一想不行啊,得設定一個密碼吧,然後就設定了一個密碼,所有知道密碼的人才能連線路由器。這裡就相當於Routing路由模式。

但是有人說密碼太長了記不住,我特麼說請把記住密碼打上對勾謝謝,但是偏偏有人不打對勾天天問,我沒辦法了,我說不然就設定一個模糊密碼吧,你們前三位都輸入123,後面的數字隨便輸入,我這裡判斷前面是123的密碼我都算正確,都讓你們上網。這就相當於主題模式,這裡的主題就是123。

面試官:哇塞,聽你這麼一講,我有點永生難忘啊

我:請你不要迷戀哥,哥只是一個傳說。。。

面試官:小夥子真厲害啊,一下子就把這幾種模式講的栩栩如生,你面試通過了,明天上崗吧

我:啊,這麼急嗎,我後面還有好多東西沒有講呢。

面試官:不著急,進來了以後慢慢聽你講,你不都已經找好摸魚的地方了嗎,到時候我們們一塊去那裡聊天

我:這都被你發現了啊。。。

四、總結

這裡關於RabbitMQ還沒有整理完畢,文章後面持續更新,建議收藏。

文章中涉及到的命令大家一定要像我一樣每個都敲幾遍,只有在敲的過程中才能發現自己對命令是否真正的掌握了。

如果覺得我的文章還不錯的話就點個贊吧

相關文章