1. 程式人生 > >不求甚解-MQ訊息佇列

不求甚解-MQ訊息佇列

一、介紹

訊息佇列,應用系統間訊息傳遞的方式。
可以用來做非同步,把實時性要求低的業務分離出來,提高系統響應時間。
也可以用來做應用解耦。
主要的應用:日誌、秒殺高響應、業務解耦
問題:訊息佇列帶來了一致性問題。

二、文摘

訊息佇列(MQ)是一種應用程式對應用程式的通訊方法。
應用程式通過讀寫出入佇列的訊息(針對應用程式的資料)來通訊,而無需專用連線來連結它們。
不同於直接呼叫,如dubbo,佇列的使用除去了接收和傳送應用程式同時執行的要求。
MQ是消費-生產者模型的一個典型的代表。

RabitMQ基於ERLANG語言

訊息佇列應用場景:

1、非同步處理:
	使用者註冊後,需要發註冊郵件和註冊簡訊。
	引入訊息佇列,將不是必須的業務邏輯,非同步處理。寫入訊息佇列的速度很快,系統的吞吐量提高
2、應用解耦
	使用者下單後,訂單系統需要通知庫存系統。

3、流量削鋒
	一般在秒殺或團搶活動中使用廣泛。

	使用者的請求,伺服器接收後,首先寫入訊息佇列。假如訊息佇列長度超過最大數量,則直接拋棄使用者請求或跳轉到錯誤頁面;
	秒殺業務根據訊息佇列中的請求資訊,再做後續處理。

4、日誌處理

5、訊息通訊
	實現點對點訊息佇列,或者聊天室等。

三、附加

參考資料