1. 程式人生 > >redis和kafka比較

redis和kafka比較

redis 訊息推送(基於分散式 pub/sub)多用於實時性較高的訊息推送,並不保證可靠。
其他的mq和kafka保證可靠但有一些延遲(非實時系統沒有保證延遲)。redis-pub/sub斷電就清空,而使用redis-list作為訊息推送雖然有持久化,但是又太弱智,也並非完全可靠不會丟。

另外一點,redis 釋出訂閱除了表示不同的 topic 外,並不支援分組,比如kafka中釋出一個東西,多個訂閱者可以分組,同一個組裡只有一個訂閱者會收到該訊息,這樣可以用作負載均衡。

比如,kafka 中釋出:topic = "釋出帖子" data="文章1" 這個訊息,後面有一百臺伺服器每臺伺服器都是一個訂閱者,都訂閱了這個 topic,但是他們可能分為三組,A組50臺,用來真的做釋出文章,A組50臺裡所有 subscriber 都訂閱了這個topic。

由於在同一組,這條訊息 (topic="釋出帖子", data="文章1")只會被A組裡面一臺當前空閒的機器收到。而B組25臺伺服器用於統計,C組25臺伺服器用於存檔備份,每組只有一臺會收到。

用不同的組來決定每條訊息要抄送出多少分去,用同組內哪些訂閱者忙,哪些訂閱者空閒來決定訊息會被分到哪臺伺服器去處理,生產者消費者模型嘛。

redis完全沒有這類機制,這兩點是最大的區別。。。。。

來源:https://blog.csdn.net/yjh314/article/details/77929707