【Flink】

事件驱动型应用

核心目标:数据流上的有状态计算

Apache Flink是一个框架和分布式处理引擎,用于对无界或有界数据流进行有状态计算。

运行逻辑

695c1e3f34c74509b3d7d19f42c5ff1f.jpeg

状态

把流处理需要的额外数据保存成一个“状态”,然后针对这条数据进行处理,并且更新状态。这就是所谓的“有状态的流处理”。

无界数据和有界数据 

无界数据流

有定义流的开始,但没有定义流的结束

它们会无休止的产生数据

无界流的数据必须持续处理,即数据被摄取后需要立刻处理。我们不能等到所有数据都到达再处理,因为输入是无限的。

有界数据流

有定义流的开始,也有定义流的结束;

有界流可以在摄取所有数据后再进行计算;

有界流所有数据可以被排序,所以并不需要有序摄取;

有界流处理通常被称为批处理。

Flink主要特点

高吞吐和低延迟:每秒处理数百万个事件,毫秒级延迟。

结果的准确性:Flink提供了事件时间(event-time )和处理时间(processing-time)语义。对于乱序事件流,事件时间语义仍然能提供一致且准确的结果。

精确一次(exactly-once)的状态一致性保证。

可以连接到最常用的存储系统,如Kafka、 Hive、JDBC、HDFS、 Redis等。

高可用:本身高可用的设置,加上与K8s, YARN和Mesos的紧密集成,再加上从故障中快速恢复和动态扩展任务的能力,Flink能做到以极少的停机时间7×24全天候运行。

Flink VS Spark

spark以批处理为根本

flink以流处理为根本

应用场景

1)电商和市场营销
举例:实时数据报表、广告投放、实时推荐
2)物联网( IOT )
举例:传感器实时数据采集和显示、实时报警,交通运输业
3)物流配送和服务业
举例:订单状态实时更新、通知信息推送
4)银行和金融业
举例:实时结算和通知推送,实时检测异常行为

猜你喜欢

转载自blog.csdn.net/David_Hzy/article/details/133219443