【问题标题】:Kafka operations [closed]卡夫卡操作[关闭]
【发布时间】:2021-03-29 13:45:36
【问题描述】:
您好,我对 Kafka 操作非常陌生,我从中了解到的只是事件数据存储在所谓的主题中。这些主题就像日志一样被写入磁盘,甚至被复制。
什么是生产者和消费者?它们本质上是否只是应用程序的一部分,例如一个生产者数据和另一个请求数据的微服务?
我的问题是传统数据库和 Kafka 主题之间到底有什么区别?
只是数据类型不同吗?
在数据库中存储对象,在主题中存储事件?它们都写入硬盘?
Kafka真正解决了什么问题?
分散式微服务存在一些问题,依赖于微服务
Kafka 是如何解决这个问题的?
谢谢大家
【问题讨论】:
标签:
apache-kafka
architecture
software-design
【解决方案1】:
首先,生产者和消费者可以是同一个应用程序的一部分。使用 Kafka 不需要“微服务”。
一个生产者数据和另一个请求数据?
是的
传统数据库和 Kafka 主题之间到底有什么区别?
不清楚您认为什么是“常规”数据库,但 Kafka 本身没有查询功能,也没有任何定义的记录模式。此类功能由外部工具启用
它们都写入硬盘?
并非所有数据库都写入磁盘。 Kafka 确实写入磁盘
Kafka真正解决了什么问题?
网站上提到了use cases,但最初的目标是将日志/指标聚合到数据湖中,而不是服务内通信。
但是,如果您有点对点的依赖链,则需要确保该链中的所有应用程序都已启动,而它们可能偶尔会失败并从停止从复制日志读取的位置重新开始
p>
【解决方案2】:
数据存储在所谓的主题中。这些主题就像日志一样被写入磁盘,甚至被复制。
Kafka 中的数据被视为事件。每个事件通常代表某事发生了。该事件存储在 Kafka 代理的给定主题中。主题可以看作是一种将数据组织成类别的方式。
什么是生产者和消费者?
生产者创建事件并将它们提交给 Kafka 代理,然后这些代理将这些事件存储在适当的主题中。消费者可以从上述数据中消费,拉取生产者创建的事件。
我的问题是传统数据库和 Kafka 主题之间到底有什么区别?
很难定义传统的。但我想不,Kafka 不是一个传统的数据库。您可能会经常发现自己在 kafka 中使用其他数据库。 Kafka 主要适用于捕获实时事件,存储它们以便实时将它们引导到其他地方(历史检索也是可能的)。
Kafka真正解决了什么问题?
处理需要事件流的任何事情。它可以持久地执行此操作,并在处理大量数据时提供大量保证和灵活性。
总结:我建议您先阅读在Kafka Documentation 找到的文档的第一部分。
如果您真的想深入了解,您还可以找到一本名为 Kafka:最终版的书。