实时数据的处理一致性

news2024/9/24 1:42:51

实时数据一致性的定义以及面临的挑战‍‍‍‍‍

数据一致性通常指的是数据在整个系统或多个系统中保持准确、可靠和同步的状态。在实时数据处理中,一致性包括但不限于数据的准确性、完整性、时效性和顺序性。
下图是典型的实时/流式数据处理的流程:
在这里插入图片描述
1、流式数据以各种方式推送到kafka中。
2、flink流式数据处理引擎将数据处理。
3、处理完成的数据写入到Mpp数据库。

由于整个数据链条是动态变化,因此,实时数据的一致性面临一些挑战。

  • 高并发处理:实时系统需要处理大量并发数据流,增加了一致性维护的难度。主要是在分布式数据库端,如何处理高并发的写入?
  • 网络延迟和故障:网络问题可能导致数据传输中断或延迟,影响数据同步。主要是在数据处理过程中如何保障数据处理的一致性?

实时数据处理系统如何保障一致性‍‍‍‍‍?

一、数据源和数据处理之间采用消息队列

  • 缓冲机制:使用消息队列作为缓冲,平衡数据生产者和消费者之间的速度差异。
  • 顺序保证:确保消息按照发送顺序被处理。

二、Flink引擎在故障‍下保持数据一致性策略
数据重放(Data Replay)
1、概念:数据重放是指在发生故障后,系统能够重新处理之前已经处理过的数据,以确保数据的完整性和一致性。
2、实现:Flink 通过保存输入数据流的快照(snapshots),在发生故障时,可以从快照中恢复数据,并重新处理从故障点之后的数据。

状态恢复(State Recovery)
1、概念:Flink 作业由多个操作符组成,每个操作符可能有自己的状态(例如,计数器、聚合结果等)。状态恢复是指在故障发生后,能够恢复这些状态到故障前的状态。
2、实现:Flink 定期对操作符的状态进行快照(checkpointing),并将快照存储在持久化存储中。如果作业失败,Flink 可以从最近的快照中恢复状态,并从故障点继续处理。

通过状态恢复和数据重放,Flink 确保即使在发生故障的情况下,也能保持数据处理的端到端一致性。并且Flink 提供了端到端的精确一次(exactly-once)处理语义,确保每条数据在系统中只被处理一次,即使在故障发生时也是如此。

故障处理流程
1、故障检测:Flink 监控作业的运行状态,一旦检测到节点故障,立即启动故障恢复流程。
2、状态恢复:Flink 从最近的快照中恢复作业的状态,包括每个操作符的内部状态。
3、数据重放:Flink 重新处理从故障点之后的数据,确保所有数据都被正确处理。
4、作业重启:在状态和数据恢复之后,Flink 重启作业,从故障点继续执行。

Flink引擎在网络延迟下保持数据一致性策略

Flink 引擎解决数据延迟到达的现象主要通过以下几种策略:
1、时间语义:Flink 支持不同的时间语义(事件时间、处理时间和摄取时间),允许开发者根据业务需求处理数据的时效性问题。
2、水印机制(Watermarks):Flink 使用水印来处理事件时间的数据流。水印是一种用于表示时间进度的机制,可以告诉 Flink 在特定时间之前的所有事件都已到达,可以进行处理。这允许系统处理乱序事件或延迟到达的数据。
3、窗口技术:Flink 提供了多种窗口操作,如滚动窗口(tumbling windows)、滑动窗口(sliding windows)和会话窗口(session windows),这些窗口可以对数据进行分组并在指定的时间范围内聚合,从而处理数据到达的延迟。
4、状态管理:Flink 允许操作符维护状态,即使数据延迟到达,也可以在状态中保留必要的信息,直到数据真正到达时再进行处理。
5、允许乱序和延迟的 API:Flink 提供了 allowedLateness 参数,允许在窗口操作中指定一定的延迟容忍度,窗口会为延迟数据保留状态,直到延迟数据到达后进行处理。

MPP数据库在高并发情况下保持数据一致性策略

分布式数据库在设计的时候会考虑高并发情况下保持数据一致性的策略,主要有使用事务管理,数据分区分片,数据版本控制,以及采用最终一致性原理。

1、使用事务管理:MPP数据库一般会提供ACID事务属性,确保事务具有原子性,一致性、隔离性和持久性,另外在分布式系统中支持分布式事务,使用两阶段提交等协议来维护事务一致性。
2、数据分区分片:将数据分布到不同的分区或分片上,减少单个节点的负载,提高并发处理能力。数据分区分片时采用一致性哈希算法来分配数据到不同的节点,即使在节点增减的情况下也能保持数据分布的一致性。
3、 数据版本控制:当多个事务或操作可能同时对同一数据进行修改时,数据版本控制可以确保数据库的一致性和完整性。另外,数据版本控制可以实现多版本并发控制(MVCC),允许在不锁定资源的情况下执行读取和写入操作,从而提高系统的并发性能。在分布式系统中,不同节点可能会对同一数据产生冲突的更新,版本控制机制可以帮助识别和解决这些冲突。
4、采用最终一致性模型:大部分分布式数据库采用CAP定理,接受短暂的数据不一致,最终一致性。

在实时数据处理流程中,从技术架构的设计到数据处理引擎的实现,再到分布式数据库在面对高并发、系统故障和网络异常等挑战时确保数据一致性的机制,都需要开发人员在开发和部署阶段进行精心的规划和应用。通过合理利用这些功能,可以有效地维护数据的完整性和一致性。
一、分布式数据库的设计和操作深受CAP定理的影响,该定理指出在分布式系统中,以下三个特性不可能同时得到完全满足:
1、一致性(Consistency):在分布式系统中的所有数据副本上,对于任何更新操作,都能保证所有节点在同一时间看到最新的数据。
2、可用性(Availability):每个请求接收到一个响应,无论是成功还是失败的响应。
3、分区容错性(Partition Tolerance):在网络分区(即系统的一部分被网络故障隔离)发生的情况下,系统仍然能够继续运行。

二、在CAP定理的框架下,分布式数据库需要在这三个特性之间做出权衡:

  • 强一致性与可用性的权衡:如果一个分布式数据库优先考虑一致性,那么在更新数据时可能需要锁定相关的数据副本,直到所有副本都更新完毕。这可能会降低系统的可用性,因为在更新过程中,其他操作可能需要等待。
  • 最终一致性:在这种模型下,分布式数据库接受在数据更新后的短时间内数据可能不一致,但保证系统最终会达到一个数据一致的状态。这种模型通常通过版本控制、数据版本控制、冲突解决策略等技术实现,允许系统在更新过程中继续处理请求,但返回的数据可能是旧版本。
  • 分区容错性:对于分布式数据库来说,网络分区是一种常见情况,因此数据库需要设计为即使在分区发生时也能继续提供服务。这通常意味着牺牲一定程度的一致性或可用性,例如,通过使用最终一致性模型来保证系统的持续运行。

三、在实际应用中,分布式数据库可能采用以下策略来实现CAP定理中的权衡:

  • 数据副本和同步策略:选择合适的数据副本数量和同步方式,以平衡一致性和可用性。
  • 读写分离:通过分离读操作和写操作,可以在保持高可用性的同时,通过异步复制机制逐步达到数据一致性。
  • 冲突解决机制:在检测到数据冲突时,使用预定义的策略来解决冲突,如“最后写入胜出”或基于特定业务逻辑的自定义策略。
  • 智能路由和负载均衡:在网络分区发生时,智能地路由请求到可用的节点,并在后台同步数据,以保持系统的可用性和一致性。
  • 使用不同的一致性模型:根据业务需求,选择强一致性、最终一致性或其他一致性模型,以适应不同的应用场景。

最终,分布式数据库的设计者和运维人员需要根据具体的业务需求、系统特点和预期的工作负载来决定如何在CAP定理的三个特性之间做出最佳权衡。

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

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

相关文章

佰朔资本:沪港通,深港通,港股通的区别与联系?

沪港通,深港通,港股通的差异与联系: 1、沪港通是“沪港股票市场生意互联互通机制”的简称,包含“沪股通”和“沪港通下的港股通”。 (1)“沪股通”是指投资者托付香港经纪商,经由联交地址上海…

kettle从入门到精通 第八十六课 ETL之kettle kettle调用https接口忽略SSL校验

1、在使用kettle调用接口的时候不可避免要调用http或者https接口,调用http接口kettle可以正常工作,但是遇到https接口的时候kettle就会提示证书有误,无法正常调用接口,今天咱们一起通过自研插件的方式来解决这个问题。自研插件需要…

启明云端WT32C3-S2模组,乐鑫ESP32-C3芯片开发应用,设备联网通信方案

随着科技的飞速发展,我们正步入一个全新的时代——物联网时代。在这个时代,每一个设备都不再是孤立的个体,而是通过无线网络相互连接、相互沟通的智能节点。 想象一下,当你走进家门,灯光自动亮起,空调调整…

认识NDK

什么是NDK(Native Development Kit) The Android NDK is a toolset that lets you implement parts of your app in native code, using languages such as C and C. &emdp; Android NDK 是一个工具集,可让您使用 C 和 C 等语言以原生代…

CANdela/Diva系列8--如何生成0x27服务解锁的DLL

本系列的上一篇文章中,我们介绍了如何在CDD文件中去根据客户需求来配置诊断服务,其实每个诊断服务的配置方式都是大同小异,但是0x27服务略有不同,为了能够让CDD文件根据ECU返回的种子去自动计算出密钥,需要添加一个解锁…

流域碳中和技术

随着全球气候变化的加剧,碳中和已成为实现可持续发展的重要目标之一。碳中和不仅仅是能源和工业领域的调整,它涉及整个生态系统的转型与再生。在这一过程中,流域的生态系统作为水、土、生物多样性等自然资源的集成体,扮演着至关重…

解密.baxia勒索病毒:.baxia勒索病毒的攻击手法及防护建议

导言 在当前网络安全形势日益严峻的背景下,勒索软件的威胁正不断升级,其中.baxia勒索病毒尤为突出。作为一种新型恶意软件,.baxia病毒通过加密用户的文件并要求支付赎金来获取解密密钥,对个人和企业的安全构成了严重威胁。随着其…

【LLM多模态】视频理解模型Cogvlm-video和MVBench评测基准

note Cogvlm-video模型通过视频抽帧(24帧,每帧大小为224 x 224)后经过ViT进行图像编码(ViT中添加了2x2的卷积核更好的压缩视觉信息),使用adapter模块更好的将视觉特征和文本特征对齐,得到的图像…

基于WebServer的工业数据采集系统

一、项目框架及流程 二、http简介 HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于Web Browser(浏览器)到Web Server(服务器)进行数据交互的传输协议。 HTTP是应用层协…

poi生成的ppt,powerPoint打开提示内容错误解决方案

poi生成的ppt,powerPoint打开提示内容错误解决方案 最近做了ppt的生成,使用poi制作ppt,出现一个问题。微软的powerPoint打不开,提示错误信息 通过xml对比工具发现只需要删除幻灯片的某些标签即可解决。 用的是XML Notepand 分…

ai写论文哪个平台好?7款AI写论文软件帮你撰写论文

在当今学术研究和写作领域,AI论文写作工具的出现极大地提高了写作效率和质量。这些工具不仅能够帮助研究人员快速生成论文草稿,还能进行内容优化、查重和排版等操作。以下是七款推荐的AI写论文软件,其中特别推荐千笔-AIPassPaper。 一、千笔…

Java集合(Map篇)

一.Map a.使用Map i.键值(key-value)映射表的数据结构,能高效通过key快速查找value(元素)。 ii.Map是一个接口,最常用的实现类是HashMap。 iii.重复放入k-v不会有问题,但是一个…

盈科巴黎办公室开业典礼暨盈科全球一小时法律服务生态圈·法国中心揭牌仪式圆满举办

国际化建设是盈科律师事务所发展的重要战略目标之一,随着中国对外投资、跨境贸易、“一带一路”高质量共建等迅速发展,越来越多中国企业和公民“走出去”,寻找海外市场。今年是中法建交60周年。建交以来,中法坚持做真诚的朋友、共…

【Java】JVM基本组成

一、JDK、JRE、JVM JDK:全称 “Java Development Kit” Java 开发工具包,提供 javac编译器、jheap、jconsole 等监控工具; JRE:全称 “Java Runtime Environment” Java 运行环境,提供 class Library 核心类库JVM; …

文件服务器FastDFS 消息队列中间件RabbitMQ

新标签页 (chinaunix.net) FastDFS - Browse Files at SourceForge.net 一、FastDFS Tracker和Storage: tracker用来管理所有的storage,只是管理服务器,负责负载均衡。 storage是存储服务器,每一个storage服务器都是一个单独的个…

计算机毕业设计之:基于微信小程序的疫苗预约系统的设计与实现(源码+文档+讲解)

博主介绍: ✌我是阿龙,一名专注于Java技术领域的程序员,全网拥有10W粉丝。作为CSDN特邀作者、博客专家、新星计划导师,我在计算机毕业设计开发方面积累了丰富的经验。同时,我也是掘金、华为云、阿里云、InfoQ等平台…

Shiro rememberMe反序列化漏洞(Shiro-550)

开启环境抓包验证Shiro框架 使⽤BurpSuite进⾏抓包,在请求包中的cookie字段中添加 rememberMe123; ,看响应包 header中是否返回 rememberMedeleteMe 值,若有,则证明该系统使⽤了Shiro框架: 使用工具爆破密钥爆破利用…

论文大杀器!分享4款ai论文写作工具软件

在当今学术研究和论文写作领域,AI技术的应用已经变得越来越普遍。这些工具不仅能够提高写作效率,还能帮助研究人员生成高质量的论文内容。本文将重点介绍四款优秀的AI论文写作工具,并特别推荐千笔-AIPassPaper。 一、千笔-AIPassPaper 传送门…

2024寻找那些能精准修改PDF内容的工具

如今,我们使用 PDF 文档的频率不断攀升,很多时候收到的表格等资料都是 PDF 格式。若先进行格式转换后编辑,再转换回 PDF 格式,着实有些麻烦。那么,pdf怎么编辑修改内容呢?在这篇文章中,我将为大…

python爬虫案例——抓取链家租房信息

文章目录 1、任务目标2、分析网页3、编写代码1、任务目标 目标站点:链家租房版块(https://bj.lianjia.com/zufang/) 要求:抓取该链接下前5页所有的租房信息,包括:标题、详情信息、详情链接、价格 如: 2、分析网页 用浏览器打开链接,按F12或右键检查,进入开发者模式;因…