文章目录

      • 1.流式处理flink介绍
      • 2.Flink SQL介绍
      • 3. Flink Runtime
      • 4.使用flink集成kafka
      • 5.使用Flink SQL进行有状态流处理
      • 6.Event time & Watermarks
      • 7. flink Checkpoints & recovery

1.流式处理flink介绍

实时服务依赖流式处理:
在这里插入图片描述
flink优点:

  • 高性能
  • 丰富的特性:
    在这里插入图片描述
    构建flink的4个基础:
    在这里插入图片描述
    Streaming:
    在这里插入图片描述
  • 流是有序的事件
  • 业务数据总是一个流:有界流 或无界流
  • 对于flink,批处理仅是一个特殊的场景,在流运行时
    在这里插入图片描述
    The job Graph(Topology):
    • 运行中的flink 应用称作job
    • 运行中的flink应用(job)以及通过数据管道处理称作JobGraph(工作图)
    • Job Graph是一个有向图(DAG),数据流从source流向sink,被operator处理
      在这里插入图片描述

Stream processing:

  • Parallel:是由于分隔事件流成并行sub-stream,各自可以独立处理
    在这里插入图片描述

  • Forward:重定向一个事件流,优化上下游衔接非常有效

  • Repartition(分隔)
    在这里插入图片描述

  • Rebalance: rebalance非常昂贵,就像网络抖动一样,需要序列化每个事件,并且使用网络
    在这里插入图片描述

  • broadcasting :广播数据到分布式系统集群

Stream processing with SQL:
在这里插入图片描述

2.Flink SQL介绍

在这里插入图片描述
在这里插入图片描述
例子:
在这里插入图片描述
在这里插入图片描述
Flink SQL的特点:
在这里插入图片描述
在这里插入图片描述
append-only 、insert-only

Flink SQL 模式:
1. Streaming and Batch
在这里插入图片描述
2. Streaming only模式
在这里插入图片描述
3.Batch only 模式:

在这里插入图片描述

通过docker运行flink SQL CLI

  • 安装dockerdesktop

  • 执行 docker compose version

  • 克隆 flink练习代码仓:https://github.com/confluentinc/learn-apache-flink-101-exercises.git

  • 进入本地clone项目的根目录,执行构建docker compose命令:
    在这里插入图片描述

  • 运行sql-client
    docker compose run sql-client

  • 但sql-client启动成功,可以看到flink SQL CLi提示

    Flink SQL>
    
  • 然后可以进行 Flink SQL的一些操作

3. Flink Runtime

运行时架构(runtime Architecture)
在这里插入图片描述
Flink streaming VS Batch

StreamingBatch
Bounded or unbounded streamsonly bounded streams
Entrie pipeline must always be runningExecution proceeds in stages,running as needed
Input must be processed as it arrivesInput may be pre-sorted by time and key
Results are reported as they become readyResults are repored at the end of the job
Failure recovery resumes from a recent snapshotFailure recovery does a reset and full restart
Flink guarantees effectively exactly-once result ,despite out-of-order data and restarts due to failures.Effectively exactly-once gurantees are more straightforward

flink task有三种状态:

  1. idle
  2. busy
  3. backpressured:the task is unable to send output downstream because the downstream task is busy

总结

streaming 提供了立刻响应的场景,如下:

  • 监控告警
  • 欺诈检测(fraud detection)

Batch processing 更好,因为它效率更高效

4.使用flink集成kafka

kafka主要组件
在这里插入图片描述
kafka架构
在这里插入图片描述
在这里插入图片描述

kafka事件结构:
在这里插入图片描述
flink table 与topic的映射关系
在这里插入图片描述
映射kafka topics成flink table

flink format
在这里插入图片描述
flink需要知道协作的kafka topic的数据格式是什么

在这里插入图片描述

在这里插入图片描述
Flink可以作为kafka,实时应用、流水线的计算层

5.使用Flink SQL进行有状态流处理

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

6.Event time & Watermarks

Time
在这里插入图片描述
out-of-order event time
在这里插入图片描述
watermarks
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
kafka source operator 从kafka partition 读取
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
waermarkark就是分区的最小值,如:1:05
在这里插入图片描述
一旦watermark被生成,source会发送它到下游

在这里插入图片描述
在这里插入图片描述
flink job不产生结果的原因分析以及解决方法:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
水印的使用(watermark):
在这里插入图片描述

7. flink Checkpoints & recovery

1.checkpoint

  • checkpoint就是flink自动产生的快照,主要用于失败恢复
  • savepoint是一种手动创建的快照,主要为了运维的目的,如:有状态的升级->升级flink到最新的版本

flink使用Chandy-Lamport 分布式快照算法解决以下问题

  • flink生成不是期望的结果
  • flink生成重复
    在这里插入图片描述
    在这里插入图片描述
    2.故障恢复(recovery)
    在这里插入图片描述
    在这里插入图片描述
    水印衡量着无序流中事件时间的进度

在这里插入图片描述

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

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

相关文章

Day119 持续集成docker+jenkins

Day119 dockerjenkins 1.Dockerfile Dockerfile 可以用于项目部署。通过编写 Dockerfile,可以将整个项目及其所需的依赖项打包到一个 Docker 镜像中,然后在任何支持 Docker 的环境中部署和运行该镜像 Dockerfile 是用于构建 Docker 镜像的文本文件。它包…

Vue3+Vite MPA多页面应用开发完整指南 – 从零搭建到部署优化

什么是 MPA 多页面应用 MPA(Multi-Page Application)是由多个独立的 HTML 页面组成的应用,每个页面都有独立的入口文件。与 SPA 不同,MPA 的每个页面都是独立的,页面间通过链接跳转,适合大型项目或需要 SE…

【企业级架构】企业战略到技术落地的全流程【第一篇】

目录 一、人生蓝图与企业罗盘:战略视角下的成长架构 1. 大学毕业迷茫期 → 企业未制定战略前:无方向、无目标​ 2. 制定职业规划 → 企业战略制定:明确 “去哪” 和 “分几步走”​ 3. 盘点自身能力差距 → 业务架构梳理:搞清…

(二) Python + 地球信息科学与技术 = 经典案例分析

目录 四、农业精准施肥与产量预测(植被指数 机器学习) 五、公共场所踩踏事故预警系统(时空大数据 Web 开发) 六、森林火灾智能识别与救援路径规划(遥感 路径优化) 七、海岸线侵蚀动态监测与防护&…

从需求到部署全套方案:餐饮服务许可证数据可视化分析系统的大数据技术实战

🎓 作者:计算机毕设小月哥 | 软件开发专家 🖥️ 简介:8年计算机软件程序开发经验。精通Java、Python、微信小程序、安卓、大数据、PHP、.NET|C#、Golang等技术栈。 🛠️ 专业服务 🛠️ 需求定制化开发源码提…

Qt 关于QString和std::string数据截断的问题- 遇到\0或者0x00如何处理?

Qt 关于QString和std::string数据截断的问题- 遇到\0或者0x00如何处理?引言一、解决方案二、使用QByteArray注意事项引言 在Qt开发中,使用QString或std::string获取、发送字符串时,遇到\0(空字符)或者0x00(十六进制表示)可能导致数据截断&am…

Spring Cloud LoadBalancer 最佳实践

Ribbon 曾经是 Spring Cloud 家族默认的客户端负载均衡工具,而 Spring Cloud LoadBalancer (SCLB) 是官方替换 Ribbon 的新实现。表面上它们都解决 “服务调用时选哪个实例” 的问题,但在理念、架构和生态上差异不小。一、Ribbon vs SCLB1. 定位和生态…

【STM32】SPI 与 Flash 笔记

1️⃣ SPI(Serial Peripheral Interface,串行外设接口)英文解释: Serial:串行Peripheral:外设Interface:接口用途:MCU 与外部设备(Flash、传感器等)高速数据通…

抽象工厂设计模式 Abstract Factory

抽象工厂抽象工厂设计模式是一种创建模式,它提供了一个用于创建相关或从属对象族的接口,而无需指定其具体类。 它在以下情况下特别有用: 您需要创建必须一起使用并且是一致系列的一部分的对象(例如,按钮、复选框和菜单…

WSL 下的虚拟网卡配置

第一部分:Windows 虚拟网卡创建指南 1. 原理 在 Windows 里,“虚拟网卡”本质是由网络驱动在系统网络栈中创建的一个 软件网卡接口。它的作用和物理网卡类似,只不过不直接连接到物理硬件,而是通过内核网络驱动与宿主机网络进行交换…

Dify web前端源码本地部署详细教程

目录 1. 先启动API 2. 启动worker服务 3. 启动web 4. 访问登陆地址 在前面的文章中,Dify源码部署,搭建二次开发环境(一) 已经记录了如何在本地启动API、work、中间件。在本篇文章中,将概述如何启动dify web源码项…

CVPR 2025|英伟达联合牛津大学提出面向3D医学成像的统一分割基础模型

在 2D 自然图像和视频的交互式分割领域,基础模型已引发广泛关注,这也促使人们开始构建用于医学成像的 3D 基础模型。然而,3D 医学成像存在的领域差异以及临床应用场景,要求开发一种有别于现有 2D 解决方案的专用模型。具体而言&am…

解决“Win7共享文件夹其他电脑网络无法发现共享电脑名称”的问题

要让运行 Windows 7 的电脑被局域网中其他设备(包括另一台电脑、手机、NAS 等)“发现”,必须同时满足三个条件: 网络发现功能已启用;对应的后台服务已启动;防火墙规则放行。 下面给出最简、最稳妥的 3 步设…

Python pyzmq 库详解:从入门到高性能分布式通信

一、前言 在现代软件开发中,进程间通信(IPC)与分布式系统通信已经成为基础能力。无论是构建一个微服务架构的后端,还是实现大规模并行计算任务,如何让不同的进程或节点之间高效地传递消息,都是核心问题。 传…

CentOS 7更换国内镜像源

第一步:检查系统版本 在修改任何配置之前,先确定你的 CentOS 版本,因为不同版本的镜像源配置文件不同。 cat /etc/redhat-release这个命令会显示你的 CentOS 版本信息,例如 CentOS Linux release 7.9.2009 (Core)。从你的错误日志…

详解 doclayout_yolo:Python 文档布局检测

目录一、doclayout_yolo 核心功能二、安装方法1. 直接安装2. 通过 PDF-Extract-Kit 安装三、使用示例1. 快速体验(HuggingFace Demo)2. 本地推理代码3. 批量处理四、技术亮点五、应用场景六、其他说明1.相关资源2. 注意事项doclayout_yolo 是一个基于 Y…

猫头虎AI分享|一款Coze、Dify类开源AI应用超级智能体Agent快速构建工具:FastbuildAI

猫头虎AI分享|一款 Coze、Dify 类开源 AI 应用超级智能体快速构建工具:FastbuildAI 区别在于它的易用度和商业闭环功能 摘要:FastbuildAI 是一个开源的 AI 应用“快速构建 商业化闭环”工具。它让个人开发者与小团队用 可视化 零代码 的方…

GitLab 安全漏洞 CVE-2025-6186 解决方案

本分分享极狐GitLab 补丁版本 18.2.2, 18.1.4, 18.0.6 的详细内容。这几个版本包含重要的缺陷和安全修复代码,我们强烈建议所有私有化部署用户应该立即升级到上述的某一个版本。对于极狐GitLab SaaS,技术团队已经进行了升级,无需用户采取任何…

【K8s】harbor安装与推送镜像

引言 在开发中,先推送镜像到docker,然后直接在docker运行。但是在K8S中,需要动态创建或者分配机器,这里需要将镜像推送到harbor仓库,然后再从仓库拉取到每台集群机器。 docker安装harbor:https://learnku…

FPGA读取AHT20温湿度模块思路及实现,包含遇到的问题(IIC协议)

一.阅读官方手册 手册在下方网址下载,该模块在各个网店平台均有销售 百度网盘 请输入提取码 手册重点关注IIC地址(读地址0x71,写地址0x70)、IIC命令和读写数据逻辑,手册写的比较简单(感觉很多细节没到位…