Flink基于信用值的流量控制

news2024/10/7 14:29:59

背景

flink内部实现了一个类似于tcp滑动窗口概念的流量控制功能,以满足其内部的流量控制功能,本文就来讲解下flink实现的基于信用值的流量控制的原理

实现原理

首先,我们先来看一下在flink中是如何实现数据传输的,在这里插入图片描述
从上图可知,发送端的taskmanager会为每个下游的算子的任务都创建一个发送缓冲区,并且下游算子的每个任务所在的taskManager也会为每个发送端创建一个接受缓冲区,这样数据传输时首先会先放着发送缓冲区中然后才发送到下游算子任务的接收缓冲区中的.
那问题就来了,当下游算子任务的处理速度跟不上的时候怎么办呢?Flink采取的方法是下游算子接收端会为每个上游的算子任务计算一个信用值,说白了就是一个可以发送的字节的数量,上游算子任务也就是发送方会尽快发送信用值许可的数据量,并且会把积压量(已经在发送缓冲区中准备好但是由于没有信用值导致没法发送)的数据大小告诉下游接收端任务,下游接收端任务接收发送端发来的数据后,还会根据每个发送端算子任务的堆积量计算下一轮发送端算子任务的信用值
可以看出,发送端算子任务的信用值是接收方根据各个发送方的数据积压的量计算出来的,所以当上游发送方任务有数据倾斜的问题时,下游接收方会给与数据倾斜严重的对应发送方任务更多的信用值,这样就可以缓解数据倾斜的问题了.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/743770.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

css animation 鼠标移入暂停会抖动

如图 实现一个赞助商横向滚动列表墙, 上下两排向右滚动,中间向左滚动,鼠标移入暂停当前行。 实现: // 使用animation.moving {animation: move 20s linear infinite; }keyframes move {0% {}100% {transform: translateX(-50%);…

可靠的手机问题修复工具分享 - 修复各种 Android 系统问题

一般来说,安卓手机都可以流畅运行。但不幸的是,有时您的Android手机可能无法正常运行,例如无响应、突然重启等。在这种情况下,您将需要Android手机维修软件。这些 Android 修复工具可以帮助您轻松解决此类问题,并还给您…

QEMU源码全解析4 —— QEMU参数解析(4)

接前一篇文章:QEMU源码全解析3 —— QEMU参数解析(3) 本文内容参考: 《趣谈Linux操作系统》 —— 刘超,极客时间 《QEMU/KVM》源码解析与应用 —— 李强,机械工业出版社 特此致谢! 本回讲解Q…

JavaWeb学生考勤签到请假系统

一、项目简介 本项目是一套JavaWeb学生考勤签到请假系统,主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的Java学习者。 包含:项目源码、数据库脚本等,该项目附带全部源码可作为毕设使用。 项目都经过严格调试,ecl…

生成图片验证码-Google Kaptcha

CaptchaImage生成 验证码 图片 captchaProducerMath.createText() 类似 captchaProducer.createText() 混合带字符的char如下 从若依学的,先看他的引用方式 package com.ruoyi.web.controller.common;import java.awt.image.BufferedImage; import java.io.IOExcept…

【导航算路(RP)模块功能】

什么是RP Route Production/Route Planning 就是在给定自车位置和目的地的情况下,按照用户设定的不同条件,计算出一条或多条从自车位置到目的地的花费(根据用户的设定,可能是指时间,费用等)最少的最优路以供用户使用。 为什么要…

【新版系统架构】第十七章-通信系统架构设计理论与实践

软考-系统架构设计师知识点提炼-系统架构设计师教程(第2版) 第一章-绪论第二章-计算机系统基础知识(一)第二章-计算机系统基础知识(二)第三章-信息系统基础知识第四章-信息安全技术基础知识第五章-软件工程…

ColddBoxEasy_EN靶机详解

ColddBoxEasy_EN靶机详解 上来扫描ip,找到ip后对这个ip进行一个单独的扫描。发现ssh开到4512端口上了,这里其实没用上,给我们挖的坑。 打开网页左下角有个login登陆,是一个wordpress搭建的网站,扫描一下用户名&#x…

U盘文件恢复,简单4步快速恢复文件!

U盘中删除的文件还能恢复吗?从理论上来看,u盘删除的文件其实还没有永久的被删除,但是这取决于多种因素。如果我们及时在新数据写入前对u盘中的数据进行恢复,那么恢复的可能性还是比较大的。 那么可能有朋友会好奇:u盘文…

开源LLM大模型微调简明教程

我相信你们大多数人都听说过 ChatGPT 并尝试过它来回答你的问题! 有没有想过幕后发生了什么? 它由 Open AI 开发的大型语言模型 GPT-3 提供支持。 这些大型语言模型(通常称为LLM)开启了自然语言处理的许多可能性。 推荐&#xff1…

datagrip 更改表名报错

我就想改个表名报错 报错提示 Error Refactoring cannot be performed File D:\datagrip\lib\platform-impl.jar!\standardSchemas\xhtml1-frameset.xsd is located in a read-only container. 后面还有一大堆的错误,当时没有截图 试探: 注:再次之前我已经用use选择…

VMWare在Ubuntu系统下无法启动问题

项目场景: 在Ubuntu系统安装了VMWare虚拟机,已开始还能打开VMWare,能进入正常VM界面。最近怎么进入不了VM主界面。启动虚拟机发现报错:Unable to install all modules. See ****; 问题描述 1、启动VMware:提示内核需…

c++中的时间处理(1)localtime、localtime_r和localtime_s

c中对时间的处理有好几个函数,很多C程序员可能用过,但不一定完全搞得清楚。这里,我先讲解下:localtime、localtime_r和localtime_s的使用 1、localtime localtime用来获取系统时间,精度为秒。 struct tm *localtime…

路径规划算法:基于鹰栖息优化的路径规划算法- 附代码

路径规划算法:基于鹰栖息优化的路径规划算法- 附代码 文章目录 路径规划算法:基于鹰栖息优化的路径规划算法- 附代码1.算法原理1.1 环境设定1.2 约束条件1.3 适应度函数 2.算法结果3.MATLAB代码4.参考文献 摘要:本文主要介绍利用智能优化算法…

动态规划16题

目录 91. 解码方法 1646. 获取生成数组中的最大值 1043. 分隔数组以得到最大和 139. 单词拆分 1277. 统计全为 1 的正方形子矩阵 剑指 Offer II 091. 粉刷房子 剑指 Offer 42. 连续子数组的最大和 300. 最长递增子序列 方案一 方案二 贪心,二分 1027. …

CSS-Grid网格布局笔记

文章目录 父元素属性 基本使用:display 、grid-template-rows、grid-template-columns 合并单元格:grid-template-areas 间距:gap 网格对齐 - item对齐 网格对齐 - 内容对齐 显示单元格与隐式单元格 - 自适应布局 子元素属性 修改子元素起始与…

Visual Studio 2019 + Git 提交命令释解:全部提交、全部提交并推送、全部提交并同步

Visual Studio 2019 Git 提交命令释解:全部提交、全部提交并推送、全部提交并同步。 一、操作命令理解: A、全部提交:即把本地工作区的修改(包括添加、删除)提交到本地仓库。 B、全部提交并推送:即把本地…

java: 程序包sun.misc不存在

报错java: 程序包sun.misc不存在 解决办法:降JDK版本 切个1.8即可

IMX6ULL-Linux6.3.5版本网卡调试深入讲解

目录 一、先来了解一下imx6ull的网络节点的如何定义的 二、使用默认网卡配置 三、查找eth1对应FEC1复位失败原因 1.修改smsc_phy_reset函数 2.ENET1和ENET2的TX_CLK引脚复位寄存器的SION位为1 3.读取phy寄存器 4.使用正点原子给的内核和设备树文件 5.使用linux-5.19版本…

python量化实用版教程 初级

目录 前言 第一部分 了解python Python特点 Python简单代码示例 方式一 方式二 Python三方库的安装以pandas为例 操作步骤 以numpy为例认识三方库及其使用 import导入三方库 关于NumPy 了解Numpy 数组 了解NumPy 统计函数 python引入其他py文件或模块 引用其他py文件的方式 …