kafka與redis的區別:??
1、redis消息推送(基于分布式 pub/sub)多用于實時性較高的消息推送,并不保證可靠。
其他的mq和kafka保證可靠但有一些延遲(非實時系統沒有保證延遲)。redis-pub/sub斷電就清空,而使用redis-list作為消息推送雖然有持久化,但是又太弱智,也并非完全可靠不會丟。
2、redis 發布訂閱除了表示不同的 topic 外,并不支持分組,比如kafka中發布一個東西,多個訂閱者可以分組,同一個組里只有一個訂閱者會收到該消息,這樣可以用作負載均衡。
比如,kafka 中發布:topic = “發布帖子” data=”文章1″ 這個消息,后面有一百臺服務器每臺服務器都是一個訂閱者,都訂閱了這個 topic,但是他們可能分為三組,A組50臺,用來真的做發布文章,A組50臺里所有 subscriber 都訂閱了這個topic。
由于在同一組,這條消息 (topic=”發布帖子”, data=”文章1″)只會被A組里面一臺當前空閑的機器收到。而B組25臺服務器用于統計,C組25臺服務器用于存檔備份,每組只有一臺會收到。
用不同的組來決定每條消息要抄送出多少分去,用同組內哪些訂閱者忙,哪些訂閱者空閑來決定消息會被分到哪臺服務器去處理,生產者消費者模型。
redis完全沒有這類機制,這兩點是最大的區別。
更多Redis相關技術文章,請訪問Redis教程欄目進行學習!
? 版權聲明
文章版權歸作者所有,未經允許請勿轉載。
THE END