实时数据开发|Flink异步IO--提升性能和吞吐量

在使用Flink处理流式数据的过程中,会经常和外部系统进行数据交互。通常情况下在 Flink 中可以创建外部数据库系统的Client连接,然后通过Client连接将数据元素写入外部存储系统中或者从外部存储系统中读取数据。考虑到连接外部系统的网络等因素,这种同步查询和操作数据库的方式往往会影响整个函数的处理效率,用户如果想提升应用的处理效率,就必须考虑增加算子的并行度,这将导致大量的资源开销。

Flink在1.2版本中引人了Asynchronous IO,能够支持通过异步方式连接外部存储系统,以提升Flink系统与外部数据库交互的性能及吞吐量,但前提是数据库本身需要支持异步客户端。

异步IO可以提升性能和吞吐量,主要原因是在异步函数中可以尽可能异步并发地查询外部数据库。在异步IO中需考虑对数据库查询超时以及并发线程数控制两个因素。有两个重要参数:

  • Timeout是定义Asynchronous 请求最长等待时间,超过该时间Fink将认为查询数据超时而请求失败,避免因请求无法控时返回导致系统长时间等待的情况,对于超时的请求可以通过复写AsyncFunction中的timeout 方法来处理。
  • Capacity定义在同一时间点异步请求并发数,一旦Capacity定义的请求数被耗尽,Flink会直接触发反压机制来抑制上游数据的接人,从而保证Flink系统的正常运行。

使用异步IO方式进行数据输出,其输出结果的先后顺序有可能并不是按照之前原有数据的顺序进行排序,因此在Flink异步I0中,需要用户显式指定是否对结果排序,这也影响着结果的顺序和系统性能:

  • 乱序模式:异步查询结果输出中,原本数据元素的顺序可能会发生变化,请求且完成就会输出结果,可以使用**AsyncDataStream.unorderedWait(.)**方法应用这种模式。如果系统同时选择使用ProcessTime特征具有最低的延时和负载。
  • 顺序模式:异步查询结果将按照输人数据元素的顺序输出,原本Steam数据元素的顺序保持不变,这种情况下具有较高的时延和负载,因为结果数据需要在Operator的Buffer中进行缓存,直到所有异步请求处理完毕,将按照原来元素顺序输出结果,这也将对Checkpointing过程造成额外的延时和性能损耗。可以使用**AsyncDataStream.orderedWait(.)**方法使用这种模式。

另外在使用Event-Time时间概念处理流数据的过程中,Asynchronous IO Operator总能够正确保持Watermark的顺序,即使使用乱序模式,输出Watermark也会保持原有顺序,但对于在Watermark之间的数据元素则不保持原来的顺序,也就是说如果使用了Watermark,将会对异步I0 造成一定的时延和开销,具体取决于 Watermark的频率,频率越高时延越高同时开销越大

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

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

相关文章

Charts 教程:创建交互式图表的基础

ECharts 是一个开源的、基于 JavaScript 的数据可视化库,它可以帮助你快速创建交互式的图表。无论是简单的柱状图、折线图,还是复杂的地图和关系图,ECharts 都能够轻松应对。本文将带你了解如何在你的网页中使用 ECharts 创建图表&#xff0c…

【JAVA】Java高级:Spring框架与Java EE—Spring框架概述(控制反转、依赖注入)

Java开发中,Spring框架是一个极为重要的工具,它为开发者提供了一个全面的编程和配置模型,能够简化企业级应用程序的开发。Spring框架通过控制反转(IoC)和依赖注入(DI)等核心概念,使得…

鸿蒙面试---1208

HarmonyOS 三大技术理念 分布式架构:HarmonyOS 的分布式架构使得设备之间能够无缝协同工作。例如,它允许用户在不同的智能设备(如手机、平板、智能手表等)之间共享数据和功能。比如,用户可以在手机上开始编辑文档&…

26备战秋招day17——机器学习基础

机器学习入门指南:常见算法详解与代码实现 机器学习(Machine Learning, ML)是人工智能(AI)的一个重要分支,旨在通过数据驱动的方法让计算机系统自动学习和改进。对于刚接触机器学习的朋友来说,…

第7章:响应式设计 --[CSS零基础入门]

什么是响应式设计 响应式设计(Responsive Web Design, RWD)是一种网页设计和开发的方法,它使网站能够根据用户的设备特性(如屏幕尺寸、分辨率、方向等)自动调整其布局和内容。响应式设计的目标是确保网站在不同类型的…

探索 ONLYOFFICE 8.2 版本:更高效、更安全的云端办公新体验

引言 在当今这个快节奏的时代,信息技术的发展已经深刻改变了我们的工作方式。从传统的纸质文件到电子文档,再到如今的云端协作,每一步技术进步都代表着效率的飞跃。尤其在后疫情时代,远程办公成为常态,如何保持团队之间…

Vue-打印自定义HTML表格

自定义打印方法 1. 准备HTML结构 首先&#xff0c;构造了一个基本的HTML页面框架&#xff0c;并设置了页面的字符编码为UTF-8&#xff0c;以确保中文和其他特殊字符能正确显示。页面的标题设置为传入的 title 参数值。 let printStr "<html><head><met…

docker批量创建cloudstack虚拟主机脚本

批量创建cloudstack脚本 #!/bin/bash # 配置变量 container_prefix"cloudworker-" base_ip"192.168.1." start_ip2 #开始ip start_container2 #上同 end_container4 #结束ip 包括 network_name"my_macvlan_network" image_name"dockedahi:…

http1.0、1.1、2.0、 3.0

http1.0、1.1、2.0、 3.0 http1.1 引入长连接&#xff0c;在1.0&#xff0c;每次请求都需要建立新的TCP连接&#xff0c;处理请求完毕后立即断开。就导致处理大量图片&#xff0c;链接等资源&#xff0c;需要大量的连接与断开&#xff0c;造成资源浪费和时间延迟。而长连接允许…

跟着问题学15——GRU网络结构详解及代码实战

1 RNN的缺陷——长期依赖的问题 &#xff08;The Problem of Long-Term Dependencies&#xff09; 前面一节我们学习了RNN神经网络&#xff0c;它可以用来处理序列型的数据&#xff0c;比如一段文字&#xff0c;视频等等。RNN网络的基本单元如下图所示&#xff0c;可以将前面的…

pytest中使用conftest做测试前置和参数化

pytest中比较高阶的应用是&#xff0c;使用conftest去做测试前置工作、测试收尾工作和参数化。conftest是pytest的一个组件&#xff0c;用于配置测试环境和参数。通过conftest, 可以创建一个可复用的测试配置文件&#xff0c;以便在多个测试模块之间共享配置信息。即&#xff0…

04 创建一个属于爬虫的主虚拟环境

文章目录 回顾conda常用指令创建一个爬虫虚拟主环境Win R 调出终端查看当前conda的虚拟环境创建 spider_base 的虚拟环境安装完成查看环境是否存在 为 pycharm 配置创建的爬虫主虚拟环境选一个盘符来存储之后学习所写的爬虫文件用 pycharm 打开创建的文件夹pycharm 配置解释器…

mvn test 失败,单独运行单元测试成功

标题mvn test 失败&#xff0c;单独运行单元测试成功 使用junit4进行单元测试时是通过的&#xff0c;但是在执行maven的test与package时测试不通过 报错信息&#xff1a; parse data from Nacos error,dataId:guoyu-new-asset-dev.yml,data: ....... 配置文件内容 ....... o…

基于gitlab API刷新MR的commit的指定status

场景介绍 自己部署的gitlab Jenkins,并已经设置好联动(如何设置可以在网上很容易搜到)每个MergeRequest都可以触发多个Jenkins pipeline&#xff0c;pipeline结束后会将状态更新到gitlab这个MR上希望可以跳过pipeline运行&#xff0c;直接将指定的MR的指定pipeline状态刷新为…

android 富文本及展示更多组件

模拟微博 #热贴 和 用户 的这种 富文本形式组件&#xff0c;不说了&#xff0c; 直接上代码 package com.tongtong.feat_watch.viewimport android.content.Context import android.graphics.Color import android.util.AttributeSet import android.view.LayoutInflater impo…

YourPHPCMS checkEmail SQL注入漏洞复现

0x01 产品简介 Yourphp企业网站管理系统是一款完全开源免费的PHP+MYSQL系统。核心采用了ThinkPHP框架,同时也作为开源软件发布。 集众多开源项目于一身的特点,使本系统从安全,效率,易用及可扩展性上更加突出。程序内置

gitlab 生成并设置 ssh key

一、介绍 &#x1f3af; 本文主要介绍 SSH Key 的生成方法&#xff0c;以及如何在GitLab上添加SSH Key。GitLab 使用SSH协议与Git 进行安全通信。当您使用 SSH密钥 对 GitLab远程服务器进行身份验证时&#xff0c;您不需要每次都提供您的用户名和密码。SSH使用两个密钥&#x…

保姆级教程Docker部署Nacos镜像

目录 1、创建挂载目录 2、拉取 Nacos 镜像 3、临时启动并复制文件 4、创建Nacos表结构 5、修改Nacos配置 6、正式启动 Nacos 7、登录Nacos 1、创建挂载目录 在宿主机上创建一个目录用于配置文件映射&#xff0c;这个目录将作为数据卷挂载到容器内部&#xff0c;使得我…

Python+onlyoffice 实现在线word编辑

onlyoffice部署 version: "3" services:onlyoffice:image: onlyoffice/documentserver:7.5.1container_name: onlyofficerestart: alwaysenvironment:- JWT_ENABLEDfalse#- USE_UNAUTHORIZED_STORAGEtrue#- ONLYOFFICE_HTTPS_HSTS_ENABLEDfalseports:- "8080:8…

【北京迅为】iTOP-4412全能版使用手册-第六十七章 USB鼠标驱动详解

iTOP-4412全能版采用四核Cortex-A9&#xff0c;主频为1.4GHz-1.6GHz&#xff0c;配备S5M8767 电源管理&#xff0c;集成USB HUB,选用高品质板对板连接器稳定可靠&#xff0c;大厂生产&#xff0c;做工精良。接口一应俱全&#xff0c;开发更简单,搭载全网通4G、支持WIFI、蓝牙、…