Flink原理与代码实例讲解
1.背景介绍
1.1 什么是Flink
Apache Flink是一个开源的分布式流处理和批处理框架,由Apache软件基金会开发。Flink以数据并行和流水线方式执行任意流数据程序,Flink的流水线运行时系统可以执行批处理和流处理程序。此外,Flink的运行时本身也支持迭代算法的执行。
1.2 Flink的应用场景
Flink广泛应用于电商、物流、互联网、制造、电信等行业,典型的应用场景包括:
- 实时数据处理:如实时日志分析、实时欺诈检测、实时推荐等
- 数据分析:如离线数据分析、Ad-hoc查询、A/B测试等
- 机器学习:如预测分析、异常检测等
- 事件驱动应用:如实时ETL、实时监控告警等
1.3 Flink的特点
- 事件驱动(Event-driven):事件驱动型应用是一类具有状态的应用,它从一个或多个事件流提取数据,并根据到来的事件触发计算、状态更新或其他外部动作。
- 基于流的世界观:在Flink的世界观中,一切都是由流组成的,离线数据是有界的流;实时数据是一个没有界限的流:这就是所谓的有界流和无界流。
- 分层API:Flink提供了不同级别的抽象,满足不同开发人员的需求。
- 支持事件时间(event-time)和处理时间(processing-time)语义。
- 精确一次(exactly-once)的状态一致性保证。
- 低延迟、每秒处理数百万个事件,毫秒级延迟。
- 与众多常用存储系统的连接。
- 高可用:动态扩展,实现7*24小时全天候运行。
2.核心概念与联系
2.1 Flink运行时的组件
Flink运行时架
版权归原作者 禅与计算机程序设计艺术 所有, 如有侵权,请联系我们删除。