【kafka】消息隊列介紹

目錄

消息隊列的介紹

Kafka消息隊列

消息隊列的應用場景

消息隊列的兩種模式

點對點模式

發佈/訂閱模式(點對多點)


  • 消息隊列的介紹

消息(Message):是指在應用之間傳送的數據,消息可以非常簡單,比如只包含文本字符串,也可以更復雜,可能包含嵌入對象。

消息隊列(Message Queue):是一種應用間的通信方式,消息發送後可以立即返回,有消息系統來確保信息的可靠專遞,消息發佈者只管把消息發佈到MQ中而不管誰來取,消息使用者只管從MQ中取消息而不管誰發佈的,這樣發佈者和使用者都不用知道對方的存在

 

  • Kafka消息隊列

Apache Kafka是一個分佈式消息發佈訂閱系統。它最初由LinkedIn公司基於獨特的設計實現爲一個分佈式的提交日誌系統( a distributed commit log),,之後成爲Apache項目的一部分。Kafka系統快速、可擴展並且可持久化。它的分區特性,可複製和可容錯都是其不錯的特性

 

  • 消息隊列的應用場景

應用耦合:多應用間通過消息隊列對同一消息進行處理,避免調用接口失敗導致整個過程失敗;

異步處理:多應用對消息隊列中同一消息進行處理,應用間併發處理消息,相比串行處理,減少處理時間。

限流削峯:廣泛應用於秒殺或搶購活動中,避免流量過大導致應用系統掛掉的情況。

消息驅動的系統:系統分爲消息隊列、消息生產者、消息消費者,生產者負責產生消息,消費者(可能有多個)負責對消息進行處理。

 

  • 消息隊列的兩種模式

消息隊列包括兩種模式,點對點模式(point to point, queue)和發佈/訂閱模式(publish/subscribe,topic)

 

  • 點對點模式

點對點模式下包括三個角色:消息隊列,發送者 (生產者),接收者(消費者)

消息發送者生產消息發送到queue中,然後消息接收者從queue中取出並且消費消息。消息被消費以後,queue中不再有存儲,所以消息接收者不可能消費到已經被消費的消息。

 

特點:

1.每個消息只有一個接收者(Consumer)(即一旦被消費,消息就不再在消息隊列中)。

2.發送者和接收者間沒有依賴性,發送者發送消息之後,不管有沒有接收者在運行,都不會影響到發送者下次發送消息。

3.接收者在成功接收消息之後需向隊列應答成功,以便消息隊列刪除當前接收的消息。

 

  • 發佈/訂閱模式(點對多點)

發佈/訂閱模式下包括三個角色:角色主題(Topic),發佈者(Publisher),訂閱者(Subscriber)

 

發佈者將消息發送到Topic,系統將這些消息傳遞給多個訂閱者

 

特點:

1.每個消息可以有多個訂閱者。

2.發佈者和訂閱者之間有時間上的依賴性。針對某個主題(Topic)的訂閱者,它必須創建一個訂閱者之後,才能消費發佈者的消息。

3.爲了消費消息,訂閱者需要提前訂閱該角色主題,並保持在線運行。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章