ByteArrayOutputStream 作为 Java I/O 体系中最基础的内存输出流,自 JDK 1.0 诞生以来,以其动态扩容、零拷贝读取、线程安全的...
首先,从软件工程视角揭示其背后的设计哲学:零拷贝架构实现极致性能,状态机模型管理读取位置,标记-重置机制支持灵活回溯。其次,深入字节级微观运作,解析 trans...
在 2026 年高并发、低延迟、云原生的软件架构中,I/O 性能优化依然是系统性能的关键瓶颈。BufferedWriter 作为 Java I/O 体系中与 B...
golang源码的工具链中提供了可选参数coverprofile参数,可以生成覆盖率文件,方便我们快速查看,哪行代码被覆盖了,哪行代码还需要验证,...
ConcurrentSkipListMap 是JDK1.6提供的又一个线程安全有序的 map 集合,在高并发场景下有着不错的存取效率。使用起来和 TreeMap...
Java 7 中 ConcurrentHashMap 由很多个 Segment 组合,而每一个 Segment 是一个类似于 HashMap 的结构,所以每一个...
HashMap 主要用来存放键值对,它基于哈希表的 Map 接口实现,是常用的 Java 集合之一,是非线程安全的。
ArrayList 的底层是数组队列,相当于一个动态数组。与 Java 中的数组相比,它的容量能动态增粘,并且支持随即插入。在添加大量元素前,可以使用 ensu...
在介绍 Kafka Connector 之前,我们先来看一下在 Flink 中是如何支持自定义 Source 和 Sink 的。我们来看一张 Flink 官方文...
在以前的线程模型中,Flink 通过 checkpointLock 来隔离保证不同线程在修改内部状态时的正确性。通过 checkpointLock 控制并发会在...
JobManager 在 Flink 集群中发挥着重要的作用,包括任务调度和资源管理等工作。如果 JobManager 宕机,那么整个集群的任务都将失败。为了解...
前文中我们了解了 Flink 的数据交互过程,上游的 Task 将数据写入到 ResultSubpartition 的 buffers 队列中。下游的 Task...
经过前面的学习,Flink 的几个核心概念相关的源码实现我们已经了解了。本文我们来梳理 Task 的数据交互相关的源码。
通过Flink学习笔记:多流 Join一文的介绍,我们知道 Flink 有三种数据关联的方式,分别是 Window Join、Interval Join 和 C...
前文我们梳理了 Watermark 相关的源码,Watermark 的作用就是用来触发窗口,本文我们就一起看一下窗口相关的源码。
前面我们已经梳理了 Flink 状态和 Checkpoint 相关的源码。从本文开始,我们再来关注另外几个核心概念,即时间、Watermark 和窗口。