技术选型: Flink
Flink 支持流计算以及基于流来模拟批处理,同时兼顾了流处理和批处理。基于内存计算
技术发展--提供金融级的数据处理能力。高吞吐、低延迟:毫秒级的延迟、每秒钟处理上亿次的消息或者事件
通过调整缓存块的超时阈值,用户可根据自己的需要灵活的权衡Flink的延迟和吞吐量。
支持状态管理:Flink提供了内置的状态管理,提供了一个Exactly-once的一致性语义,支持强一致性
故障恢复:Checkpoint恢复-- Chandy-Lamport算法 --保证了强一致性的语义。解决乱序问题:Event Time和WaterMark的技术
Flink架构
一些基本概念:
时间: Time 事件时间Event Time、处理时间Processing Time 、进入时间Ingestion time
时间偏差--事件时间顺序和处理时间顺序不一致,事件以乱序到达流处理器
窗口:Window Windows can be time driven or data driven
时间窗口:
计数窗口
会话窗口
stateful
触发器--触发器(Trigger)-每个窗口分配器都带有一个默认的 Trigger
决定了窗口什么时候准备好被窗口函数处理--触发器接口有五个方法来对不同的事件做出响应
Evictor
Checkpoints for Fault Tolerance
Savepoints: 状态版本控制
水印:Flink提供了处理迟到元素的机制,实现事件时钟