一、为什么用Flink
1、OLTP:事务处理。后端和mysql的数据进行交互
例如:在网页上点击变更自己的用户信息,后端直接请求的mysql数据库,直接在Mysql上的这条数据进行修改,反应快速。
缺点:处理的数据少
![](https://img-blog.csdnimg.cn/img_convert/88d20df44c2549cf96a0e3dff9506fb6.png)
2、OLAP:分析处理
将不同系统的数据都提取到数仓中,对海量数据进行处理。
缺点:时效性低,需要等数据攒够了再处理
3、Flink可以实时处理大量的数据(解决了OLTP响应时间快但是无法处理大量数据的瓶颈)
他将结果保存为内存中的状态,并在磁盘中持久化,如果发生故障可以直接恢复。
![](https://img-blog.csdnimg.cn/img_convert/63c56cac1ed74fceb314db277fb4ee58.png)
lambda架构
![](https://img-blog.csdnimg.cn/img_convert/c65c060af9b84083bb14be66bc40a3e5.png)
流处理:分布式必然会导致乱序,因为是分开算的,有的快有的慢。可能不太准确,但是处理的快。
批处理:可以对攒的那批数据按照时间排序,所以可以是有序的,保证数据有序。
最终对两者进行合并处理,流处理可以显示数据不断在变化,批处理显示最终的结果。
一个需求需要维护两套系统,两套框架。
新一代处理器flink
用一套框架同时处理流处理和批处理kappa架构
每秒处理百万个时间 ms级的延迟
事件事件(用来专门保证处理乱序数据结果正确的时间语义)和处理事件
保证exactly-once:精确一次,故障恢复可以恢复到没处理之间的状态,重新处理