博客
关于我
初试DTLE-单向-聚合-分散复制
阅读量:596 次
发布时间:2019-03-09

本文共 3074 字,大约阅读时间需要 10 分钟。

环境准备

以下是环境信息:

主机名 IP地址 部署服务
study01 10.186.65.68 DTLE、MySQL
study02 10.186.65.71 DTLE、MySQL
study03 10.186.65.72 DTLE、MySQL

DTLE概述

DTLE 是上海爱可⽣信息技术股份有限公司 开发并开源的 CDC 工具。其主要功能包括:

  • 数据传输模式:支持链路压缩、同构传输、异构传输以及跨⽹络边际传输。
  • 数据处理模式:支持库/表/⾏级别的数据过滤。
  • 数据通道模式:支持多对多的数据传输和回环传输。
  • 源/目标模式:支持MySQL-MySQL、MySQL-Kafka的数据传输。
  • 集群模式:提供可靠的元数据存储、支持任务分配和故障转移。

单向复制/聚合/分散

DTLE 支持以下复制场景:

  • 按数据源/数据目标划分

    • 支持1个源端到1个目标端的单向复制。
    • 支持多个源端到1个目标端的聚合复制。
    • 支持1个源端到多个目标端的分散复制。
  • 按网络类型划分

    • 支持网络内部数据传输(如LAN)。
    • 支持跨网络数据传输,可使用链路压缩或链路限流等优化技术。
  • 按集群规模划分

    • 单实例处理单数据通道。
    • 集群处理多数据通道。

DTLE单项复制

以下是部署DTLE并实现单项复制的详细步骤。

1. 下载DTLE安装包

访问DTLE官方GitHub发布页面下载最新版本的RPM安装包:

https://github.com/actiontech/dtle/releases

2. 安装RPM包

使用以下命令安装:

[root@study01 ~]# rpm -ivh dtle-3.21.03.0.x86_64.rpm --prefix=/data/dtle

3. 配置Consul和Nomad

  • Consul配置文件(默认路径:/etc/dtle/consul.hcl):

    [root@study01 dtle]# cat consul.hclnode_name = "consul0"data_dir = "/data/dtle/var/lib/consul"bind_addr = "0.0.0.0"client_addr = "10.186.65.68"ports {  server = 8300  http = 8500}
  • Nomad配置文件(默认路径:/etc/dtle/nomad.hcl):

    [root@study01 dtle]# cat nomad.hclname = "nomad0"datacenter = "dc1"data_dir = "/data/dtle/var/lib/nomad"log_level = "Info"bind_addr = "0.0.0.0"ports {  http = 4646  rpc = 4647  serf = 4648}

4. 启动Consul和Nomad服务

使用 systemctl 启动服务:

systemctl restart dtle-consul.servicesystemctl restart dtle-nomad.service

可以使用以下命令查看服务状态:

ps -ef | grep dtle

5. 登录Consul和Nomad Web界面

  • Consul:http://10.186.65.68:8500
  • Nomad:http://10.186.65.68:4646

6. 在源端数据库创建测试库和表

mysql> create database test;mysql> use test;mysql> create table t1 (id int primary key);mysql> insert into t1 values(1), (2), (3);

创建DTLE Job

以下步骤将创建一个简单的DTLE Job进行数据复制。

1. 创建Job的JSON文件

{  "Job": {    "ID": "job1",    "Datacenters": ["dc1"],    "TaskGroups": [      {        "Name": "src",        "Tasks": [          {            "Name": "src",            "Driver": "dtle",            "Config": {              "Gtid": "test-gtid",              "ReplicateDoDb": [                {                  "TableSchema": "test",                  "Tables": [                    {                      "TableName": "t1"                    }                  ]                }              ],              "ConnectionConfig": {                "Host": "10.186.65.68",                "Port": 3333,                "User": "test",                "Password": "test"              }            }          }        ]      },      {        "Name": "dest",        "Tasks": [          {            "Name": "dest",            "Driver": "dtle",            "Config": {              "ConnectionConfig": {                "Host": "10.186.65.72",                "Port": 4444,                "User": "test",                "Password": "test"              }            }          }        ]      }    ]  }}

2. Using curl 创建Job

[root@study01 dtle]# curl -X POST "http://10.186.65.68:4646/v1/jobs" -d @job.json -s | jq

3. 查看Job状态

[root@study01 dtle]# curl -X GET "http://10.186.65.68:4646/v1/job/job1" -s | jq .Status

4. 验证目标端数据

mysql> use test;mysql> select * from test.t1;

故事结尾

通过以上步骤,我们成功部署了DTLE并实现了源端到目标端的数据复制。未来可以根据实际 requirements扩展DTLE的使用场景,例如支持更复杂的数据传输模式或集群部署。

转载地址:http://vlopz.baihongyu.com/

你可能感兴趣的文章
Objective-C实现有序表查找算法(附完整源码)
查看>>
Objective-C实现有限状态机(附完整源码)
查看>>
Objective-C实现有限状态自动机FSM(附完整源码)
查看>>
Objective-C实现有限集上给定关系的自反关系矩阵和对称闭包关系矩阵(附完整源码)
查看>>
Objective-C实现服务程序自启动(附完整源码)
查看>>
Objective-C实现服务端客户端聊天室(附完整源码)
查看>>
Objective-C实现朴素贝叶斯算法(附完整源码)
查看>>
Objective-C实现杨氏3X3矩阵(附完整源码)
查看>>
Objective-C实现杰卡德距离算法(附完整源码)
查看>>
Objective-C实现极值距离算法(附完整源码)
查看>>
Objective-C实现极小极大算法(附完整源码)
查看>>
Objective-C实现构造n以内的素数表(附完整源码)
查看>>
Objective-C实现某文件夹下文件重命名(附完整源码)
查看>>
Objective-C实现查找second Largest Element第二大元素算法(附完整源码)
查看>>
Objective-C实现查找整数数组中给定的最小数字算法(附完整源码)
查看>>
Objective-C实现查找给定节点数的树中可能的二叉搜索树的数量树算法(附完整源码)
查看>>
Objective-C实现查找链表的中间元素算法(附完整源码)
查看>>
Objective-C实现样条插值(附完整源码)
查看>>
Objective-C实现根据cpu和磁盘序列号生成注册码( 附完整源码)
查看>>
Objective-C实现格雷码序列算法(附完整源码)
查看>>