2-如何選擇訊息佇列

LZC發表於2021-07-07

優點:解耦、削峰、資料分發

缺點包含以下幾點:

  • 系統可用性降低

    系統引入的外部依賴越多,系統穩定性越差。一旦MQ當機,就會對業務造成影響。

    如何保證MQ的高可用?

  • 系統複雜度提高

    MQ的加入大大增加了系統的複雜度,以前系統間是同步的遠端呼叫,現在是透過MQ進行非同步呼叫。

    如何保證訊息沒有被重複消費?怎麼處理訊息丟失情況?那麼保證訊息傳遞的順序性?

  • 一致性問題

    A系統處理完業務,透過MQ給B、C、D三個系統發訊息資料,如果B系統、C系統處理成功,D系統處理失敗。

    如何保證訊息資料處理的一致性?

特性 ActiveMQ RabbitMQ RocketMQ Kafka
開發語言 Java erlang Java Scala
單機吞吐量 萬級 萬級 10萬級 10萬級
時效性 ms us ms ms
可用性 高,主從架構 高,主從架構 非常高,分散式架構 非常高,分散式架構
功能特性 成熟產品,有較多文件,各種協議支援較好 基於erlang開發,併發能力很強,效能好,延時低,管理介面也很豐富 MQ功能完備,擴充套件性好 只支援主要的MQ功能,像訊息查詢、訊息回溯等功能沒有提供,主要是為大資料準備,在大資料領域使用較廣
本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章