RabbitMQ 訊息佇列

來源:互聯網
上載者:User

標籤:ccf   接收   完成   非同步執行   通訊   com   https   back   ike   

 

RabbitMQ是一個在AMQP基礎上完整的,可複用的企業訊息系統。他遵循Mozilla Public License開源協議。

MQ全稱為Message Queue, 訊息佇列(MQ)是一種應用程式對應用程式的通訊方法。應用程式通過讀寫出入隊列的訊息(針對應用程式的資料)來通訊,而無需專用連線來連結它們。消 息傳遞指的是程式之間通過在訊息中發送資料進行通訊,而不是通過直接調用彼此來通訊,直接調用通常是用於諸如遠端程序呼叫的技術。排隊指的是應用程式通過 隊列來通訊。隊列的使用除去了接收和發送應用程式同時執行的要求。

 

什麼叫訊息佇列

訊息(Message)是指在應用間傳送的資料。訊息可以非常簡單,比如只包含文本字串,也可以更複雜,可能包含內嵌物件。

訊息佇列(Message Queue)是一種應用間的通訊方式,訊息發送後可以立即返回,由訊息系統來確保訊息的可靠傳遞。訊息發行者只管把訊息發布到 MQ 中而不用管誰來取,訊息使用者只管從 MQ 中取訊息而不管是誰發布的。這樣發行者和使用者都不用知道對方的存在。

 

為何用訊息佇列

從上面的描述中可以看出訊息佇列是一種應用間的非同步協作機制,那什麼時候需要使用 MQ 呢?

以常見的訂單系統為例,使用者點擊【下單】按鈕之後的商務邏輯可能包括:扣減庫存、產生相應單據、發紅包、發簡訊通知。在業務發展初期這些邏輯可能放在一起同步執行,隨著業務的發展訂單量增長,需要提升系統服務的效能,這時可以將一些不需要立即生效的操作拆分出來非同步執行,比如發放紅包、發簡訊通知等。這種情境下就可以用 MQ ,在下單的主流程(比如扣減庫存、產生相應單據)完成之後發送一條訊息到 MQ 讓主流程快速完結,而由另外的單獨線程拉取MQ的訊息(或者由 MQ 推送訊息),當發現 MQ 中有發紅包或發簡訊之類的訊息時,執行相應的商務邏輯。

以上是用於業務解耦的情況,其它常見情境包括最終一致性、廣播、錯峰流控等等。

個人認為:訊息佇列就是為了讓我們的讓我們的處理機制的效率提升 就是根據不同的需求來進行處理不同的機制  而不是一起執行進而提高了整個程式的效率,並且可以我們的訊息放入隊列之後就不管後面的使用者了 我繼續執行我的程式 後面的程式如何使用我就不管了 也是大大提升了程式的效率

應用詳情

 

 

 

RabbitMQ 訊息佇列

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.