Flink 介绍(特性、概念、故障容错、运维部署、应用场景)

概述

特性

概念

数据流

状态

时间

savepoint

故障容错

运维部署

部署应用到任意地方

Flink能够更方便地升级、迁移、暂停、恢复应用服务

监控和控制应用服务

运行任意规模应用

应用场景

事件驱动型应用

什么是事件驱动型应用?

事件驱动型应用的优势

Flink如何支持事件驱动型应用?

典型的事件驱动型应用

数据分析型应用

什么是数据分析应用?

流式分析应用的优势?

Flink如何支持数据分析类应用?

典型的数据分析型应用实例

数据管道应用

什么是数据管道应用?

数据管道优势?

Flink如何支持数据管道应用?

典型的数据管道应用

概述

Flink 是一个框架和分布式处理引擎,用于在无边界和有边界数据流上进行有状态计算的框架,Flink 自底向上在不同的抽象级别提供了多种 API,并且针对常见的使用场景开发了专用的扩展库。Flink能所有常见的集群环境中运行,并能以内存速度和任意规模进行计算。

特性

  • 正确性保证:通过Exactly-once状态一致性、事件时间处理和成熟的迟到数据处理机制保证结果的正确性。
  • 分层API:SQL分别处理流和批、DataStream API & DataSetAPI 和 ProcessFunction(time & state)
  • 聚焦运维:灵活部署、高可用、保存点
  • 大规模计算:水平扩展架构、支持超大状态、增量检查点机制
  • 性能卓越:低延迟、高吞吐、内存计算

概念

数据流

流是流处理的基础,其特征影响处理方式。Flink是强大的数据流处理框架。

  • 有界无界 的数据流:数据流分为有界和无界。Flink擅长处理两者,对无界流有强大特性,对有界流有高效算子。
  • 实时历史记录 的数据流:数据流分实时和历史记录两种。实时处理即在数据生成时立即进行;历史记录处理则是先将数据流存储后再批处理。Flink能同时支持这两种数据流的处理。

状态

简单来说,复杂流处理应用通常需要状态管理。这意味着它们需要在某个时间点存储接收的事件或中间结果,以便后续处理时使用。即使是最基本的业务逻辑,也可能需要在特定时间内保留这些信息。

Flink提供了许多状态管理相关的状态支持,其中包括:

  • 多种状态基础类型:Flink为不同数据结构提供状态基础类型,如原子值(value)、列表(list)和映射(map),开发者可根据访问方式选择最适合的类型。
  • 插件化的State Backend:State Backend管理应用状态,支持checkpoint。Flink有多种存储方式,如内存和RocksDB,也支持自定义存储。
  • 精确一次语义:Flink 的 checkpoint 和故障恢复算法保证了故障发生后应用状态的一致性。因此,Flink 能够在应用程序发生故障时,对应用程序透明,不造成正确性的影响。
  • 超大数据量状态:Flink 能够利用其异步以及增量式的 checkpoint 算法,存储数 TB 级别的应用状态。
  • 可弹性伸缩的应用:Flink 能够通过在更多或更少的工作节点上对状态进行重新分布,支持有状态应用的分布式的横向伸缩。

时间

时间是流处理应用另一个重要的组成部分。因为事件总是在特定时间点发生,所以大多数的事件流都拥有事件本身所固有的时间语义。进一步而言,许多常见的流计算都基于时间语义,例如窗口聚合、会话计算、模式检测和基于时间的 join。流处理的一个重要方面是应用程序如何衡量时间,即区分事件时间(event-time)和处理时间(processing-time)。

Flink提供了丰富的时间语义支持。

  • 事件时间模式:使用事件时间语义的流处理应用根据事件本身自带的时间戳进行结果的计算。因此,无论处理的是历史记录的事件还是实时的事件,事件时间模式的处理总能保证结果的准确性和一致性。
  • Watermark支持

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

OpenCV高级图形用户界面(14)交互式地选择一个或多个感兴趣区域函数selectROIs()的使用

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 允许用户在给定的图像上选择多个 ROI。 该函数创建一个窗口,并允许用户使用鼠标来选择多个 ROI。控制方式:使用空格键或…

如何用示波器检测次级点火系统(一)

写在最前面: 单看标题可能会让你觉得这篇文章的主题是关于检测线圈,火花塞和火花塞插头电线。但我们指的是分析燃烧室内电子的行为。目标是看燃料混合物,阀座,压缩,积碳和其它影响这种特性的症状。最终目的是要学会分…

基于springboot vue的音乐播放系统设计与实现

博主介绍:专注于Java(springboot ssm 等开发框架) vue .net php phython node.js uniapp 微信小程序 等诸多技术领域和毕业项目实战、企业信息化系统建设,从业十五余年开发设计教学工作 ☆☆☆ 精彩专栏推荐订阅☆☆☆☆☆不…

基于SpringBoot+Vue+uniapp微信小程序的乡村政务服务系统的详细设计和实现(源码+lw+部署文档+讲解等)

项目运行截图 技术框架 后端采用SpringBoot框架 Spring Boot 是一个用于快速开发基于 Spring 框架的应用程序的开源框架。它采用约定大于配置的理念,提供了一套默认的配置,让开发者可以更专注于业务逻辑而不是配置文件。Spring Boot 通过自动化配置和约…

RiproV9.0主题wordpress主题免扩展可二开PJ版/WordPress博客主题Ripro全解密无后门版本

🔥🎉 全新RiPro9.0开源版发布 —— 探索无限可能🚀🌐 今天,我很高兴能与大家分享一个重磅资源——RiPro9.0开源版!这不是一个普通的版本,而是一个经过精心打磨、全面解密的力作。🔍…

【顺序表的模拟实现Java】

【顺序表的模拟实现Java】 顺序表的介绍Java代码实现检验代码功能 顺序表的介绍 由于之前在c语言板块写过详细的顺序表介绍,所以这一篇文章主要为Java代码的实现 下面为顺序表介绍的链接,如有需要点击下方链接跳转 c语言顺序表讲解 Java代码实现 pub…

群晖前面加了雷池社区版,安装失败,然后无法识别出用户真实访问IP

有nas的相信对公网都不模式,在现在基础上传带宽能有100兆的时代,有公网代表着家里有一个小服务器,像百度网盘,优酷这种在线服务都能部署为私有化服务。但现在运营商几乎不可能提供公网ip,要么自己买个云服务器做内网穿…

可编辑73页PPT | 企业智慧能源管控平台建设方案

荐言分享:随着全球能源形势的日益紧张和智能化技术的快速发展,企业对于能源的高效利用和精细化管理需求愈发迫切。智慧能源管控平台作为一种集成了物联网、大数据、云计算、人工智能等先进技术的综合管理系统,旨在帮助企业实现能源数据的实时…

Qt学习(一)——win10系统下Qt安装(Qt5.15.2+QtCreator5.0.3+MSVC2019)

win10平台下,Qt Creator 5.0.3 软件About Qt Creator界面如下: 其基于Qt 5.15.2 MSVC2019,64bit,故在用Qt4 设计师自定义控件所设计的控件能够被Qt Creator加载到,就要安装相应版本的Qt和MSVC。此安装便可支持win10系统下的自定义…

数据结构(8.2_1)——插入排序

插入排序 算法思想&#xff1a;每次将一个待排序的记录按其关键字大小插入到前面已排序好的子序列中&#xff0c;直到全部记录插入完成。 代码实现 #include <stdio.h>void InsertSort(int A[], int n) {int i, j.temp;for (i 1; i < n; i) {//将各元素插入已排好…

集成电路公司进销存系统生成合同——未来之窗行业应用跨平台架构

一、进销存生成合同优势 1. 提高效率&#xff1a;节省了手动起草和编辑合同的时间&#xff0c;能够快速生成合同&#xff0c;加快业务流程。 2. 减少错误&#xff1a;避免了人工输入可能导致的拼写、数据错误等&#xff0c;提高合同的准确性和规范性。 3. 数据一致性&#xff…

【从零开始的LeetCode-算法】504. 七进制数

给定一个整数 num&#xff0c;将其转化为 7 进制&#xff0c;并以字符串形式输出。 示例 1: 输入: num 100 输出: "202"示例 2: 输入: num -7 输出: "-10"提示&#xff1a; -107 < num < 107 我的解答 class Solution {public String convertT…

排序---java---黑马

排序算法 名称平均时间复杂度最好情况最坏情况空间复杂度稳定性冒泡排序 O ( n 2 ) O(n^2) O(n2) O ( n ) O(n) O(n) O ( n 2 ) O(n^2) O(n2) O ( 1 ) O(1) O(1) Y Y Y选择排序 O ( n 2 ) O(n^2) O(n2) O ( n 2 ) O(n^2) O(n2) O ( n 2 ) O(n^2) O(n2) O ( 1 ) O(1) O(1) N N …

【状态机DP】【记忆化搜索及翻译递推】【空间优化】力扣3290. 最高乘法得分

给你一个大小为 4 的整数数组 a 和一个大小 至少为 4 的整数数组 b。 你需要从数组 b 中选择四个下标 i0, i1, i2, 和 i3&#xff0c;并满足 i0 < i1 < i2 < i3。你的得分将是 a[0] * b[i0] a[1] * b[i1] a[2] * b[i2] a[3] * b[i3] 的值。 返回你能够获得的 最大…

学习Redisson实现分布式锁

官网&#xff1a;https://redisson.org/ 官方文档&#xff1a;https://redisson.org/docs/getting-started/ 官方中文文档&#xff1a;https://github.com/redisson/redisson/wiki/%E7%9B%AE%E5%BD%95 1、引入依赖 <!--redisson--> <dependency><groupId>or…

如何使用FastAPI开发Serverless应用?

使用FastAPI开发Serverless应用是一种现代且高效的方法&#xff0c;它结合了FastAPI的高性能和Serverless架构的灵活性、可扩展性以及低成本。下面是一个基本指南&#xff0c;帮助你从零开始创建并部署一个FastAPI应用到Serverless环境。 1. 安装FastAPI和Uvicorn 首首先&…

RK3568学习之Nginx移植+RTMP推流

1.下载 Nginx 源码 进入到 Ubuntu 系统的某个目录下&#xff0c;下载 Nginx 源码&#xff1a; wget http://nginx.org/download/nginx-1.20.0.tar.gz这里我们下载的是 1.20 版本&#xff0c;这是比较新的版本了。下载完成之后将得到一个名为 nginx-1.20.0.tar.gz的压缩包文件…

思想实验思维浅谈

思想实验思维浅谈 思想实验&#xff08;Thought Experiment&#xff09;是一种在思想中进行的假想实验&#xff0c;思想实验激发人的想象力和思辨能力&#xff0c;是科学家思考问题的重要工具&#xff0c;通过想象、推理和分析来探索某种理论、假设或概念的可能性和内在逻辑&am…

微服务架构 --- 使用Sentinel来处理请求限流+线程隔离+服务熔断

目录 一.什么是Sentinel&#xff1f; 二.Sentinel的核心概念&#xff1a; 三.Sentinel的使用&#xff1a; 1.在本地运行Sentinel控制台&#xff1a; 2.在微服务模块导入依赖以及配置文件&#xff1a; &#xff08;1&#xff09;导入依赖&#xff1a; &#xff08;2&#…

RPC通讯基础原理

1.RPC&#xff08;Remote Procedure Call&#xff09;概述 RPC是一种通过网络从远程计算机上调用程序的技术&#xff0c;使得构建分布式计算更加容易&#xff0c;在提供强大的远程调用能力时不损失本地调用的语义简洁性&#xff0c;提供一种透明调用机制&#xff0c;让使用者不…