红迪斯与卡夫卡的区别

Redis 可以像卡夫卡一样作为实时酒吧潜艇使用。

我不知道什么时候该用哪一个。

任何用例都会有很大的帮助。

65703 次浏览

Redis pub-sub 基本上就像一个火灾和遗忘系统,你生成的所有信息都会立刻传递给所有的消费者,而数据却不会保存在任何地方。关于 Redis,您的内存有限。此外,生产商和消费者的数量也会影响 Redis 的表现。

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

最后一个镜头:

使用指南:

  1. 如果你想要一个火和忘记的系统,在那里所有的信息,你生产即时传递给消费者。
  2. 如果最关心速度的话。
  3. 如果你能忍受数据丢失。
  4. 如果您不希望系统保存已发送的消息。
  5. 要处理的数据量并不大。

使用卡夫卡:

  1. 如果你想要可靠性。
  2. 如果您希望您的系统有一个消息的副本,该副本即使在消费之后也已经发送。
  3. 如果你无法忍受数据丢失。
  4. 如果速度不是一个大问题。
  5. 数据量巨大

Redis 5.0 + 版本提供了 溪流数据结构。它可以被看作是具有交付保证的日志数据结构。它提供了一组阻塞操作,允许消费者等待生产者添加到流中的新数据,除此之外,还有一个名为“消费者组”的概念。

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

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

有两个最流行的 Java 客户端支持这个特性: Redisson和 Jedis

如果需要交付的可靠性,则 Redisson 提供 ReliableTopic 对象