架構設計(六):引入消息隊列

架構設計(六):引入消息隊列

作者:Grey

原文地址:

博客園:架構設計(六):引入消息隊列

CSDN:架構設計(六):引入消息隊列

消息隊列是一個支持持久化的組件,數據存儲在內存中,支持異步通信。它作爲一個緩衝器,分配異步請求。消息隊列的基本架構很簡單,包含兩個部分

第一部分:輸入服務,稱爲生產者/發佈者,創建消息,並將其發佈到消息隊列中。

第二部分:其他服務或服務器,稱爲消費者/訂閱者,連接到隊列,並執行消息所定義的動作。

img

消息隊列可以實現服務之間的解耦,成爲構建可擴展和可靠的應用程序的首選架構。有了消息隊列,生產者可以在消費者無法處理消息時將其發佈到隊列中。即使生產者不可用,消費者也可以從隊列中讀取消息。

以下示例說明了消息隊列的使用方式

假設某個應用是用來處理照片定製,包括剪裁、銳化、模糊等。這些定製任務需要相對長的時間來完成。

應用服務器(生產者)將「照片處理作業」發佈到消息隊列中。照片處理程序(消費者)從消息隊列中接過作業,異步地執行照片定製任務。生產者和消費者可以獨立擴展。當隊列的規模變大時,會增加更多的消費者實例以減少處理時間。然而,如果隊列大部分時間是空的,可以減少生產者的實例數量。

參考資料

System Design Interview

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