DataLink

Project Url: ucarGroup/DataLink
Introduction: DataLink 是一个满足各种异构数据源之间的实时增量同步、离线全量同步,分布式、可扩展的数据交换平台。
More: Author   ReportBugs   
Tags:
Link-

DataLink 是一个满足各种异构数据源之间的实时增量同步、离线全量同步,分布式、可扩展的数据交换平台。

项目背景

着眼于未来,我们的目标是打造一个平台,满足各种异构数据源之间的实时增量同步和离线全量同步,支撑公司业务的快速发展。在充分调研的基础之上,我们发现,没有任何一款开源产品能轻易的满足我们的目标,每个产品都有其明显的短板和局限性,所以最终的选项只有"自行设计"。但自行设计并不是凭空设计,现有的数据交换平台、已有的经验、大大小小的开源产品都是我们的设计根基,与其说是自行设计,倒不如说是站在巨人的肩膀上做了一次飞跃。由此诞生了 DataLink 这样一个产品:

  • 满足各种异构数据源之间的实时增量同步和离线全量同步
  • 平台提供统一的基础设施(高可用、动态负载、同步任务管理、插件管理、监控报警、公用业务组件等等),让设计人员专注于同步插件开发,一次投入,长久受益
  • 吸收、整合业内经验,在架构模型、设计方法论、功能特性、可运维、易用性上进行全面的升级,在前瞻性和扩展性上下足功夫,满足未来 5-10 年内的各种同步需求

DataLink 开发时间从 2016 年 12 月开始,第一版于 2017 年 5 月份上线,在神州优车集团服役到现在,基本上满足了公司所有业务线的同步需求。此次外部开源版本为去除内部依赖后的版本。

内部使用情况

  • 支持了神州优车和瑞幸咖啡的核心业务运行
  • 涉及 500 多个数据库实例之间的 6000+个同步映射
  • 100 台 Worker+2 台 Manager 机器的集群规模
  • 日均数据同步量 TB 级

    当前规划

    整合业内更多的产品经验,打造一个全新的平台,功能丰富程度、扩展性、标准化层面更上一层楼

    相关文章

    神州优车数据交换平台的架构、建设与痛点难点详解
    https://mp.weixin.qq.com/s/BVuDbS-2Ra5pIJ7oV78FBA
    (神州优车)大数据平台建设经验分享
    https://www.cnblogs.com/ucarinc/p/12091053.html

    总体架构

    总体架构

    工作原理(增量)

    基础架构
  • 典型 Master-Slave 式系统架构,Manager(Web 管理)+Worker(工作节点)
    a. Manager 负责 worker 的负载均衡、集群的配置管理和系统监控
    b. Worker 核心功能是管理 Task 的生命周期,并配合 Manager 进行 Re-Balance
  • Zookeeper:Manager 的高可用需要依赖于 Zookeeper,另外,Task 会将运行时信息注册到 Zookeeper
  • Mysql:Datalink 的运行需要依赖各种配置信息、以及在运行过程中会动态产生监控和统计数据,统一保存到 Mysql 中

    QuickStart

    See the page for quick start: QuickStart

    架构&文档

    See the page for introduction: 架构&文档

    常见问题

    See the page for FAQ: FAQ

    类似开源

    canal:http://github.com/alibaba/canal
    otter:https://github.com/alibaba/otter
    Kafka-Connect:https://github.com/apache/kafka
    DataBus:https://github.com/linkedin/databus

    版本历史

    当前最新版本为 1.0.2-beta,版本发布历史如下:
    https://github.com/ucarGroup/DataLink/releases/

    问题反馈

    目前有关 DataLink 的问题交流方式有如下几种,欢迎各位加入进行技术讨论。
    qq 交流群: 758937055
    邮件交流: tech_plat_data@ucarinc.com
    报告 issue:issues
    
    
Apps
About Me
GitHub: Trinea
Facebook: Dev Tools