一、什么是MQ
? ? ? ? MQ(Message Queue,消息隊列)是一種能夠實現跨進程消息傳輸,并且消息緩存符合隊列特性的組件。
二、MQ的作用
? ? ? ? 異步:消息發送方無需等待消息接收方收到消息,發送方將消息成功發送到 MQ 之后即可無阻塞地執行后續業務。
? ? ? ? 解耦:消息發送方無需關心誰會收到消息,消息接收方也無需關心消息是誰發送的。
? ? ? ? 削峰:當消息出現瞬時突發流量時,MQ 會進行緩存,接收方可以在一段時間內以較為平穩的速度消費消息。
三、主流MQ產品對比
優點 | 缺點 | 適用場景 | |
Kafka | 吞吐量很大,性能好,服務高可用 | 可能會丟數據,功能相對單一 | 日志采集、大數據場景 |
RabbitMQ | 消息可靠性高,功能全面 | erlang語言小眾,不方便定制。吞吐量較低 | 企業內部小規模服務調用 |
Pulsar | 消息可靠性高 | 周邊生態較為薄弱,用的公司較少 | 企業內部大規模服務調用 |
RocketMQ | 吞吐量大,性能好,服務高可用。功能全面,客戶端協議豐富。使用Java開發,方便定制 | 服務啟動加載較慢 | 幾乎所有應用系統,尤其是金融領域 |
? ? ? ? RocketMQ 歷經阿里多年雙11考驗,在保證消息可靠性和服務高可用的同時,具有很好的性能。此外,RocketMQ 的高級功能也在不斷拓展和完善,比如廣播消費、延遲隊列、死信隊列、事務消息等。