Flink基于信用值的流量控制

这篇具有很好参考价值的文章主要介绍了Flink基于信用值的流量控制。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

背景

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

实现原理

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

到了这里,关于Flink基于信用值的流量控制的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 基于 Flink 构建实时数据湖的实践

    本文整理自火山引擎云原生计算研发工程师王正和闵中元在本次 CommunityOverCode Asia 2023 数据湖专场中的《基于 Flink 构建实时数据湖的实践》主题演讲。 实时数据湖是现代数据架构的核心组成部分,随着数据湖技术的发展,用户对其也有了更高的需求:需要从多种数据源中导入

    2024年02月04日
    浏览(39)
  • 基于 Flink CDC 的现代数据栈实践

    摘要:本文整理自阿里云技术专家,Apache Flink PMC Member Committer, Flink CDC Maintainer 徐榜江和阿里云高级研发工程师,Apache Flink Contributor Flink CDC Maintainer 阮航,在 Flink Forward Asia 2022 数据集成专场的分享。本篇内容主要分为四个部分: 1.深入解读 Flink CDC 2.3 版本 2.基于 Flink CDC 构建

    2024年02月09日
    浏览(42)
  • 基于Canal与Flink实现数据实时增量同步(一)

    vi conf/application.yml server: port: 8089 spring: jackson: date-format: yyyy-MM-dd HH:mm:ss time-zone: GMT+8 spring.datasource: address: kms-1:3306 database: canal_manager username: canal password: canal driver-class-name: com.mysql.jdbc.Driver url: jdbc:mysql:// s p r i n g . d a t a s o u r c e . a d d r e s s / {spring.datasource.address}/ s p r in g . d

    2024年04月13日
    浏览(56)
  • 基于流计算 Oceanus(Flink) CDC 做好数据集成场景

    由于第一次做实时,所以踩坑比较多,见谅(测试环境用的flink),小公司没有用到hadoop组件 一、踩坑记录 1:本地代码的flink版本是flink1.15.4,生产环境是flink1.16.1,在使用侧输出流时报错,需要使用以下写法,需要使用SideOutputDataStream不能用DataStream,同时将pom下的flink版本切换为

    2024年02月11日
    浏览(36)
  • Flink的基于两阶段提交协议的事务数据汇实现

    在flink中可以通过使用事务性数据汇实现精准一次的保证,本文基于Kakfa的事务处理来看一下在Flink 内部如何实现基于两阶段提交协议的事务性数据汇. 1。首先在开始进行快照的时候也就是收到checkpoint通知的时候,在snapshot方法中会开启一个新的事务,代码如下: 2.其次在Jo

    2024年02月05日
    浏览(42)
  • 基于 Flink SQL CDC 数据处理的终极武器

    来源互联网多篇文章总结 业务系统经常会遇到需要更新数据到多个存储的需求。例如:一个订单系统刚刚开始只需要写入数据库即可完成业务使用。某天 BI 团队期望对数据库做全文索引,于是我们同时要写多一份数据到 ES 中,改造后一段时间,又有需求需要写入到 Redis 缓存

    2024年02月16日
    浏览(36)
  • 15_基于Flink将pulsar数据写入到ClickHouse

    编写Flink完成数据写入到ClickHouse操作, 后续基于CK完成指标统计操作 3.8.1.ClickHouse基本介绍 ClickHouse 是俄罗斯的Yandex于2016年开源的列式存储数据库(DBMS),使用C++语言编写,主要用于在线分析处理查询(OLAP),能够使用SQL查询实时生成分析数据报告。 结论: ClickHouse像很多OL

    2024年02月14日
    浏览(82)
  • 基于Flink CDC实时同步数据(MySQL到MySQL)

    jdk8 Flink 1.16.1(部署在远程服务器:192.168.137.99) Flink CDC 2.3.0 MySQL 8.0(安装在本地:192.168.3.31) (安装部署过程略) 准备三个数据库:flink_source、flink_sink、flink_sink_second。 将flink_source.source_test表实时同步到flink_sink和flink_sink_second的sink_test表。 (建库建表过程略) 开发过程

    2024年02月06日
    浏览(104)
  • 14_基于Flink将pulsar数据写入到HBase

    3.7.1.编写Flink完成数据写入到Hbase操作, 完成数据备份, 便于后续进行即席查询和离线分析 3.7.1.1.HBase基本介绍 hbase是基于Google发布bigTable论文产生一款软件, 是一款noSQL型数据, 不支持SQL. 不支持join的操作, 没有表关系, 不支持事务(多行事务),hbase是基于 HDFS的采用java 语言编写 查

    2024年02月13日
    浏览(35)
  • 基于 Flink & Paimon 实现 Streaming Warehouse 数据一致性管理

    摘要:本文整理自字节跳动基础架构工程师李明,在 Apache Paimon Meetup 的分享。本篇内容主要分为四个部分: 背景 方案设计 当前进展 未来规划 点击查看原文视频 演讲PPT ​ 早期的数仓生产体系主要以离线数仓为主,业务按照自己的业务需求将数仓分为不同的层次,例如 DW

    2024年02月14日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包