flink常用的几种调优手段的优缺点

这篇具有很好参考价值的文章主要介绍了flink常用的几种调优手段的优缺点。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

背景:

不管是基于减少反压还是基于减少端到端的延迟的目的,我们有时候都需要对flink进行调优,本文就整理下几种常见的调优手段以及他们的优缺点

flink调优手段

1.使用事件时间EventTime模式时,可以设置水位线发送的时间间隔,比如从200毫秒缩小到100毫秒,缩短两倍
正作用:减少事件端到端处理延迟
反作用:对于下游的算子来说,由于其会接收多个上游算子任务的水位记录,所以他们接收到的水印的速度可能远远小于100ms,处理更多的水位线记录会对系统性能造成影响,需要谨慎评估

2.使用setBufferTimeout命令减少网络发送缓冲区的超时时长,这个超时时间表示当上游任务发送网络数据到下游任务时,缓冲区满或者达到超时时间就会发送出去,比如网络缓冲超时时间从100ms变成50ms

正作用:减少端到端的处理延迟
反作用:由于网络缓冲区有可能没有满就被发送到下游算子,导致吞吐量下降

3.使用hashmap状态后端代替rockdb状态后端,基于hashmap的状态后端每次访问状态时都是通过内存直接访问的,速度很快,而访问rockdb的状态后端时,需要经历序列化和反序列化以及可能的磁盘IO,速度很慢

正作用:状态访问速度变快,减少端到端的延迟
反作用:状态很大时不支持,此外,状态放在内存中会导致更频繁的gc,导致消息的处理时延有尖峰波动

4.使用聚合窗口函数而不是全量窗口函数,通过timer触发的方法ontimer尽量减少耗时,此外如果非要使用长时间的全量窗口,那么尽可能的在全量窗口的前面加上预聚合的窗口算子,目的是尽量把长的时间窗口分解成一个个小的时间窗口

正作用: 提高吞吐量和数据处理时延
副作用: 可能会提高代码的复杂度

5.使用异步函数代替同步函数

正作用:提供吞吐量和减少消息处理延迟
反作用: 无

6.对事件流的事件进行字段补充时,每次查找配置表会导致性能很低,可以把配置表转换成配置流,事件流和配置流进行连接,然后在状态中维护配置表即可(可以是广播状态也可以是键值分区状态,ps:由于流连接时,两个流的事件顺序不定,为了保证都能找到配置值,可以在open函数中初始化一个配置表的实例变量)

正作用:减少端到端的时延,并且使用flink的状态来存放配置信息,提高了吞吐量
反作用: 无文章来源地址https://www.toymoban.com/news/detail-737451.html

到了这里,关于flink常用的几种调优手段的优缺点的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 常用Python自动化测试框架有哪些?优缺点对比

    随着技术的进步和自动化技术的出现,市面上出现了一些自动化测试框架。只需要进行一些适用性和效率参数的调整,这些自动化测试框架就能够开箱即用,大大节省了测试时间。而且由于这些框架被广泛使用,他们具有很好的健壮性,并且具有广泛多样的用例集和技术来轻

    2024年02月03日
    浏览(48)
  • js常用判断数据类型方法以及优缺点 以及 instanceof 原理实现

    使用typeof操作符可以 判断一个值的数据类型 。它返回一个表示数据类型的字符串。 优点:typeof 操作符是一种简单、快速的方式来 判断基本数据类型 。它返回的结果是一个字符串,可以直接用于条件判断。 缺点: 对于引用类型(除了函数)的判断结果都是\\\'object\\\' ,无法细

    2024年02月12日
    浏览(43)
  • K8s 持久化存储有几种方式?一文了解本地盘/CSI 外接存储/K8s 原生存储的优缺点

    当今云原生环境中,Kubernetes(K8s)已成为既定的容器编排工具。随着 K8s 的普及,存储也成为 K8s 用户关注的一个重要问题:为了满足不同的场景需求,K8s 可以支持基于不同架构的多种存储方案。这些方案间有什么区别?用户应如何选择? 本文将从架构角度出发,详细介绍本

    2024年02月10日
    浏览(43)
  • 从聚类(Clustering)到异常检测(Anomaly Detection):常用无监督学习方法的优缺点

    无监督学习是机器学习的一种重要方法,与有监督学习不同,它使用未标记的数据进行训练和模式发现。无监督学习在数据分析中扮演着重要的角色,能够从数据中发现隐藏的模式、结构和关联关系,为问题解决和决策提供有益的信息。相比于有监督学习需要标记样本的限制

    2024年02月11日
    浏览(48)
  • flink的几种常见的执行模式

    在运行flink时,我们经常会有几种不同的执行模式,比如在IDE中启动时,通过提交到YARN上,还有通过Kebernates启动时,本文就来记录一下这几种模式 flink嵌入式模式: 这是一种我们在IDE开发和调试flink应用时最常使用的模式,他会在一个JVM进程中以线程的方式开启所有flink的各

    2024年02月09日
    浏览(32)
  • shell 简单且常用的几种

    目录 一、配置环境的shell脚本  二、系统资源脚本 一、要求 二、脚本内容 三、脚本解析 四、赋权并验证 三、查看当前内存的总大小、实际使用大小、剩余大小、显示使用率百分比的脚本 一、第一种方法 二、验证 三、第二种方法 四、验证 四、查看网卡实时流量脚本 一、

    2024年02月12日
    浏览(46)
  • JS常用的几种事件

    JavaScript常用的几种事件有: 点击事件 :当用户点击某个元素时触发,常用于按钮、链接等交互元素。事件名称为\\\"click\\\"。 鼠标移动事件 :当用户将鼠标指针移动到某个元素上时触发,事件名称为\\\"mouseover\\\"。 鼠标离开事件 :当用户将鼠标指针从某个元素上移开时触发,事件名

    2024年01月22日
    浏览(37)
  • 前端大屏常用的几种适配方案

    方 案 实现方式 优点 缺点 vm vh 1.按照设计稿的尺寸,将px按比例计算转为vw和vh 1.可以动态计算图表的宽高,字体等,灵活性较高 2.当屏幕比例跟 ui 稿不一致时,不会出现两边留白情况 1.每个图表都需要单独做字体、间距、位移的适配,比较麻烦 scale 1.通过 scale 属性,根据屏

    2024年02月02日
    浏览(46)
  • js常用的几种排序方式

    在JavaScript中,有多种排序方式可供选择。以下是几种常见的排序方式以及对应的示例: 冒泡排序(Bubble Sort): 冒泡排序是一种比较简单的排序算法,它重复地比较相邻的两个元素并交换位置,直到整个数组排序完成。 插入排序(Insertion Sort): 插入排序的思想是将数组分

    2024年02月14日
    浏览(41)
  • Java常用的几种JSON解析工具

    一、Gson:Google开源的JSON解析库 1.添加依赖 示例代码如下: 二、fastjson:阿里巴巴开源的JSON解析库 1.添加依赖 JSON.toJSONString(obj):用于序列化对象,转成json数据。 JSON.parseObject(obj,class): 用于反序列化对象,转成数据对象。 JSON.parseArray():把 JSON 字符串转成集合 示例代码如下: 2.使

    2024年02月09日
    浏览(56)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包