Flink-01-flink基本原理及应用场景分析

Apache Flink 是一个开源的分布式,高性能,高可用,准确的流处理框架。同时支持实时流处理和批处理。在这里插入图片描述

flink特性

  • 支持批处理和数据流程序处理
  • 优雅流畅的支持java和scala api
  • 同时支持高吞吐量和低延迟
  • 支持事件处理和无序处理通过SataStream API,基于DataFlow数据流模型
  • 在不同的时间语义(时间时间,处理时间)下支持灵活的窗口(时间,技术,会话,自定义触发器)
  • 仅处理一次的容错担保
  • 自动反压机制
  • 图处理(批) 机器学习(批) 复杂事件处理(流)
  • 在dataSet(批处理)API中内置支持迭代程序(BSP)
  • 高效的自定义内存管理,和健壮的切换能力在in-memory和out-of-core中
  • 兼容hadoop的mapreduce和storm
  • 集成YARN,HDFS,Hbase 和其它hadoop生态系统的组件

flink的应用场景

  • 优化电子商务的实时搜索结果:阿里巴巴的所有基础设施团队使用flink实时更新产品细节和库存信息,为用户提供更高的关联性。
  • 针对数据分析团队提供实时流处理服务:king通过flink-powered数据分析平台提供实时数据分析,从游戏数据中大幅缩短了观察时间
  • 网络/传感器检测和错误检测:Bouygues电信公司,是法国最大的电信供应商之一,使用flin监控其有线和无线网络,实现快速故障响应。
  • 商业智能分析ETL:Zalando使用flink转换数据以便于加载到数据仓库,将复杂的转换操作转化为相对简单的并确保分析终端用户可以更快的访问数据。
基于上面的案例分析,Flink非常适合于:
  • 多种数据源(有时不可靠):当数据是由数以百万计的不同用户或设备产生的,它是安全的假设数据会按照事件产生的顺序到达,和在上游数据失败的情况下,一些事件可能会比他们晚几个小时,迟到的数据也需要计算,这样的结果是准确的。
  • 应用程序状态管理:当程序变得更加的复杂,比简单的过滤或者增强的数据结构,这个时候管理这些应用的状态将会变得比较难(例如:计数器,过去数据的窗口,状态机,内置数据库)。flink提供了工具,这些状态是有效的,容错的,和可控的,所以你不需要自己构建这些功能。
  • 数据的快速处理:有一个焦点在实时或近实时用例场景中,从数据生成的那个时刻,数据就应该是可达的。在必要的时候,flink完全有能力满足这些延迟。
  • 海量数据处理:这些程序需要分布在很多节点运行来支持所需的规模。flink可以在大型的集群中无缝运行,就像是在一个小集群一样。

flink是如何同时支持流处理和批处理的?

       flink以固定的缓存块为单位进行网络数据传输,用户可以通过设置缓存块超时值指定缓存块的传输时机,如果缓存块的超时值为0,则flink的数据传输方式类似于流处理的标准模型(一进内存就被下一个结点拉取走),此时系统可以获得最低的处理延迟。
        如果缓存块的超时值为无限大,则flink的数据传输方式类似于批处理系统的标准模型,此时系统可以获得最高的吞吐量。
       同时缓存块的超时值也可以设置为0到无限大之间的任意值。缓存块的超时阈值越小,则flink流处理执行引擎的数据处理延迟越低,但吞吐量也会降低,反之亦然。通过调整缓存块的超时阈值,用户可根据需求灵活地权衡系统延迟和吞吐量。
       通俗来讲:当这个缓存块的超时值设置成0的时候,它的处理方式就是流处理;当超时值大于0的时候,它的处理方式是批处理。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值