首页 > 架构 > kafka redis发布订阅的区别和使用场景
2021
05-05

kafka redis发布订阅的区别和使用场景

背景

Redis pub-sub就像是一个即弃即用系统,其中您产生的所有消息将立即传递给所有使用者,而数据却不保存在任何地方。关于Redis,您的内存有限。同样,生产者和消费者的数量也会影响Redis的性能。

另一方面,Kafka是一种高吞吐量的分布式日志,可以用作队列。在这里,任何数量的用户都可以生产,而消费者可以在任何时候消费。它还为通过队列发送的消息提供持久性。

对比

使用Redis:

  1. 如果您想要一种救火忘了的系统,那么您产生的所有消息都会立即传递给消费者。

  2. 如果最关心速度。

  3. 如果您可以忍受数据丢失。

  4. 如果您不希望系统保留已发送的消息。

  5. 要处理的数据量不是很大。

使用kafka:

  1. 如果您想要可靠性。

  2. 如果您希望系统拥有即使使用后仍已发送的消息副本。

  3. 如果您无法忍受数据丢失。

  4. 如果速度不是大问题。

  5. 数据量巨大


注意事项

    redis 发布订阅是基于推送的,订阅者能收到的信息只能是自它开始订阅之后的消息,之前已经发布的就不能收到了。

    kafka 发布订阅是基于pull的,所以kafka可以pull到订阅之前的消息


新特性


Redis 5.0+版本提供了Stream数据结构。可以将其视为具有交付保证的日志数据结构。它提供了一组阻止操作,使消费者可以等待生产者添加到流中的新数据,此外还提供了一个名为“消费者组”的概念。

基本上,Stream结构提供与Kafka相同的功能。

这是文档https://redis.io/topics/streams-intro


参考资料


redis.io/topics/persistence

https://www.cloudkarafka.com/blog/part1-kafka-for-beginners-what-is-apache-kafka.html

https://kafka.apache.org/documentation.html#design_pull



本文》有 0 条评论

留下一个回复