当前位置:网站首页>Flink学习8:数据的一致性
Flink学习8:数据的一致性
2022-07-04 03:47:00 【hzp666】
1.简介
在分布式流处理引擎中,高吞吐 低延迟,是最核心的需求。
与此同时数据一致性在分布式应用中也很重要。
(在精确场景下,精确一致性往往要求也很高)
2.flink的数据一致性
flink如何保证计算状态的一致性。
异步屏障快照机制,来实现数据的精确一致性。
当任务崩溃或取消后,可以通过检查点或保存点,来实现恢复,实现数据流的重放,从而达到任务的一致性。(这种机制是不会牺牲系统性能的)
2.1 有状态和无状态事件
先来看下什么是状态事件:
1. 无状态,即每个事件是单独独立的,各事件之间无关联。
输出的结果仅跟当前事件有关。
eg: 统计天气温度,当大于40°C 时候,发布高温报警。(跟之前的温度没有关系)
2.有状态,即事件跟之前的事件状态有关联。
输出的结果是结合了之前各事件,综合考虑的结果
eg:统计最近1小时的平均气温,
2.2 数据一致性
当分布式系统引入状态的时候,自然就引入了数据一致性问题。
根据正确性的不同,可以分为3类:
1.正确性最低:最多一次。当故障发生时候,什么都不做。
2.正确性中等:至少一次。当故障发生时候,系统不会漏掉之前的事件,但是可能会重复计算。(最终的统计值可能会大于等于真实的数据值)
3.正确性最高:精确一致。聚合结果和未发生故障结果一致。
“”精确一致“”相对“”至少一次“”,系统会更复杂,处理速度会相对较慢。因为会有数据对齐操作。
最开始的storm,samza都是至少一次,
后来的Storm Trident 和 Spark Streaming 虽然保证了精确一致,但是牺牲了很大的性能。
Flink在没有牺牲太大性能的前提下,保证精确一次。
2.3 Flink的异步屏障快照机制
2.3.1快照机制
先看下什么是快照机制:定期对作业状态和数据流进行记录
2.3.2但是传统的快照机制,存在两个主要问题:
2.3.3 flink是如何优化快照机制的
1. 采用异步快照机制。基于chandy-lamport 算法,制定了检查点机制,叫做异步屏障检查点机制。
2. 异步屏障快照机制
3.检查点屏障,是一种特殊的内部消息,
将数据流从时间上切分为多个窗口,
一个窗口对应,数据流中的一个快照。
屏障由JobManager定时广播给计算任务所有的source,并伴随数据流一起流至下游。
每个屏障位于,当前快照 和 下个快照的分割点。
当下游数据检查到凭照,就会触发快照动作,不需要暂停这个计算任务。
4.异步检查点中的“异步”
边栏推荐
- XSS prevention
- Katalon中控件的参数化
- [PaddleSeg 源码阅读] PaddleSeg 自定义数据类
- Spa in SDP
- ctf-pikachu-CSRF
- Katalon framework tests web (XXI) to obtain element attribute assertions
- Katalon使用script实现查询List大小
- Introduction to asynchronous task capability of function calculation - task trigger de duplication
- Go 语言入门很简单:Go 实现凯撒密码
- 【.NET+MQTT】.NET6 環境下實現MQTT通信,以及服務端、客戶端的雙邊消息訂閱與發布的代碼演示
猜你喜欢
选择排序与冒泡排序模板
函数计算异步任务能力介绍 - 任务触发去重
MySQL one master multiple slaves + linear replication
Defensive programming skills
Typical applications of minimum spanning tree
Getting started with the go language is simple: go implements the Caesar password
Unity移动端游戏性能优化简谱之 画面表现与GPU压力的权衡
Audio and video technology development weekly | 232
1289_FreeRTOS中vTaskSuspend()接口实现分析
Introduction to asynchronous task capability of function calculation - task trigger de duplication
随机推荐
[Yugong series] go teaching course 002 go language environment installation in July 2022
思考的小记录
pytest多进程/多线程执行测试用例
SQL statement strengthening exercise (MySQL 8.0 as an example)
EV6 helps the product matrix, and Kia is making efforts in the high-end market. The global sales target in 2022 is 3.15 million?
vim映射命令
Katalon中控件的参数化
JDBC 进阶
Katalon框架测试web(二十六)自动发邮件
[source code analysis] model parallel distributed training Megatron (5) -- pipestream flush
新型数据中心,助力加快构建以数据为关键要素的数字经济
Huawei cloud Kunpeng engineer training (Guangxi University)
Mitsubishi M70 macro variable reading Mitsubishi M80 public variable acquisition Mitsubishi CNC variable reading acquisition Mitsubishi CNC remote tool compensation Mitsubishi machine tool online tool
Why is the probability of pod increasing after IPtable
Katalon framework tests web (XXI) to obtain element attribute assertions
Detailed explanation of PPTC self recovery fuse
MySQL one master multiple slaves + linear replication
Reduce function under functools
Rhcsa-- day one
Typical applications of minimum spanning tree