前置
| 篇 | 文章 | 核心内容 |
|---|---|---|
| 序 | 从批处理到流处理 | 卷三定位、三卷分工、本卷边界 |
| 前言 | 环境、项目与读法 | Kafka 3.8.1 + Flink 1.20.x + eventd v3 骨架 |
| 目录 | 目录与学习路径 | 三条路径:Streams → Flink → 面板 |
第一部分:流处理基础(第 1–3 章)
| 节 | 文章 | 核心内容 |
|---|---|---|
| 1.1 | 流处理范式:Dataflow、窗口、时间语义 | 批 vs 流、事件时间 vs 处理时间 |
| 1.2 | 窗口与时间语义 | 滚动/滑动/会话/全局窗口 |
| 1.3 | Flink 环境搭建 | MiniCluster、依赖、Maven BOM |
| 2.1 | Kafka Streams 拓扑 | StreamsBuilder、Source/Sink/Processor |
| 2.2 | KStream 与 KTable | 有界/无界、更新流 |
| 2.3 | Kafka Streams DSL 基础 | filter/map/flatMap/groupBy/reduce |
| 3.1 | 状态存储与交互查询 | KeyValueStore、交互查询(Interactive Queries) |
| 3.2 | Kafka Streams Exactly-Once | EOS 配置、事务 ID |
| 3.3 | Kafka Streams 与 Reactive Streams 衔接 | Publisher → KafkaProducer、Reactive 适配 |
第二部分:Flink 核心(第 4–8 章)
| 节 | 文章 | 核心内容 |
|---|---|---|
| 4.1 | DataStream API:Source/Transformation/Sink | StreamExecutionEnvironment、addSource、addSink |
| 4.2 | Flink 时间语义与 Watermark | EventTime、Assigner、AllowedLateness |
| 4.3 | Flink 窗口:滚动、滑动、会话、全局 | WindowAssigner、Trigger、Evictor |
| 5.1 | Flink 状态管理:KeyedState | ValueState、ListState、MapState、ReducingState |
| 5.2 | Flink 状态管理:OperatorState | ListState、BroadcastState、CheckpointedFunction |
| 5.3 | Flink Checkpoint 与故障恢复 | CheckpointConfig、Barrier、异步快照 |
| 6.1 | Flink CEP:模式匹配入门 | Pattern.begin、next/followedBy/within |
| 6.2 | Flink CEP:复杂事件处理 | 迭代模式、超时、侧输出 |
| 6.3 | Flink Table API 与 SQL(概述) | TableEnvironment、SQL 查询、与 DataStream 转换 |
| 7.1 | 连接器:Kafka Source/Sink | KafkaSource、KafkaSink、offset 提交与分区映射 |
| 7.2 | 连接器:JDBC / Redis / Elasticsearch | JdbcSink、自定义 Redis Sink、ES Sink |
| 7.3 | 连接器:自定义 Source 与 Sink | SourceFunction、RichSinkFunction |
| 8.1 | 指标与延迟分析 | LatencyMarker、MetricsReporter |
| 8.2 | 反压与资源调优 | Web UI backpressure、buffer参数、slot调优 |
| 8.3 | 测试:MiniCluster 与测试工具 | MiniCluster、CollectSink |
第三部分:eventd v3 与实时面板(第 9–12 章)
| 节 | 文章 | 核心内容 |
|---|---|---|
| 9.1 | eventd v3 架构 | Kafka → Streams 清洗 → Flink 聚合 → 面板 |
| 9.2 | Kafka Streams 清洗管道 | 去重、格式标准化、异常过滤 |
| 9.3 | Flink 窗口聚合 | 按用户/时段聚合、热点统计 |
| 10.1 | 实时指标计算 | QPS、延迟分位数、错误率实时计算 |
| 10.2 | 实时告警规则引擎 | 阈值判断、滑动窗口告警、抑制 |
| 10.3 | 实时面板数据流 | SSE / WebSocket 推送、背压适配 |
| 11.1 | 端到端 Exactly-Once | Kafka → Flink → 下游 EOS 保证 |
| 11.2 | 多流 Join 与关联分析 | Interval Join、CoProcessFunction |
| 11.3 | 状态 TTL 与过期清理 | StateTtlConfig、过期策略 |
| 12.1 | eventd v3 全链路集成 | v2 事件 → Kafka → Streams → Flink → 面板 |
| 12.2 | 部署与运维 | Standalone / Docker / 配置分层 |
| 12.3 | v3 验收 | 全链路可运行、指标正确性、延迟达标 |
第四部分:测试与调试(第 13–14 章)
| 节 | 文章 | 核心内容 |
|---|---|---|
| 13.1 | Kafka Streams 测试 | TopologyTestDriver、InputTopic、OutputTopic |
| 13.2 | Flink DataStream 测试 | MiniCluster、CollectSink、Watermark 推进 |
| 13.3 | 端到端测试 | Testcontainers Kafka + Flink + 面板断言 |
| 14.1 | 性能基线与调优 | 吞吐、延迟、Checkpoint 间隔 |
| 14.2 | 故障排查 | 反压、状态过大、OOM、Watermark 滞后 |
| 14.3 | 从 v2 到 v3 的演进 | 事件格式兼容、数据迁移、灰度切换 |
第五部分:总结与展望(第 15 章)
| 节 | 文章 | 核心内容 |
|---|---|---|
| 15.1 | 引擎选型指南 | Kafka Streams vs Flink、决策树、混合架构 |
| 15.2 | 响应式流处理的演进趋势 | 流批一体、实时数仓、SQL 化、Serverless |
| 15.3 | 全书总结与学习路径回顾 | 三卷知识体系、概念提炼、进阶建议 |
附录
| 附录 | 文章 | 用途 |
|---|---|---|
| A | Flink DataStream API 速查 | Source → Transformation → Sink 速查 |
| B | Kafka Streams DSL 速查 | 常用操作符与配置参数 |
三条学习路径
路径 A:顺序通读
序 → 前言 → 目录 → 第 1–3 章(流处理基础 + Kafka Streams)
→ 第 4–8 章(Flink 核心)→ 第 9–12 章(eventd v3 实现)
→ 第 13–14 章(测试 + 性能 + 运维)→ 第 15 章(选型与总结)→ 附录
路径 B:已有 Kafka Streams 经验
第 4 章(Flink DataStream)→ 第 6 章(CEP)
→ 第 8 章(调优)→ 第 11 章(端到端 EOS)
→ 第 13 章(测试)
路径 C:只看代码
前言(环境)→ 第 9 章(eventd v3 架构)
→ 附录 A(Flink 速查)→ 附录 B(Kafka Streams 速查)
从第 1 章开始:1.1 流处理范式:Dataflow、窗口、时间语义 。
继续阅读
探索更多技术文章
浏览归档,发现更多关于系统设计、工具链和工程实践的内容。