一、消息隊列的優點
優點:解耦、異步、削峰
1)解耦(通過MQ可實現模塊或系統間的解耦)
直接調用
使用MQ
2)異步
異步一般指方法級別間的調用,原理上同解耦
3)削峰
比如A系統最大的處理能力是1000/s(即每秒1000並發的請求),假如某時刻的請求超過1000怎么辦,那么我們就可以使用MQ,讓系統根據自己的處理能力慢慢的處理。
二、消息隊列的缺點
缺點:系統可用性降低、系統復雜性提高、一致性問題
1)系統可用性降低
可用性降低怎么理解呢,假如開始只有A、B、C、D四個系統,現在又引入了MQ,那么MQ一旦掛掉了,A和B、C、D系統的通信就都掛掉。
2)系統復雜性提高
引入MQ后,我們就需要考慮一下幾點:
1.怎么處理消息丟失的情況
2.怎么保證消息沒有重復消費
3.怎么保證消息傳遞的順序性
3)一致性問題
如何保證發送消息的系統A和消費消息的系統B,要么都成功,要么都失敗呢?