tol*_*nir 3 mongodb nosql apache-kafka
Apache Kafka是一种实时消息传递服务。它以分布式和容错的方式安全地存储数据流。在向生产者发送消息时,我们可以过滤流数据。我并不理解为什么我们需要像MongoDB这样的NoSQL数据库在Apache Kafka中存储相同的数据。真正的问题是,为什么我们将相同的数据存储在NoSQL数据库和Apache Kafka中?
我认为,如果需要NoSQL数据库,则可以首先从MongoDB中的客户端收集数据流,而无需使用Apache Kafka。但是,大多数大数据体系结构偏好在数据源和NoSQL数据库之间使用Apache Kafka。(请参阅参考资料)

对于实际系统而言,这有什么优势?
该体系结构具有以下优点:
Kafka作为数据集成总线
它有助于在多个生产者和许多消费者之间轻松分发数据。在这里,Apache Kafka充当“数据”集成消息总线。
Kafka作为数据缓冲区
将Kafka放在MongoDB或MySQL之类的“最终”数据存储之前,就像一个自然的数据缓冲区。因此,您能够独立部署/维护/重新部署消费者服务。在您的服务因维护而停机时,Kafka仍在存储所有传入数据,这非常有用。
Kafka作为短时数据存储
您不必将所有内容都存储在Kafka中:通常,您会保留使用Kafka主题。这意味着Kafka会自动删除所有早于某个值的数据。因此,例如,您可能具有保留1周的Kafka主题(因此,您仅存储1周的数据),但是同时,您的数据仍处于长期存储服务中,例如经典SQL-DB或Cassandra等。
Kafka作为长期数据存储
另一方面,您可以将Apache Kafka用作长期存储系统。使用紧凑主题可以使您仅存储每个键的最后一个值。因此,您的主题成为应用程序的最后状态存储。
| 归档时间: |
|
| 查看次数: |
3868 次 |
| 最近记录: |