【问题标题】:What does commit-log mean in Kafka?Kafka 中的 commit-log 是什么意思?
【发布时间】:2017-12-21 16:10:04
【问题描述】:

原谅我,我只是在学习Kafka。在阅读Kafka的资料时,多次遇到一个叫commit-log的词。但仍然不知道它到底是什么。提到的链接如下所示。

https://kafka.apache.org/documentation/#uses_commitlog

Kafka 可以作为一种外部 commit-log 用于分布式 系统。日志有助于在节点之间复制数据并充当 故障节点恢复数据的重新同步机制。

https://engineering.linkedin.com/distributed-systems/log-what-every-software-engineer-should-know-about-real-time-datas-unifying

我在这一切中学到的最有用的东西之一是 我们正在建造的东西有一个非常简单的概念: 日志。有时称为 write-ahead logscommit logs交易记录

https://kafka.apache.org/protocol.html#protocol_partitioning

Kafka 是一个分区系统,因此并非所有服务器都有完整的 数据集。相反,请记住主题被拆分为预定义的 分区数,P,并且每个分区都复制了一些 复制因子,N。主题分区本身只是有序的 “提交日志”编号为 0、1、...、P。

提交日志是什么意思?与 DBMS 的概念有什么不同吗?怎么理解呢?谢谢。

【问题讨论】:

    标签: apache-kafka


    【解决方案1】:

    从概念上讲,Kafka 提供的“提交日志”与 DBMS 使用的提交日志/事务日志/预写日志之间没有区别:它们都是关于记录对某事所做的更改,以便以后可以重播.

    在 DBMS 的情况下,如果 DB 没有完全关闭并且对于确保 DB 以一致的状态恢复服务是必要的,则会发生此重播。重要的是,在数据库中,此提交日志是数据库的实现细节,而不是数据库客户端的关注点。

    在 Kafka 应用程序中,此提交日志是一流的概念。如果愿意,主题的订阅者可以为自己重建应用程序的状态(实际上是“重放日志”)。他们还可以对主题中的特定事件做出反应,并了解特定状态是如何到达的,这对于传统的 DBMS 来说都不容易。

    【讨论】:

      猜你喜欢
      • 2017-01-22
      • 2021-05-25
      • 2014-11-25
      • 2014-07-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-30
      • 1970-01-01
      相关资源
      最近更新 更多