iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >数据传输 | dtle 之 job 实现简析
  • 124
分享到

数据传输 | dtle 之 job 实现简析

数据传输|dtlejob实现简析 2018-11-08 17:11:32 124人浏览 绘本
摘要

作者:吕海龙 爱可生 DTLE 团队成员,负责 DTLE 开发 ,日常问题处理以及相关问题的排查。 本文来源:原创投稿 爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。 从 job 文件到源端目标端的数据传

数据传输 | dtle 之 job 实现简析

作者:吕海龙 爱可生 DTLE 团队成员,负责 DTLE 开发 ,日常问题处理以及相关问题的排查。 本文来源:原创投稿 爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。


从 job 文件到源端目标端的数据传输,dtle 到底是如何行实现的的,传输过程中的高可用,又是由谁实现呢,下面,我们就简单的介绍一下,job 的实现的大体流程。

结构

如上图所示,在 job 被传入服务器中,为了将 job 中的任务映射到客户端,job 会形成两个 allocation,task,以及 driver,而 job 实现期间的服务器分配,则是通过 evaluation 来实现。

  • evaluation:评估是 dtle 做出调度决策的机制。
  • allocation:分配是作业中的任务组和客户端节点之间的映射。分配由 dtle 服务端创建,作为评估期间的调度决策的一部分。
  • task:job 中声明的 task,记录了源端,或者目标端的连接信息以及所需要复制的库表信息。
  • driver:驱动,功能的具体实现,dtle 数据传输的具体实现,有 driver 进行用实现。

详解

evaluation

  • 评估是 dtle 做出调度决策的机制。当理想的状态(作业)或实际的状态(客户端)发生变化时,dtle 创建一个新的评估,以确定是否必须采取任何行动。在创建一个 job 后,同样会触发一次评估

allocation

  • allocation,表示 job 的分配,它记录了 task 的详细的信息,同时,它是 dtle 进行高可用部分调度的一环,在 dtle 的官方文档中,我们可以通过对应的 api 接口,查看 allocation 的信息,并且从中查看到 task 的运行状态等等信息,报错信息等等,用户可以通过 allocation 的报错信息,确定问题来自于源端,或者目标端。

task

  • 通过官方文档中的 job 结构,我们可知,task 被分为了源端和目标端,他们各自记载了对应的数据库信息以及所要传输的库表信息,总体来说,task 是一个任务实现的最基本单元,他指定任务的驱动、驱动的配置、约束和所需的资源。在 task 启动之后,则会调用对应的 driver。
{
{
    "Name":"dtle-demo",
    "Tasks":[
        {
            "Type":"Src",
            "Config":Object{...}
        },
        {
            "Type":"Dest",
            "Config":Object{...}
        }
    ]
}
}

driver

  • driver:driver,执行任务的具体方法,driver 承担了数据传输的具体实现,从读取 binglog,到数据的回放,都由 driver 进行实现。driver 只为数据传输服务。

总结

以上,便是一个 job,从请求提交,到最终实现所经历的一个简单流程。 总体来说,我们一般将 job 的实现分为两个部分,一个部分是调度,调度部分实现 job 的高可用,以及 job 转移等一系列事物。而来另外一部分,则是传输部分的具体实现,从源端目标端的连接,到数据的抽取,清洗,回放。

相关连接

dtle 官方手册: https://actiontech.GitHub.io/dtle-docs-cn/

您可能感兴趣的文档:

--结束END--

本文标题: 数据传输 | dtle 之 job 实现简析

本文链接: https://www.lsjlt.com/news/5122.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Docker容器之间数据传输的实现
    1.从容器中将文件拷贝到宿主机上。 在宿主机你想要接收文件的地方,运行下面的指令 docker cp 容器id:home/test . docker run -d --name ng...
    99+
    2024-04-02
  • Sqoop怎么实现和Hadoop之间的数据传输
    Sqoop是一个用于在Apache Hadoop和关系数据库之间传输数据的工具。使用Sqoop可以轻松地将数据从关系数据库中导入到H...
    99+
    2024-04-02
  • 怎么实现Docker容器之间的数据传输
    小编给大家分享一下怎么实现Docker容器之间的数据传输,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!从容器中将文件拷贝到宿主机上。在宿主机你想要接收文件的地方,运行下面的指令docker cp 容器i...
    99+
    2023-06-29
  • 使用PHP trait DTO简化数据传输层的实现
    在PHP开发中,经常会涉及到数据传输层的设计,用于在不同层次之间传递数据。而传统的数据传输对象(Data Transfer Object,简称DTO)的实现方式往往比较繁琐,需要手动创建类并定义各个属性和方法。为了简化这一过程,我们可以利用...
    99+
    2023-10-21
    dto PHP trait 数据传输层
  • JS跨域之window.name实现的跨域数据传输
    一、 window.name的性质 window.name有一个奇妙的性质,页面如果设置了window.name,那么在不关闭页面的情况下,即使进行了页面跳转location.hre...
    99+
    2024-04-02
  • Xamarin Essentials实现数据的传输功能实例分析
    本篇文章为大家展示了Xamarin Essentials实现数据的传输功能实例分析,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Xamarin Essentials实现数据的传输功能实例【示例1-1...
    99+
    2023-06-05
  • Node.Js怎么实现sendfile数据传输
    本篇内容主要讲解“Node.Js怎么实现sendfile数据传输”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Node.Js怎么实现sendfile数据传输”吧!首先我们看一下sendfile的...
    99+
    2023-07-04
  • golang WebSocket与JSON的结合:实现数据传输和解析
    golang WebSocket与JSON的结合:实现数据传输和解析在现代的Web开发中,实时数据传输变得越来越重要。WebSocket是一种用于实现双向通信的协议,与传统的HTTP请求-响应模型不同,WebSocket允许服务器向客户端主...
    99+
    2023-12-17
    Golang JSON websocket
  • 云服务器之间传输数据
    云服务器之间传输数据需要使用 PostgreSQL 和 MySQL 等数据库进行传输。下面是一些基本步骤: 创建云服务器的 Market 文件,如 https://cloudservermkdir.deploy.com/deployme...
    99+
    2023-10-26
    服务器 数据
  • PHP trait DTO:实现数据传输对象的简洁性与灵活性
    引言:在 PHP 开发过程中,经常会涉及到数据的传输与处理。而传输对象模式(Data Transfer Object,简称 DTO)是一种设计模式,它用于将数据在不同层之间传输。在传输过程中,DTO 通过封装数据、提供公共访问方法来简化数据...
    99+
    2023-10-21
    PHP dto trait
  • PHP+Socket系列之实现客户端与服务端数据传输
    本篇文章给大家带来了关于php+socket的相关知识,其中主要介绍了什么是socket?php+socket如何实现客户端与服务端数据传输?感兴趣的朋友下面一起来看一下,希望对大家有帮助。socket介绍实现网络进程之间的通信,几乎所有应...
    99+
    2023-05-14
    php socket
  • Redis怎么实现数据的安全传输
    Redis可以通过以下几种方式来实现数据的安全传输: 使用SSL/TLS:Redis支持使用SSL/TLS来加密客户端和服务器之间...
    99+
    2024-05-07
    Redis
  • Java使用TCP实现数据传输实例详解
    Java使用TCP实现数据传输实例详解TCP所提供服务的主要特点:  1.面向连接的传输;  2.端到端的通信;  3.高可靠性,确保传输数据的正确性,不出现丢失或乱序;  4.全双工方式传输;  5.采用字节流方式,即以字节为单位传输字节...
    99+
    2023-05-31
    java tcp 数据传输
  • Sqoop怎么实现关系型数据库的数据传输
    Sqoop是一个用于在关系型数据库和Hadoop之间传输数据的工具,它可以将数据从关系型数据库中导入到Hadoop中,也可以将数据从...
    99+
    2024-04-02
  • 如何在 ASP Shell 中实现实时数据传输?
    ASP Shell是一种流行的Web应用程序,它允许用户在Web浏览器中执行命令和脚本。与传统的Web应用程序不同,ASP Shell允许用户与服务器进行实时交互,这使得它成为一个非常强大的工具,可以用于各种不同的用途,包括实时数据传输。在...
    99+
    2023-08-01
    shell 分布式 实时
  • h5如何实现数据安全加密传输
    h5利用api接口实现数据加密传输,具体方法如下:function CurlPost($url, $param = null, $timeout = 10){//初始化curl$curl = curl_init();curl_setopt(...
    99+
    2024-04-02
  • android蓝牙数据传输功能怎么实现
    在Android中实现蓝牙数据传输功能,可以分为以下几个步骤: 获取蓝牙适配器:通过调用BluetoothAdapter.get...
    99+
    2023-10-24
    android
  • Oracle中怎么实现跨平台数据传输
    在Oracle中实现跨平台数据传输通常可以通过以下几种方式: 使用Oracle Data Pump:Oracle Data Pu...
    99+
    2024-04-19
    Oracle
  • JAVA-4NIO中如何实现Channel的数据传输
    JAVA-4NIO中如何实现Channel的数据传输?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。在Java NIO中,如果两个通道中有一个是FileChannel,那你可以直...
    99+
    2023-05-31
    channel java- java
  • android蓝牙传输数据功能怎么实现
    在Android中,可以使用BluetoothAdapter类来实现蓝牙传输数据的功能。以下是实现蓝牙传输数据的基本步骤:1. 检查...
    99+
    2023-10-08
    android
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作