为什么我们要求Apache Kafka使用NoSQL数据库?

问题描述 投票:3回答:1

Apache Kafka是一种实时消息服务。它以分布式和容错的方式安全地存储数据流。我们可以在生产者时过滤流数据。我不明白为什么我们需要像MongoDB这样的NoSQL数据库来在Apache Kafka中存储相同的数据。真正的问题是为什么我们在NoSQL数据库和Apache Kafka中存储相同的数据?

我想如果我们需要NoSQL数据库,我们可以在不使用Apache Kafka的情况下首先从MongoDB中的客户端收集数据流。但是,大多数大数据架构偏好使用Apache Kafka在数据源和NoSQL数据库之间。(seeand also see

这对于真实系统有什么好处?

mongodb nosql apache-kafka
1个回答
6
投票

这种架构有几个优点:

  1. Kafka作为数据集成总线 它有助于轻松地在多个生产者和许多消费者之间分配数这里Apache Kafka充当“数据”集成消息总线。
  2. Kafka作为数据缓冲区 将Kafka放在像MongoDB或MySQL这样的“终端”数据存储之前就像一个自然的数据缓冲区。因此,您可以独立部署/维护/重新部署您的消费者服务。当您的服务停止维护时,Kafka仍然存储所有传入的数据,这非常有用。
  3. Kafka作为短时数据存储 您不必将所有内容存储在Kafka中:您经常使用Kafka主题进行保留。这意味着Kafka会自动删除所有早于某个值的数据。因此,例如,您可能拥有1周保留的Kafka主题(因此您只存储1周的数据),但同时您的数据仍然存在于经典SQL-DB或Cassandra等长时间存储服务中。
  4. Kafka作为长期数据存储 另一方面,您可以将Apache Kafka用作长期存储系统。使用压缩主题使您只能存储每个键的最后一个值。因此,您的主题将成为应用的最后状态存储。
© www.soinside.com 2019 - 2024. All rights reserved.