首页 > 其他分享 >Framework + plugin架构

Framework + plugin架构

时间:2024-09-21 10:47:44浏览次数:9  
标签:Task 架构 plugin 数据源 TaskGroup Framework 同步 DataX

DataX/introduction.md at master · alibaba/DataX · GitHub https://github.com/alibaba/DataX/blob/master/introduction.md

 

  • 为了解决异构数据源同步问题,DataX将复杂的网状的同步链路变成了星型数据链路,DataX作为中间传输载体负责连接各种数据源。当需要接入一个新的数据源的时候,只需要将此数据源对接到DataX,便能跟已有的数据源做到无缝数据同步。

  • 当前使用现状

    DataX在阿里巴巴集团内被广泛使用,承担了所有大数据的离线同步业务,并已持续稳定运行了6年之久。目前每天完成同步8w多道作业,每日传输数据量超过300TB。

此前已经开源DataX1.0版本,此次介绍为阿里云开源全新版本DataX3.0,有了更多更强大的功能和更好的使用体验。Github主页地址:https://github.com/alibaba/DataX

 

 

 

DataX本身作为离线数据同步框架,采用Framework + plugin架构构建。将数据源读取和写入抽象成为Reader/Writer插件,纳入到整个同步框架中。

  • Reader:Reader为数据采集模块,负责采集数据源的数据,将数据发送给Framework。
  • Writer: Writer为数据写入模块,负责不断向Framework取数据,并将数据写入到目的端。
  • Framework:Framework用于连接reader和writer,作为两者的数据传输通道,并处理缓冲,流控,并发,数据转换等核心技术问题。

 

核心模块介绍:

  1. DataX完成单个数据同步的作业,我们称之为Job,DataX接受到一个Job之后,将启动一个进程来完成整个作业同步过程。DataX Job模块是单个作业的中枢管理节点,承担了数据清理、子任务切分(将单一作业计算转化为多个子Task)、TaskGroup管理等功能。
  2. DataXJob启动后,会根据不同的源端切分策略,将Job切分成多个小的Task(子任务),以便于并发执行。Task便是DataX作业的最小单元,每一个Task都会负责一部分数据的同步工作。
  3. 切分多个Task之后,DataX Job会调用Scheduler模块,根据配置的并发数据量,将拆分成的Task重新组合,组装成TaskGroup(任务组)。每一个TaskGroup负责以一定的并发运行完毕分配好的所有Task,默认单个任务组的并发数量为5。
  4. 每一个Task都由TaskGroup负责启动,Task启动后,会固定启动Reader—>Channel—>Writer的线程来完成任务同步工作。
  5. DataX作业运行起来之后, Job监控并等待多个TaskGroup模块任务完成,等待所有TaskGroup任务完成后Job成功退出。否则,异常退出,进程退出值非0

DataX调度流程:

举例来说,用户提交了一个DataX作业,并且配置了20个并发,目的是将一个100张分表的mysql数据同步到odps里面。 DataX的调度决策思路是:

  1. DataXJob根据分库分表切分成了100个Task。
  2. 根据20个并发,DataX计算共需要分配4个TaskGroup。
  3. 4个TaskGroup平分切分好的100个Task,每一个TaskGroup负责以5个并发共计运行25个Task。

 

 

 

 

翻译

搜索

复制

标签:Task,架构,plugin,数据源,TaskGroup,Framework,同步,DataX
From: https://www.cnblogs.com/papering/p/18423681

相关文章

  • springboot布式架构网上商城系统的设计与实现
    大家好,我是永钊,一个混迹在java圈的码农,今天要和大家聊的是一款基于springboot的大学生科创项目在线管理系统,项目源码请联系永钊,目前有各类成品毕设javawebsshssmspringboot等等项目框架,源码丰富。专业团队,咨询就送开题报告,活动限时免费,有需要的朋友可以来留言咨询。本......
  • 链动2+1模式系统发源码之区域代理架构设计与功能解析
    链动2+1模式系统开发源码中的区域代理设计,主要围绕行政区划分的省、市、区代理机制进行构建,旨在通过这一机制促进线上线下的融合,提升区域市场的覆盖。以下是对该设计的详细解析一、区域代理的设立与获取方式1. 设立原则:区域代理分为省级代理、市级代理和区县代理,每个级别均基于行......
  • 微服务架构---Ribbon\Feign
    Ribbon(负载均衡)Ribbon概述在SpringCloud中,Nacos⼀般配合Ribbon进行使用,Ribbon提供了客户端负载均衡的功能,Ribbon利用从Nacos中读取到的服务信息,在调用服务节点提供的服务时,会合理的进行负载。Ribbon作用1.服务调用基于Ribbon实现服务调用,是通过拉取到的所有服务列......
  • 从架构到业务:实现企业一致性与合规性的价值流优化方案
    确保业务与架构的一致性与合规性——企业未来成功的关键随着企业数字化转型不断加速,如何在保持合规的同时确保业务架构与战略目标的高度一致,已经成为企业在当今市场竞争中的关键成功因素。为了在多变的商业环境中立足,企业不仅需要优化其业务流程,还必须确保企业架构与其战略目......
  • SaaS架构:流程架构分析
    大家好,我是汤师爷~今天聊聊SaaS架构中的流程架构分析。业务流程的概念业务流程是企业为实现目标而制定的一套系统化的工作方法。它由一系列有序的业务活动组成,按照既定规则将资源(输入)转化为有价值的结果(输出)。这一过程需结合企业的具体情况和可用资源,旨在为客户创造价值,同时达......
  • 架构设计:负载均衡层设计方案(5)——LVS单节点安装
    作者简介:大家好,我是smart哥,前中兴通讯、美团架构师,现某互联网公司CTO联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬学习必须往深处挖,挖的越深,基础越扎实!阶段1、深入多线程阶段2、深入多线程设计模式阶段3、深入juc源码解析阶段4、深入jdk其余源码解析......
  • 软件设计画图,流程图、甘特图、时间轴图、系统架构图、网络拓扑图、E-R图、思维导图
    目录一、流程图二、甘特图三、时间轴图四、系统架构图五、网络拓扑图六、E-R图七、思维导图一、流程图是一种用符号表示算法、工作流或流程的图形。用不同的图形表示不同含义,如椭圆表示开始和结束、菱形表示判断等。画图工具WPSoffice应用市场--文档处理--本地流......
  • dotnet framework 4.7.2 webapi 配置的swagger添加登录验证
    项目是.netframework4.7.2加webapi写的接口,使用Swashbuckle包添加的swagger支持 App_Start\SwaggerConfig.cs中加c.CustomAsset("index",thisAssembly,"WebApi.Jwt.SwaggerExtensions.index.html",false);1usingSystem.Web.Http;2usingWebActivato......
  • 解决 AI 算法开发和存储难题,华为云 DTSE 助力文华云技术架构升级
    本文分享自华为云社区《文华云全面技术架构升级,引领智慧教育新未来》,作者:HuaweiCloudDeveloper。本文介绍了华为云DTSE通过AI开发平台ModelArts助力四川文华云教育类应用系统改造上云的案例,DTSE帮助文华云完成了技术架构的全面优化升级,为其在智慧教育领域的数字化和智能化......
  • 9月26日云技术研讨会 | SOA整车EE架构开发流程及工具实施方案
        面向服务的架构(ServiceOrientedArchitecture,SOA)实施需要复杂的基础技术作为支撑,伴随着整车硬件资源的集中化、车载以太网等高速通信技术在车内的部署,将在未来一段时间内成为行业技术研究和市场布局的热点。    近年来,经纬恒润在国内深度开展整车SOA架构的......