目录

  • 了解背压
    • 什么是背压
    • 背压产生的原因
    • 背压导致的影响
  • 定位背压
  • 解决背压

了解背压

什么是背压

在流式处理系统中,如果出现下游消费的速度跟不上上游生产数据的速度,就种现象就叫做背压
(backpressure,也叫反压)

背压产生的原因

下游消费的速度跟不上上游生产数据的速度,可能出现的原因如下:

  1. 节点有性能瓶颈,可能是该节点所在的机器有网络、磁盘等等故障,机器的网络延迟和磁盘不
    足、频繁 GC、数据热点等原因。
  2. 数据源生产数据的速度过快,计算框架处理不及时。比如消息中间件 kafka,生产者生产数据过
    快,下游 flink 消费计算不及时。
  3. flink 算子间并行度不同,下游算子相比上游算子过小。

背压导致的影响

首先,背压不会直接导致系统的崩盘,只是处在一个不健康的运行状态。

  1. 背压会导致流处理作业数据延迟的增加。
  2. 影响到 Checkpoint,导致失败,导致状态数据保存不了,如果上游是 kafka 数据源,在一致性
    的要求下,可能会导致 offset 的提交不上。
    原理: 由于 Flink 的 Checkpoint 机制需要进行 Barrier 对齐,如果此时某个 Task 出现了背压,Barrier流动的速度就会变慢,导致 Checkpoint 整体时间变长,如果背压很严重,还有可能导致 Checkpoint超时失败。
  3. 影响 state 的大小,还是因为 checkpoint barrier 对齐要求。导致 state 变大。
    原理:接受到较快的输入管道的 barrier 后,它后面数据会被缓存起来但不处理,直到较慢的输入管道的 barrier 也到达。这些被缓存的数据会被放到 state 里面,导致 state 变大。

定位背压

  • 在 web 页面发现 fink 的 checkpoint 生成超时。
  • 查看 jobmanager 日志。
  • 在 BackPressure 界面直接可以看到。
  • Metrics 监控背压。

解决背压

Flink不需要一个特殊的机制来处理背压,因为Flink中的数据传输相当于已经提供了应对背压的机制。
所以只有从代码上与资源上去做一些调整。

  1. 背压部分原因可能是由于数据倾斜造成的,我们可以通过 Web UI 各个 SubTask 的 指标值来
    确认。Checkpoint detail 里不同 SubTask 的 State size 也是一个分析数据倾斜的有用指标。
    解决方式把数据分组的 key 预聚合来消除数据倾斜。
  2. 代码的执行效率问题,阻塞或者性能问题。
  3. TaskManager 的内存大小导致背压。

Flink系列-背压(反压)相关推荐

  1. 背压/反压/BackPressure

    Flink系列文章 更多Flink系列文章请点击Flink系列文章 更多大数据文章请点击大数据好文推荐 转载声明 本文大量内容系转载自以下文章,有删改,并参考其他文档资料加入了一些内容: Apache ...

  2. Flink 网络流控和反压剖析详解

    传送门:Flink 系统性学习笔记 前言: 本文根据 Apache Flink 系列直播整理而成,由 Apache Flink Contributor.OPPO 大数据平台研发负责人张俊老师分享,社区 ...

  3. 一文弄懂Flink网络流控及反压

    一文弄懂Flink网络流控及反压 1. 为什么需要网络流控? 2. 网络流控的实现:静态限速 3. 网络流控的实现:动态反馈/自动反压 3.1 案例一:Storm 反压实现 3.2 案例二:Spark ...

  4. Flink教程(31)- Flink网络流控及反压

    文章目录 01 引言 02 为什么需要网络流控? 03 网络流控的实现:静态限速 04 网络流控的实现:动态反馈/自动反压 4.1 案例一:Storm 反压实现 4.2 案例二:Spark Strea ...

  5. 【Flink】Flink 反压机制 导致checkpoint 失败

    1.概述 转载:flink检查点checkpoint失败问题总结-2 问题描述:检查点刚开始是可以的做checkpoint的,后期越来越不能够做checkpoint的情况总结 2.反压问题 2.1 什 ...

  6. Flink的背压机制

    想起来之前被问到了一个问题,如果Flink中的Task是一直不停的运行的话,那么拉取Kafka数据的Source端是不是会一直不停的拉取数据,如果消费速度不及时,内存不就很快会被撑爆了么?一开始对这个 ...

  7. 【Flink】Flink反压(背压)网络流控

    1.美图 2.概述 界面查看:Flink UI: Flink 1.10 如何查看 数据源 的背压(反压)情况(消费kafka) 为了判断是否进行反压,jobmanager会每50ms触发100次sta ...

  8. 一文搞懂 Flink 网络流控与反压机制

    看完本文,你能get到以下知识 Flink 流处理为什么需要网络流控? Flink V1.5 版之前网络流控介绍 Flink V1.5 版之前的反压策略存在的问题 Credit的反压策略实现原理,Cr ...

  9. Flink核心篇,四大基石、容错机制、广播、反压、序列化、内存管理、资源管理...

    Flink基础篇,基本概念.设计理念.架构模型.编程模型.常用算子 大纲: 1.Flink的四大基石包含哪些? 2.讲一下Flink的Time概念? 3.介绍下Flink窗口,以及划分机制? 4.介绍 ...

最新文章

  1. 通过异或运算符加密解密 难度二星
  2. C#开发学习——内联表达式
  3. CTF-PWN环境搭建
  4. tomcat日志按天切分
  5. Chapter3-1_Speech Separation(Deep Clustering, PIT)
  6. CodeForces 8D Two Friends 判断三个圆相交
  7. Datagridview中的数据很多,加载完数据后滚动条自动到最下边,如何解决?
  8. redis面试常问--缓存穿透
  9. lombok依赖包介绍
  10. 基于WEB的本科毕业设计管理系统
  11. 大一大学计算机应用基础,大一计算机应用基础试题
  12. 编译原理学习之:有限状态机(Finate-state Automaton)
  13. Windows Ready Boost,使用闪存设备提高性能
  14. 网易游戏策划笔试2019春招题解
  15. matlab读取snp文件,bcftools 提取vcf(snp/indel)文件子集
  16. 开放式激光振镜运动控制器:C++振镜矫正方法与实现
  17. 《夜深人静写算法》数论篇 - (22) 卢卡斯定理
  18. 周 7 福利日:中奖名单公布
  19. RT-Thread学习笔记(9):邮箱
  20. Cesium隐藏版权信息

热门文章

  1. 设计模式(一)继承+组合
  2. iostextarea获取焦点_jquery – 在iOS上的Safari中针对textarea触发的不一致事件
  3. iphone html阅读,iPhone如何使用Safari浏览器阅读列表功能
  4. 用位运算完成大小比较
  5. 如何理解类型geometry和geography以及4326、3857坐标系
  6. 解决”您的连接不是私密链接“的问题!
  7. 09 模型的增删查改《ThinkPHP6 入门到电商实战》
  8. 个人实用java 常用语句(工作笔记)
  9. java集合类继承关系图_java集合继承关系图
  10. LSM-Tree 的写放大写放大、读放大、空间放大RockDB、leveldb 写放大简单分析参考文档