redis作簡單mq的高可用

redis集羣環境redis

  1. 生產者有多個 消費者有多個 兩邊隨時可增長隊列

  2. redis上消息只會被一個消費者消費,不會有多個訂閱者消費同一個消息,簡單一對一內存

解決:部署

  1. 消費者崩潰問題:RPOPLPUSH保證不會因爲程序問題致使消息不丟失。那麼這部分中間狀態數據如何處理。考慮集羣copy到目標隊列名稱須要根據消費者程序部署unique名,可結合zk來作,當出現程序崩潰,該隊列會自動成爲可消費隊列,消費完成後會被幹掉集羣

  2. 爲了利用集羣,多個隊列寫,生產者只負責輪訓寫,消費者輪訓讀redis集羣

  3. 生產者崩潰問題,一樣有成效記錄來補償中間狀態。相似消費者來決定中間狀態值的改變。程序

  4. 考慮redis內存問題,生產者根據隊列狀況進行閥值控制,避免消費太慢,寫入太快數據

相關文章
相關標籤/搜索