(神州优车)数据交换平台架构分享
(神州优车)数据交换平台架构分享
⼀、数据交换平台定义(百度百科)
数据交换平台是指将分散建设的若⼲应⽤信息系统进⾏整合,通过计算机⽹络构建的信息交换平台,它使若⼲个应⽤⼦系统进⾏信息/数据的传输及共享,提⾼信息资源的利⽤率,成为进⾏信息化建设的基本⽬标,保证分布异构系统之间互联互通,建⽴中⼼数据库,完成数据的抽取、集中、加载、展现,构造统⼀的数据处理和交换。
⼆、Why数据交换平台?
1.分布式的需要
PS:(分布式出现的两个驱动要素:1.业务场景越来越复杂,需要进⾏系统拆分;2.性能的需要)
场景举例⼀:EDA
通过数据交换平台,把数据库Log事件(如Mysql的binlog)发送到MQ,驱动后续流程(如:刷新缓存,构造搜索引擎,业务流程驱动等)
场景举例⼆:CQRS
【命令、查询分离】的思想本质上就是同⼀份数据建⽴两套视图:⼀套是模型清晰的Domain-Mode,代表业务实体,满⾜复杂业务逻辑的需要;另⼀套是查询视图,主要⾯向查询场景,不关⼼数据库范式,只关⼼查询最优最快
2.容灾备份的需要
场景举例⼀:多机房
多中⼼、多备份、异地多活等是很多⼤公司正在实践或者已经实践过的技术难题,这中间的核⼼便是⼀整套完整的数据同步⽅案
场景举例⼆:数据镜像
通过数据交换平台,可以创建各种类型的DB镜像,满⾜不同场景下的使⽤需要
场景举例三:数据归档
通过增量交换,可以实现实时归档
3.异构、重构的需要
场景举例⼀:DB升级换代
通过数据交换平台解决升级过程中的版本兼容性问题
场景举例⼆:资产复⽤
任何⼀个公司都有⼤⼤⼩⼩的各种IT资产,通过数据交换平台,可以实现这些核⼼资产的整合、复⽤
场景举例三:迁库、拆库
系统进⾏重构,业务应⽤要拆分为两个⼦系统,对应的数据库由⼀个拆成两个,需要数据交换平台先进⾏全量Copy,再进⾏增量同步,然后配合系统完成迁移对接,如
出师表原文三、(神州优车)数据交换平台总体架构
总体架构图如下所⽰,整个平台由三个⼦系统组成
ucar_datalink(增量同步⼦系统)
ucar_datalink是优车技术团队⾃研的⼀套数据同步中间件,主要满⾜各异构数据源之间的实时增量同步需求,具有⾼伸缩性、⾼扩展性和⾼性能等优点ucar_dataX(全量同步⼦系统)
ucar_datax是对Alibaba开源的datax进⾏了深度定制和改造,满⾜集团内的全量数据同步需求
Admin(管理监控⼦系统)
管理⼦系统对整个增量和全量集进⾏运维管理,包括:HA、同步申请⾃动处理、延迟监控、异常监控、机器监控等等
四、Datalink产品介绍
Datalink借鉴了数个开源产品的设计
借鉴了Kafka-Connect的基础设施:分组、HA、Rebalance协议、Task模型等
借鉴了Otter的诸多功能模型:领域模型抽象、双向同步、数据压缩合并、数据权重算法等
参与了Linkedin的Databus的⼀些设计思想
1.Datalink的基础设施模型
Manager
整个Datalink集的⼤脑,负载均衡协调器、配置管理、集监控
Group
教师节的名人名言分组是⼀个核⼼逻辑概念,通过分组实现组内⾃治、组间隔离,便于进⾏拆分管理
Worker搞笑网名大全2013最新版的
Worker是Task的运⾏容器,⼀个Worker节点运⾏⼀系列同步任务,Worker归属于某个分组
如何打方向盘Task
数据同步任务实例,由⼀个reader和⾄少⼀个writer组成,归属于某个分组,在⼀个分组内Task通过⼀定的负载均衡策略,被分配到不同的Worker上执⾏Rebalance
Rebalance单位:分组;
Rebalance时机:Manager主备切换、Worker加⼊分组、Worker离开分组、新增Task、删除Task
2.Datalink的领域模型
Contract
针对每种类型的数据库,我们会抽象⼀套契约类型,有了这套契约便可实现Reader和Writer的任意组合
联想台式机型号⽐如我们针对关系型数据库抽象⼀个契约,契约的核⼼类名为RdbEventRecord,代表⼀条数据库log事件变更,围绕这个契约,我们可以开发若⼲插件
如果是Reader插件,这个插件的⼀个核⼼功能就是做数据类型转换,如MysqlReader、SqlserverReader、OracleReader分别会把⾃⼰对应数据库的底层log-event转换如果是Writer插件,需要的是针对每⼀种契约实现⼀个处理器,如HbaseWriter,其主要⽬的是往hbase写数据,但是在不同的Task中,它对接的Reader是随机的,所
Business Model
领域模型借鉴了Aalibaba-Otter的⼀些思想,针对数据同步领域的⼀些常见功能,我们进⾏了深度分析和抽象
* MediaSource:
是对数据源的抽象,所有类型的数据源都会保存到这个模型,神州内部已经⽀持的数据源有 MYSQL, SQLSERVER, ORACLE, HDFS,  HBASE, ELASTICSEARCH, ZO * Media:
是对数据存储单元的抽象,可以是关系型数据库的表、Hbase的表、ElastaicSearch的索引等等
* MediaMapping:
是对数据交换协议的抽象,所有类型的Media之间的数据同步关系都保存到这个模型
* ⽀持的功能
依托这套领域模型,可以实现的⼀些主要功能特性如下所⽰
星座性格分析库别名
表别名
列别名
列⽩名单
列⿊名单
多表合⼀
多表聚合
主键跳过
同步
按权重同步
3.Datalink的插件模型

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。