从零学习Kafka:数据存储
不知道有没有朋友和我一样,虽然了解 Kafka 的逻辑存储,例如 Broker、Topic、Partition 这些概念,但是对于底层数据是如何存储还是比较模糊。这样聊起来 Kafka 数据存储时总有种一知半解的感觉。今天我们就一起来看一下 Kafka 底层数据到底是怎么存储的。
不知道有没有朋友和我一样,虽然了解 Kafka 的逻辑存储,例如 Broker、Topic、Partition 这些概念,但是对于底层数据是如何存储还是比较模糊。这样聊起来 Kafka 数据存储时总有种一知半解的感觉。今天我们就一起来看一下 Kafka 底层数据到底是怎么存储的。
前面我们对 Kafka 的整体架构和一些关键的概念有了一个基本的认知,本文主要介绍 Kafka 的一些配置参数。掌握这些参数的作用对我们的运维和调优工作还是非常有帮助的。
在前文中,我们从源码层面介绍了 Flink 的 Kafka Connector 的实现。从本文开始,我们的目标也正式从 Flink 过渡到 Kafka。
本文我们来梳理 Kafka Connector 相关的源码。
本文我们来梳理 Flink 的线程模型——Mailbox。
JobManager 在 Flink 集群中发挥着重要的作用,包括任务调度和资源管理等工作。如果 JobManager 宕机,那么整个集群的任务都将失败。为了解决 JobManager 的单点问题,Flink 也设计了 HA 机制来保障整个集群的稳定性。
前文中我们了解了 Flink 的数据交互过程,上游的 Task 将数据写入到 ResultSubpartition 的 buffers 队列中。下游的 Task 通过 LocalInputChannel 和 RemoteInputChannel 消费上游的数据。
经过前面的学习,Flink 的几个核心概念相关的源码实现我们已经了解了。本文我们来梳理 Task 的数据交互相关的源码。
今天来梳理一下 Flink 双流操作相关的源码。
前文我们梳理了 Watermark 相关的源码,Watermark 的作用就是用来触发窗口,本文我们就一起看一下窗口相关的源码。