DTLE

数据传输 | dtle 使用初探

允我心安 提交于 2020-04-06 01:05:25
作者:马莹乐 爱可生研发团队成员,负责 mysql 中间件和数据库管理平台的测试。擅长找茬(测试技术爱好者),欢迎大家试用 dtle~ 本文来源:原创投稿 *爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。 dtle 是一款爱可生 MySQL 开源数据传输中间件,此文简要介绍初步使用方法。 项目地址: https://github.com/actiontech/dtle 一、下载安装 环境说明: 准备三台主机,主机名分别为:node4、node5、node6 三台均为 agent,另将 node4 和 node5 作为 manager 1.1 下载 下载 dtle 最新的 release rpm 包 地址: https://github.com/actiontech/dtle/releases dtle 安装包下载: wget https://github.com/actiontech/dtle/releases/download/v2.19.11.0/dtle-2.19.11.0.x86_64.rpm 1.2 安装 安装步骤 https://actiontech.github.io/dtle-docs-cn/4/4.0_installation.html 分别将 node4,node5 和 node6 的 dtle 安装完成。 1.3 启动 dtle

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

ぐ巨炮叔叔 提交于 2020-03-23 16:16:39
3 月,跳不动了?>>> 作者:吕海龙 爱可生 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 创建一个新的评估,以确定是否必须采取任何行动。在创建一个

数据传输 | DTLE Release Notes 详细解读 2.19.11.0

牧云@^-^@ 提交于 2019-12-05 23:48:29
​2.19.11.0 版本 DTLE Release Notes 以下对 DTLE 2.19.11.0 版本的 Release Notes 进行详细解读。 文章主要分为四部分内容: 一、DTLE 项目介绍 二、版本特征 三、Bug 修复 四、DTLE Release Notes 一、DTLE 项目介绍 11月28日,开源数据传输组件 DTLE 最新版本 2.19.11.0 发布。 DTLE 自开源起一直定位于一款针对 MySQL 使用特点、支持多种使用场景的数据传输组件,希望能够解决当前 MySQL 应用中保障数据传输质量、能够适配复杂场景、提供多样功能的问题。 跨数据中心的数据传输: DTLE 能在数据中心间进行可靠数据传输,并提供链路压缩以降低传输成本 云间数据同步/迁移: DTLE 能提供在公有云间架设数据同步通道,以支持数据容灾等需求 数据汇聚: DTLE 能将多个数据源汇聚到同一个数据源,以提供数据分析/数据转储的功能 数据订阅: DTLE 能将数据源的变更消息发往 Kafka 等消息中间件,以支持数据订阅通知/缓存失效通知等需求 跨数据中心的双向复制: DTLE 能在数据中心间提供双向复制通道,以配合业务实现数据双写 DTLE 官方项目: https://github.com/actiontech/dtle 如对源码有兴趣或者需要定制的功能的可以通过源码编译安装。

技术分享 | MTS并行增量应用

走远了吗. 提交于 2019-11-30 20:44:12
原创作者: 爱可生开源社区 MySQL 的复制延迟在早期版本一直存在,MySQL 5.6.3 版本后开始支持并行复制,并在 5.7进一步完善可用并行复制功能,官方将该功能称为 enhanced multi-threaded slave (简称 MTS) ,从此复制延迟问题得到很大的改善。 功能背景 DTLE([爱可生数据传输组件])项目组在 2018年9月4日提出内部功能性需求(issue #211)实现支持 MTS 并行回放功能。 https://github.com/actiontech/dtle 1.MTS (MySQL 5.7) 原理三 问 1)首要问题:哪些 TX 可以并行回放?(无冲突!!!) 同一 group_commit 的 TX 可以并行回放,因为这些 TX 都进入了 prepare 阶段,事务之间无冲突。 2)如何记录同一 group_commit ? 每个 TX 都有 sequence number,同一个 binlog file 中 SeqNum 单调递增 group_commit 时记录上一次 (group_) commit 的 TX 的 sequence number, 称为 LastCommit (LC) 3)如何并行回放? LC 相同的 TX 可以并行回放 LC 更大的 TX 需等待前一组 TX 全部执行完 (MySQL 8.0 引入

[缺陷分析]半同步下多从库复制异常

孤街浪徒 提交于 2019-11-30 15:04:47
引 言 本文是由爱可生研发团队出品的「 图解MySQL 」系列文章,不定期更新,但篇篇精品。 爱可生开源社区 持续运营维护的小目标: 每周至少推送一篇高质量技术文章 每月研发团队发布开源组件新版 每年1024开源一款企业级组件 2019年至少25场社区活动 欢迎大家持续关注~ 本文分析的缺陷是MySQL bug#89370,其主要的现象是:配置半同步(复制)到多个从库,部分从库在一段时间内无法复制数据,但所有复制状态均正常。 缺陷的复现 MySQL 版本:5.7.16,5.7.17,5.7.21 配置半同步一个master两个slave,设置master的 rpl_semi_sync_master_wait_for_slave_count=2,保持一定数据压力 检查master的 rpl_semi_sync_master_status状态为ON,确保半同步没有退化为异步 设置master的 rpl_semi_sync_master_wait_for_slave_count=1 重启一个slave “stop slave; start slave” 可以观察到步骤4中重启的那个slave长达数分钟不会有master的复制数据流入,但查看复制状态均正常。 缺陷的原理图解 图一:描述了半同步复制的大致流程 上图中按序解析了MySQL半同步插件在binlog group

数据传输 | DTLE Release Notes 详细解读 2.19.11.0

♀尐吖头ヾ 提交于 2019-11-29 16:47:01
​2.19.11.0 版本 DTLE Release Notes 以下对 DTLE 2.19.11.0 版本的 Release Notes 进行详细解读。 文章主要分为四部分内容: 一、DTLE 项目介绍 二、版本特征 三、Bug 修复 四、DTLE Release Notes 一、DTLE 项目介绍 11月28日,开源数据传输组件 DTLE 最新版本 2.19.11.0 发布。 DTLE 自开源起一直定位于一款针对 MySQL 使用特点、支持多种使用场景的数据传输组件,希望能够解决当前 MySQL 应用中保障数据传输质量、能够适配复杂场景、提供多样功能的问题。 跨数据中心的数据传输: DTLE 能在数据中心间进行可靠数据传输,并提供链路压缩以降低传输成本 云间数据同步/迁移: DTLE 能提供在公有云间架设数据同步通道,以支持数据容灾等需求 数据汇聚: DTLE 能将多个数据源汇聚到同一个数据源,以提供数据分析/数据转储的功能 数据订阅: DTLE 能将数据源的变更消息发往 Kafka 等消息中间件,以支持数据订阅通知/缓存失效通知等需求 跨数据中心的双向复制: DTLE 能在数据中心间提供双向复制通道,以配合业务实现数据双写 DTLE 官方项目: https://github.com/actiontech/dtle 如对源码有兴趣或者需要定制的功能的可以通过源码编译安装。