Apache Kafka和Redis Pub-Sub异同


Redis pub-sub就像是一个“一劳永逸”的系统,在其中,您产生的所有消息将立即传递给所有使用者,并且数据不会存储在任何地方。关于Redis,您在内存上有限制。同样,生产者和消费者的数量也会影响Redis的性能。
另一方面,Kafka是高吞吐量的分布式日志,可以用作队列。它还为通过队列发送的消息提供持久性。
Redis支持基于推送的消息传递。这意味着推送到Redis的每条消息都将自动传递给所有订户。
但是,Kafka支持基于拉式的邮件传递。意味着发布到Kafka的消息不会自动分发给订阅者。相反,消费者在准备使用这些消息时会询问消息。
Redis并不存储消息,而是将消息立即传递给所有使用者,然后将其删除。但是,由于Kafka只是日志,因此您始终会收到消息。您可以通过设置保留政策(例如7天的保留时间)来进行监控。
Redis Pub-Sub

  • 如果您想要一劳永逸的系统,那么您产生的所有消息都会立即传递给消费者。
  • 如果速度是最关注的。
  • 如果存储不重要,并且您不希望系统保留已发送的消息
  • 将要处理的数据量不是很大。

Kafka
  • 如果要可靠性。
  • 如果您想让系统拥有即使使用后仍已发送的消息的副本。
  • 如果速度不是大问题。
  • 而且您的数据量很大。

Spriing Boot + Redis Pub-Sub源代码可在此处获得