ActiveMq知識點

應用場景

用戶註冊,註冊成功之後進行郵件通知,初始化客戶數據等操作,可以丟進消息隊列,通知對應的業務服務進行相應的操作,保證用戶註冊的性能。

MQ優點

  1. 異步
  2. 消峯
  3. 解耦
    消息隊列利用”發佈-訂閱“工作,消息發送者發送消息至分佈式消息隊列即結束對消息的處理,消息接收者從消息隊列讀取消息進行後續處理。對新增業務,只要對該類消息感興趣,即可訂閱該消息,對原有系統和業務沒有任何影響,從而實現網站業務的可擴展性設計。
    在這裏插入圖片描述

MQ缺點

  1. 提高系統的設計複雜度
  2. 系統可用性降低

常見問題

  1. 如何提高MQ系統可用性
    ActiveMQ的高可用性架構是基於Master/Slave 模型的,使用Replicated LevelDB Store模式,這種模式基於Zookeeper 進行選舉Master,其他節點則爲slave,Master負責接收消息和同步消息給slave,slave負責接收同步master消息。
  2. 如果避免消息重複消費
    給消息設置唯一主鍵,消費時判斷是否已經消費過此數據
  3. 消息丟失怎麼辦
    使用mq持久化信息
  4. 怎麼保證從消息隊列裏拿到的數據按順序執行
    沒找到ActiveMq的
    rabbitmq:拆分多個queue,每個queue一個consumer,就是多一些queue而已,確實是麻煩點;或者就一個queue但是對應一個consumer,然後這個consumer內部用內存隊列做排隊,然後分發給底層不同的worker來處理
    kafka:一個topic,一個partition,一個consumer,內部單線程消費,寫N個內存queue,然後N個線程分別消費一個內存queue即可
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章