Flink正常消费一段时间后,大量反压,看着像卡住了,但又没有报错。
文章目录
- 前言
- 一、原因分析
- 二、解决方案
前言
前面我也有提到,发现flink运行一段时间后,不再继续消费的问题。这个问题困扰了我非常久,一开始也很迷茫。又因为比较忙,所以一直没有时间能够去寻找答案,只是通过每天重启的方式去解决。经过分析,其实这个问题也很容易找到根源,有兴趣就和我一起看下叭
一、原因分析
首先介绍一下这个程序大概流程,比较简单。

一个输入源,经过一个算子,最后开了三个窗口。并行度都写在括号里了。
下面这是一张taskmanager的cpu使用率,可以看出,到最后要停掉前也没有出现cpu高飘的情况,并且心跳依然存在,程序还是在继续运行的。

我们从flink运行图上面可以看到,反压很严重

矛盾就出现了,明明压力很大,为何cpu使用率却几乎为0
于是我点开压力最大的哪个window,查看subtask的情况,找到对应busy为100的subtask

可以看到,这个subtask所处理的数据太多了。一开始我也网上很多网友一样认为是key分配失衡的问题,但是我修改完代码,发现反而失衡更严重了,所以我认为不是失衡的问题。而是其中的某个key确实太多了,且数据上显示,也确实是有一个key量非常大。所以不管用什么方式,这个key必然经过hash之后还是一样的,也会走到同一个subtask中去。这个无法避免。
二、解决方案
因此我想到的是,采用丢失精度的做法。原本我是开了一天的窗口,滑动间隔时一小时。
那么既然处理不来,方案就是
如果这个key不需要的话,通过白名单过滤
加大滑动间隔的做法
使用滚动窗口代替滑动窗口的做法,这种案例在网上可以找到很多,只是说选择一种合适的办法去处理,找到办法之后,代码那都是简单的事了。
相关文章:
Flink正常消费一段时间后,大量反压,看着像卡住了,但又没有报错。
文章目录 前言一、原因分析二、解决方案 前言 前面我也有提到,发现flink运行一段时间后,不再继续消费的问题。这个问题困扰了我非常久,一开始也很迷茫。又因为比较忙,所以一直没有时间能够去寻找答案,只是通过每天重启…...
软件测试需求分析的常用方法
软件测试需求分析时,应要求产品人员对需求进行讲解,并使用相对应的方法进行科学分析,否则无法保障软件测试的完整性和科学性,从而造成在项目中后期Bug频出、风险增大等问题。 而常用的测试需求分析的方法: 1、功能分解…...
数据结构10 -查找_树表查找
创建二叉搜索树 二叉搜索树 二叉搜索树是有数值的了,二叉搜索树是一个有序树。 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值; 它…...
第126天:内网安全-隧道技术SSHDNSICMPSMB上线通讯LinuxMac
知识点 #知识点: 1、入站规则不出网上线方案 2、出站规则不出网上线方案 3、隧道技术-SMB&ICMP&DNS&SSH 4、控制上线-Linux&Mac&IOS&Android-连接方向:正向&反向(基础课程有讲过) -内网穿透…...
开发一个饲料商城小程序需要多少钱
随着宠物行业的蓬勃发展,饲料商城小程序作为一个重要的销售渠道,吸引了越来越多的投资者。那么,开发一套饲料商城小程序需要多少钱呢?本文将为您详细解答。 首先,开发一套饲料商城小程序的价格受到多个因素的影响&…...
Emacs之set-face-attribute与font-lock-add-keywords用法区别(一百二十八)
简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 人生格言: 人生…...
JavaScript高阶函数和闭包
在JavaScript编程中,高阶函数和闭包是两个重要而又常见的概念。它们是函数式编程的重要组成部分,可以让我们的代码更加灵活、简洁和高效。本文将详细解释高阶函数和闭包的概念、用法以及它们在JavaScript中的重要性。 高阶函数 1. 什么是高阶函数&…...
私有化部署企业IM即时通讯:提升效率、防止泄密、高效协同办公
随着科技的飞速发展和智能手机的普及,即时通讯(IM)应用在我们的生活和工作中变得越来越重要。在企业中,IM已成为员工之间交流沟通的主要方式之一。然而,对于大多数企业来说,选择私有化部署企业IM即时通讯软…...
react ant icon的简单使用
refer: 快速上手 - Ant Design 1.引入ant npm install antd --save 2.在页面引用: import { StarOutlined } from ant-design/icons; 如果想要引入多个icon,可以这样书写: import { UserOutlined, MailOutlined, PieChartOutlined } fr…...
用Rust实现23种设计模式之原型模式
在 Rust 中,原型模式可以通过实现 Clone trait 来实现。原型模式是一种创建型设计模式,它允许通过复制现有对象来创建新对象,而无需显式地使用构造函数。下面是一个使用 Rust 实现原型模式的示例,带有详细的代码注释和说明&#x…...
visual studio 2022 编译时出现MSB3721问题
cuda1C:\code\SSR\Impl\Dev\gE\cO\G.Common.XrayRegistration_nc>“C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.7\bin\nvcc.exe” -gencodearchcompute_86,code“sm_86,compute_86” --use-local-env -ccbin “C:\Program Files\Microsoft Visual Studio\2022…...
Android 获取网络连接状态新方法
一. 问题背景 Android12上,有的app模块判断当前网络的类型和连接状态时,还是使用的旧的API,导致返回的结果不准确,影响代码逻辑判断,本篇文章就这一问题,整理一下判断网络类型和连接状态的新方法。 二. 原因…...
可缝合神经网络
文章目录 Stitchable Neural Networks摘要本文方法实验结果 Stitchable Neural Networks 摘要 包含大量强大的预训练模型族(如ResNet/DeiT)的model zoo已经达到了前所未有的范围,这对深度学习的成功有重要贡献。由于每个模型族都由具有不同尺度的预训练模型(例如&…...
Android优化篇|网络预连接
作者:苍耳叔叔 一个示例 前后分别去请求同一个域名下的接口,通过 Charles 抓包,可以看到 Timing 下面的时间: 第二次请求时,DNS、Connect 和 TLS Handshake 部分都是 -,说明没有这部分的耗时,…...
pyspark使用XGboost训练模型实例
遇到一个还不错的使用Xgboost训练模型的githubhttps://github.com/MachineLP/Spark-/tree/master/pyspark-xgboost 1、这是一个跑通的代码实例,使用的是泰坦尼克生还数据,分类模型。 这里使用了Pipeline来封装特征处理和模型训练步骤,保存为…...
完整模型的训练套路
从心所欲 不逾矩 天大地大 皆可去 一、官方模型的初使用 使用VGG16模型 VGG模型使用代码示例: import torchvision.models from torch import nndataset torchvision.datasets.CIFAR10(/cifar10, False, transformtorchvision.transforms.ToTensor())vgg16_true …...
PtahDAO:全球首个DAO治理资产信托计划的金融平台
金融科技是当今世界最具创新力和影响力的领域之一,区块链技术作为金融科技的核心驱动力,正在颠覆传统的金融模式,为全球用户提供更加普惠、便捷、安全的金融服务。在这个变革的浪潮中,PtahDAO(普塔道)作为全…...
从零搭建一个react + electron项目
最近打算搭建一个react electron的项目,发现并不是那么傻瓜式 于是记录一下自己的实践步骤 通过create-react-app 创建react项目 npx create-react-app my-app 安装electron依赖 npm i electron -D暴露react项目的配置文件(这一步看自己需求,…...
MATLAB /Simulink 快速开发STM32(使用st官方工具 STM32-MAT/TARGET),以及开发过程
配置好环境以后就是开发: stm32cube配置芯片,打开matlab添加ioc文件,写处理逻辑,生成代码,下载到板子中去。 配置需要注意事项: STM32CUBEMAX6.5.0 MABLAB2022BkeilV5.2 Matlab生成的代码CTRLB 其中关键的…...
LeetCode 热题 100 JavaScript--102. 二叉树的层序遍历
给你二叉树的根节点 root ,返回其节点值的 层序遍历 。 (即逐层地,从左到右访问所有节点)。 输入:root [3,9,20,null,null,15,7] 输出:[[3],[9,20],[15,7]] 示例 2: 输入:root [1…...
【第二十一章 SDIO接口(SDIO)】
第二十一章 SDIO接口 目录 第二十一章 SDIO接口(SDIO) 1 SDIO 主要功能 2 SDIO 总线拓扑 3 SDIO 功能描述 3.1 SDIO 适配器 3.2 SDIOAHB 接口 4 卡功能描述 4.1 卡识别模式 4.2 卡复位 4.3 操作电压范围确认 4.4 卡识别过程 4.5 写数据块 4.6 读数据块 4.7 数据流…...
微信小程序 - 手机震动
一、界面 <button type"primary" bindtap"shortVibrate">短震动</button> <button type"primary" bindtap"longVibrate">长震动</button> 二、js逻辑代码 注:文档 https://developers.weixin.qq…...
Java多线程实现之Callable接口深度解析
Java多线程实现之Callable接口深度解析 一、Callable接口概述1.1 接口定义1.2 与Runnable接口的对比1.3 Future接口与FutureTask类 二、Callable接口的基本使用方法2.1 传统方式实现Callable接口2.2 使用Lambda表达式简化Callable实现2.3 使用FutureTask类执行Callable任务 三、…...
CVE-2020-17519源码分析与漏洞复现(Flink 任意文件读取)
漏洞概览 漏洞名称:Apache Flink REST API 任意文件读取漏洞CVE编号:CVE-2020-17519CVSS评分:7.5影响版本:Apache Flink 1.11.0、1.11.1、1.11.2修复版本:≥ 1.11.3 或 ≥ 1.12.0漏洞类型:路径遍历&#x…...
Chromium 136 编译指南 Windows篇:depot_tools 配置与源码获取(二)
引言 工欲善其事,必先利其器。在完成了 Visual Studio 2022 和 Windows SDK 的安装后,我们即将接触到 Chromium 开发生态中最核心的工具——depot_tools。这个由 Google 精心打造的工具集,就像是连接开发者与 Chromium 庞大代码库的智能桥梁…...
手机平板能效生态设计指令EU 2023/1670标准解读
手机平板能效生态设计指令EU 2023/1670标准解读 以下是针对欧盟《手机和平板电脑生态设计法规》(EU) 2023/1670 的核心解读,综合法规核心要求、最新修正及企业合规要点: 一、法规背景与目标 生效与强制时间 发布于2023年8月31日(OJ公报&…...
Java求职者面试指南:Spring、Spring Boot、Spring MVC与MyBatis技术解析
Java求职者面试指南:Spring、Spring Boot、Spring MVC与MyBatis技术解析 一、第一轮基础概念问题 1. Spring框架的核心容器是什么?它的作用是什么? Spring框架的核心容器是IoC(控制反转)容器。它的主要作用是管理对…...
Visual Studio Code 扩展
Visual Studio Code 扩展 change-case 大小写转换EmmyLua for VSCode 调试插件Bookmarks 书签 change-case 大小写转换 https://marketplace.visualstudio.com/items?itemNamewmaurer.change-case 选中单词后,命令 changeCase.commands 可预览转换效果 EmmyLua…...
面试高频问题
文章目录 🚀 消息队列核心技术揭秘:从入门到秒杀面试官1️⃣ Kafka为何能"吞云吐雾"?性能背后的秘密1.1 顺序写入与零拷贝:性能的双引擎1.2 分区并行:数据的"八车道高速公路"1.3 页缓存与批量处理…...
算术操作符与类型转换:从基础到精通
目录 前言:从基础到实践——探索运算符与类型转换的奥秘 算术操作符超级详解 算术操作符:、-、*、/、% 赋值操作符:和复合赋值 单⽬操作符:、--、、- 前言:从基础到实践——探索运算符与类型转换的奥秘 在先前的文…...
