【问题标题】:Is Kafka a message queue and can Kafka be used as the database?Kafka是消息队列吗,Kafka可以作为数据库吗?
【发布时间】:2019-11-18 06:23:19
【问题描述】:

有些地方提到Kafka是发布-订阅消息。其他提到 Kafka 的来源是消息队列。请问这些有什么区别,可以用Kakfa做数据库吗?

【问题讨论】:

  • 你的问题太宽泛了。您能否通过一些示例添加一些关于您正在寻找的内容的详细信息
  • Kafka 称自己为“流处理平台”。这是一个真正的系统,但没有“建筑风格”。我不会称它为数据库。
  • 您的问题不清楚,在比较 2 个不同的事物时看起来很困惑,但它在某些方面是有效的。我已经编辑了问题以使其清楚。如果与您的原始想法不正确,请随时更改。
  • 值得一读。 .....datanami.com/2019/10/01/…

标签: apache-kafka


【解决方案1】:

有 2 种模式,名为 Publish-Subscribe 和 Message Queue。有一些地方讨论了不同之处。 here

Kafka 特别支持这两种模式。对于发布-订阅模式,Kafka 有支持该模式的发布者/订阅者。发布者向一个主题发送消息,订阅者可以订阅和接收该主题的消息。对于排队模式,Kafka 有一个名为 Consumer Group 的概念。在同一个消费者组内,所有消费者将共享作业,从而平衡工作量。

由于从一开始就设计的灵活,Kafka 在设计系统时被广泛用于许多软件模式。 就个人而言,我不会将 Kafka 本身称为数据库,但您可以使用 Kafka 作为存储,尤其是通过一些机制,例如 log compactionRef1Ref2

【讨论】:

    【解决方案2】:

    Kafka 是像数据库一样的基础存储,但没有索引,其中每个查询都是对数据的完整扫描。 Kafka 将数据存储在无法修改的文件中。例如,如果您使用事件源,您可以将系统的所有事件保存在 Kafka 中,并在系统出现错误时重新处理所有事件。

    想象一下,Kafka 可以在多台服务器上拆分一个非常大的文件(10TB 或更多),并提供一种使用分区以分布式方式读取该文件的方法(您拥有更多的分区,更多的应用程序可以并行读取)。

    因为它是一种存储,Kafka 也可以用作消息队列或发布-订阅系统。

    【讨论】:

      猜你喜欢
      • 2020-09-12
      • 1970-01-01
      • 2021-11-03
      • 1970-01-01
      • 1970-01-01
      • 2016-06-06
      • 2021-03-07
      • 2019-04-25
      • 1970-01-01
      相关资源
      最近更新 更多