訊息佇列原理及選型,常用的訊息佇列

2025-01-02 17:30:09 字數 3550 閱讀 4850

常用的訊息佇列

1樓:清寧時光

一、redis訊息佇列和kafka訊息佇列的比較。

1、redis作為訊息佇列。

redis的pub-sub模式非常像西式快餐一樣,快產快消,全都是因為redis是使用記憶體來做存取,所有你生產的訊息立馬會被消費者一次性全部處理掉,並且沒有留下任何痕跡, 同時因為記憶體總是寶貴的,所以記憶體上會有限制,當凳高生產者以及消費者上沒團來的時候也會對redis的效率,還有redis在處理釋出和消費big size(10k+的檔案)的資料的時候會表現出無法忍受的緩慢。

如果有以下場景可以考慮使用redis作為訊息佇列:

a、如果你的需求是快產快消的即時消費場景,並且生產的訊息立即被消費者消費掉。

b、如果速度是你十分看重的,比如慢了一秒好幾千萬這種。

c、如果允許出現訊息丟失的場景。

d、如果你不需要系統儲存你傳送過的訊息,做到來無影去無蹤。

e、需要處理的資料量並不是那麼巨大。

2、kafka作為訊息佇列。

kafka的設計精妙,支援分散式,高可用的部署,並且對乙個大的佇列採用分成多個partition(分割槽),來提高訊息入隊的吞吐量,分而治之的思想。 並且消費的時候支援group的概念,能夠支援多個客戶端消費同個佇列,並且乙個group中可以增加consumer的數量來擴充套件消費的處理量。

kafka不熟生產者數量的影響,因為吞吐量足夠支撐,即使在廉價的單機伺服器上也可以有10萬每秒的訊息傳輸量,並且消費者是想什麼枯粗橘時候消費都可以,訊息它就在那裡,十分靈活,不用擔心來無影去無蹤的恐慌。能把訊息持久化,並以一定的策略(例如一定時間內刪除,或者到達多大容量的時候清空)

當有一下場景的時候你可以考慮使用kafka作為訊息佇列:

a、如果你想要穩定的訊息佇列。

b、如果你想要你傳送過的訊息可以保留一定的時間,並不是無跡可尋的時候。

c、如果你無法忍受資料的丟失。

d、如果速度不需要那麼的快。

e、如果需要處理資料量巨大的時候。

什麼是訊息佇列機制

2樓:無高希

訊息佇列機制是在多個不同的應用之間實現相互通訊的一種非同步傳輸模式,相互通訊的應用可以分佈於同一臺機器上,也可以分佈於相連的網路空間中的任一位置。

訊息佇列」是 microsoft 的訊息處理技術,它在任何安裝 microsoft windows 的計算機組合中,為任何應用程式提供訊息處理和訊息佇列功能,無論這些計算機是否在同乙個網路上或者是否同時聯機。

訊息佇列網路」是能夠相互間來回傳送訊息的任何一組計算機。網路中的不同計算機在確保訊息順利處理的過程中扮演不同的角色。它們中有些提供路由資訊以確定如何傳送訊息,有些儲存整個網路的重要資訊,而有些只是傳送和接收訊息。

訊息佇列」安裝期間,管理員確定哪些伺服器可以互相通訊,並設定特定伺服器的特殊角色。構成此「訊息佇列」網路的計算機稱為「站點」,它們之間通過「站點鏈結」相互連線。每個站點鏈結都有乙個關聯的「開銷」,它由管理員確定,指示了經過此站點鏈結傳遞訊息的頻率。

訊息佇列(mq)是什麼?

3樓:bonree博睿資料

mq全稱為message queue,即訊息佇列,是一種跨程序的通訊機制,用於上下游傳遞訊息。

使用mq的原因:

1. 實現分散式系統之間的解耦呼叫

在分散式系統中,經常會出現乙個服務會有多個消費端呼叫,而且可能每個消費方需要接入的邏輯不一致,又或者隨著專案的不斷發展,我們需要介面的未來維護和發展確定一套可擴充套件的規範,引入訊息系統,在處理過程中間插入了乙個隱含的、基於資料的介面層,兩邊的處理過程都要實現這一介面。這允許你獨立的擴充套件或修改兩邊的處理過程,只要確保它們遵守同樣的介面約束。

2. 實現非同步呼叫

有時候我們會遇到這樣的場景,使用者在客戶端提交了乙個請求,後端處理這個請求的業務相對比較複雜,如果這個請求使用的是同步呼叫,客戶端就會出現傳送請求後過了很久才相應的情況,這對使用者體驗來說是十分致命的。如果說使用者並不關心請求是否處理,對於一些耗時的非事務性的業務處理,我們可以使用mq非同步請求的方式,將處理資訊放入佇列,由後端監聽佇列自行處理,在將訊息存入佇列後直接返回客戶端相應,加快響應速度。

3. 削峰(佇列),解決高併發問題

例如秒殺活動,可能在短時間內會有很大請求同時到後端,如果後端對每個請求都執行業務操作,例如查詢資料庫和寫資料庫,會造成伺服器壓力過大,同時,在同一時間進行大量資料庫操作,可能會出現資料異常,我們可以使用mq實現緩衝,將所有請求先放入訊息佇列中,服務端每次處理業務先從訊息佇列獲取。

訊息佇列(mq)是什麼

4樓:翜侍燤哿罠倮砙

訊息佇列」是在訊息的傳輸過程中儲存訊息的容器。

訊息」是在兩臺計算機間傳送的資料單位。訊息可以非常簡單,例如只包含文字字串;也可以更復雜,可能包含嵌入物件。

訊息被髮送到佇列中。「訊息佇列」是在訊息的傳輸過程中儲存訊息的容器。訊息佇列管理器在將訊息從畝瞎它的源中繼到它的目標時充當中間人。

佇列的主要目的是提供路由並保證訊息的傳遞;如果傳送訊息時接收者不可用,訊息佇列會保留訊息,直到可以成功地傳遞它。

訊息佇列(mq)是什麼?

5樓:霓脦那些

訊息佇列(英語:message queue)是一種程序間通訊或同一程序的不同執行緒間的通訊方式,軟體的貯列用來處理一系列的輸入,通常是來自使用者。

訊息佇列提供了非同步的通訊帶謹協議,每乙個貯列中的紀錄包含詳細說明的資料,包含發生的時間,輸入裝置的種類,以及特定的輸入引數,也就是說:訊息的傳送者和接收者不需要同時與訊息佇列互動。訊息會儲存在佇列中,直到接收者取回它。

乙個 wimp 環境像是 microsoft windows,藉由優先的某些形式(通常是事件的時間或是重要性的順序)來儲存使用者產生的事件到乙個 事件貯列 中。系統把每個事件從事件貯列中傳遞給目標的應用程式。

實現。實際上,訊息佇列常常保搜虛存在連結串列結構中。擁有許可權的程序可以向訊息佇列中寫入或讀取訊息。

目前,有很多訊息佇列有很多開源的實現,包括jboss messaging、joram、apache activemq、sun open message queue、rabbitmq、ibm mq、apache qpid、apache rocketmq和httpsqs。

誰用過訊息佇列,剛入門,請教乙個問題

6樓:網友

首先你要知道佇列的應用場景在於**。一般在需要後臺大量邏輯處理或計算資源的情況下采取佇列,同時也可以提高前端的使用者體驗。

舉個例子:微博-關注/粉絲,假如你有1000個粉絲,你發了一條微博,這時候1000個粉絲都會收到你的動態,訊息佇列便適合在這樣的場景下用。原因:

1 推送1000個動態資料是耗時操作,而傳送微博頁面需要儘快響應,因此可將該任務放置到佇列;

2 你傳送了微博之後是即時生效的,但粉絲收到微博允許有些許的延遲,通過佇列的方式實現也契合該需求;

3 針對佇列的處理可以採取高效能的叢集架構實現,架構上實現了關注點分離,系統在擴充套件方面更加靈活。

冷凍乾燥原理及優點冷凍乾燥的原理及應用與熱能乾燥相比冷凍乾燥有什麼優點

冷凍乾燥就是把含有大量水分物質,預先進行降溫凍結成固體,然後在真空的條件下使水蒸汽直接昇華出來,而物質本身剩留在凍結時的冰架中。冷凍乾燥有下列優點 一 冷凍乾燥在低溫下進行,因此對於許多熱敏性的物質特別適用。二 在低溫下乾燥時,物質中的一些揮發性成分損失很小,適合一些化學產品,藥品和食品乾燥。三 在...

PLC的工作原理,PLC的意義及工作原理

plc組成 1.cpu運算和控制中心 起 心臟 作用。縱 當從程式設計器輸入的程式存入到使用者程式儲存器中,然後cpu根據系統所賦予的功能 系統程式儲存器的解釋編譯程式 把使用者程式翻譯成plc內部所認可的使用者編譯程式。橫 輸入狀態和輸入資訊從輸入介面輸進,cpu將之存入工作資料儲存器中或輸入映象...

汽車整體的原理,汽車的組成 原理及特點

動力系統,傳動系統,轉向系統 制動系統組成 汽車的組成 原理及特點 瀋陽萬通汽車學校 四大部份組成 1 發動機 發動機是汽車的動力裝置。其作用是使燃料燃燒產生動力,然後通過底盤的傳動系驅動車輪使汽車行駛。發動機主要有汽油機和柴油機兩種。汽油發動機由曲柄連桿機構 配氣機構和燃料供給系 冷卻系 潤滑系 ...