redis-pub-sub

redis的Pub/Sub機制類似於廣播架構,Subscriber相當於收音機,可以收聽多個channel(頻道),Publisher(電臺)可以在channel中發佈信息。
架構


示例

優缺點

  • 數據可靠性無法保證(無msg id 無法實現發現冪等性,無法重試)
    一個redis-cli發佈消息n個redis-cli接受消息。消息的發佈是無狀態的,即發佈完消息後該redis-cli不在理會該消息是否被接受到,是否在傳輸過程中丟失,即對於發佈者來說,消息是"即發即失"的.

  • 擴展性太差

不能通過增加消費者來加快消耗發佈者的寫入的數據,吐吞較低,如果發佈者發佈的消息很多,則數據阻塞在通道中已等待被消費着來消耗。阻塞時間越久,數據丟失的風險越大(網絡或者服務器的一個不穩定就會導致數據的丟失)

  • 資源消耗較高

在pub/sub中消息發佈者不需要獨佔一個Redis的鏈接,而消費者則需要單獨佔用一個Redis的鏈接,在java中便不得獨立出分出一個線程來處理消費者。這種場景一般對應這多個消費者,此時則有着過高的資源消耗。

roket mq

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章