当前位置: 首页 > news >正文

[flink总结]什么是flink背压 ,有什么危害? 如何解决flink背压?flink如何保证端到端一致性?

1 Flink的背压(Backpressure)是指当下游算子处理数据的速度不及上游算子传递数据的速度时,会导致数据始终堆积在网络层或内存中,会导致系统效率下降,出现背压现象。

背压的危害:

  1. 系统性能下降:数据阻塞,导致系统吞吐量降低和延迟增大。
  2. 内存压力增大:大量未处理的数据会占用计算节点的内存,可能导致内存溢出。
  3. 系统稳定性下降:严重的背压可能导致任务执行过程中节点由于内存溢出等问题导致崩溃,影响任务的正常运行。

解决方法:

  1. 增加下游算子的并行度,可以投入更多的资源去处理数据,提高数据处理速度。
  2. 对数据进行预处理、过滤不必要的数据,减少数据处理的压力。
  3. 可通过配置backpressure.interval、backpressure.num-samples、backpressure.request-backoff等参数优化对背压的处理策略。
  4. 调整Flink的配置,例如调整缓冲数据的时间,开启反压机制等。

2 Flink通过一套精确的一次性(Exactly-Once)的计算状态管理维持端到端数据的一致性,其关键技术如下:

  1. 在source阶段,source源要有数据数据精确处理一次性的机制 , 比如kafka可以,网络流本身不可以 !

  2. 检查点(Checkpoint)机制:通过在流式数据处理中的不同位置设定检查点,能够记录系统的状态,当有故障产生时,系统可以从最近的检查点恢复,保证了一致性。

  3. 事务写入机制:与外部系统进行交互时,Flink提供了二阶段提交协议(Two-Phase Commit)来保证数据的一致性。在输出结果到外部系统时,首先进行预提交,然后在提交成功之后再进行确认。

  4. 精确一次处理语义:Flink可以保证在故障情况下,每条数据仅仅被处理一次,从而保证数据的一致性。

  5. 链路的乱序解决:Flink可以通过Watermark机制处理乱序数据,保证事件时间的一致性。

  6. 重放机制:Flink的事件源(Source)需要提供重放数据的能力,这样在故障恢复时,可以重新处理原始数据。

相关文章:

  • linux ,Windows部署
  • doris安装(docker方式)
  • 每日leetcode--接雨水
  • RocketMQ学习笔记三(面试题)
  • 机器学习-04-分类算法-03KNN算法
  • docker修改配置文件后一直显示Restarting (1) 状态
  • STM32CubeProgrammer + STLINK V2 烧录
  • wrap:包装
  • C#版开源免费的Bouncy Castle密码库
  • SA3D:基于 NeRF 的三维场景分割方法
  • k8s+wordpress+zabbix+elastic+filebeat+kibana服务搭建以及测试
  • APK漏洞扫描工具
  • 高可用篇_A Docker容器化技术_V 基于DockerCompose实现容器编排
  • MyBatis拦截器四种类型和自定义拦截器的使用流程
  • 黑豹程序员-java按限定范围产生多个随机数
  • .pyc 想到的一些问题
  • 10个最佳ES6特性 ES7与ES8的特性
  • CEF与代理
  • GraphQL学习过程应该是这样的
  • happypack两次报错的问题
  • iOS仿今日头条、壁纸应用、筛选分类、三方微博、颜色填充等源码
  • js 实现textarea输入字数提示
  • Linux中的硬链接与软链接
  • MySQL用户中的%到底包不包括localhost?
  • SegmentFault 2015 Top Rank
  • sessionStorage和localStorage
  • Twitter赢在开放,三年创造奇迹
  • 搞机器学习要哪些技能
  • 关于 Cirru Editor 存储格式
  • 解决jsp引用其他项目时出现的 cannot be resolved to a type错误
  • 前端之Sass/Scss实战笔记
  • 浅析微信支付:申请退款、退款回调接口、查询退款
  • 入手阿里云新服务器的部署NODE
  • 微信小程序设置上一页数据
  • 在electron中实现跨域请求,无需更改服务器端设置
  • Linux权限管理(week1_day5)--技术流ken
  • Mac 上flink的安装与启动
  • ​插件化DPI在商用WIFI中的价值
  • # 执行时间 统计mysql_一文说尽 MySQL 优化原理
  • #LLM入门|Prompt#3.3_存储_Memory
  • #mysql 8.0 踩坑日记
  • $con= MySQL有关填空题_2015年计算机二级考试《MySQL》提高练习题(10)
  • (39)STM32——FLASH闪存
  • (4)Elastix图像配准:3D图像
  • (C#)Windows Shell 外壳编程系列4 - 上下文菜单(iContextMenu)(二)嵌入菜单和执行命令...
  • (DFS + 剪枝)【洛谷P1731】 [NOI1999] 生日蛋糕
  • (简单有案例)前端实现主题切换、动态换肤的两种简单方式
  • (论文阅读32/100)Flowing convnets for human pose estimation in videos
  • (四)JPA - JQPL 实现增删改查
  • (四)linux文件内容查看
  • (未解决)macOS matplotlib 中文是方框
  • (转)winform之ListView
  • (自适应手机端)响应式新闻博客知识类pbootcms网站模板 自媒体运营博客网站源码下载
  • .MSSQLSERVER 导入导出 命令集--堪称经典,值得借鉴!
  • .NET Core 项目指定SDK版本