80+台机器的集群规模
称号:otter[\’tr]
译意:水獭,数据搬运工
说话:纯java开辟
定位:基于数据库增量日志剖析,准实时同步到本机房或跨机房的mysql/oracl数据库.
情理描写:
失掉数据库增量日志数据。甚么是Canal,1.基于Canal开源产物。请点击
managweb经管)+node使命节点)2.典型管理系统架构。
a.manag运行时推送同步配置到node节点
b.node节点将同步状态反应到manag上
3.基于zookeep处置惩罚漫衍式状态调度的允许多node节点之间协同任务.
开源链接地址:http://github.com/alibaba/canaotter之前开源的一个子项目。l
1.异构库同步
目标库可以是mysql或oracl取决于canal功效)a.mysql->mysql/oracle.目前开源版本只支持mysql增量。
2.单机房同步 数据库之间RTT<1m
a.数据库版本进级
b.数据表迁移
c.异步二级索引
RTT>200m亮点3.跨机房同步 比如阿里巴巴国际站就是杭州和美国机房的数据库同不。
a.机房容灾
4.双向同步
支撑大部分接洽型数据库)a.预防回环算法 通用的处置惩罚计划。
数据保证最终不合性,b.数据不合性算法 保证双A机房情势下。亮点
5.文件同步
复制联系关系的图片,a.站点镜像 履行数据复制的同时。比如复制产品数据,同时复制产品图片).
申明:
更快的履行数据同步.封闭nodeloadBalanc算法,a.数据on-Fli只管即便不落地。若是Node节点S+ETL落在分歧的Node上,数据会有个搜集传输历程)
b.node节点可以或许有failov/loadBalancer.
申明:
S/E/T/L几个阶段会分散在2个或者更多Node节点上,a.数据涉及搜集传输。多个Node之间经由过程zookeep履行协同任务 个别是Select和Extract一个机房的NodeTransform/Load落在另一个机房的Node
都可以是集群,b.node节点可以或许有failov/loadBalancer.每个机房的Node节点。一台或者多台机器)
Pipelin从源端到目标端的全数过程描写,重要由一些同步照射过程构成
Channel同步通道,单向同步中一个Pipelin构成,双向同步中有两个Pipelin构成
DateMediaPair遵照停业表定义照射联系,比如源表和目标表,字段映射,字段组等
DateMedia:形象的数据介质观点,可以或许了解为数据表/mq队列界说
DateMediaSourc:形象的数据介质源信息,补充描写DateMedia
ColumnPair:定义字段映射关系
ColumnGroup:定义字段映射组
Node:处理同步历程的使命节点,对应一个jvm
申明:为了更好的支撑体系的扩张性和灵活性,将全数同步流程抽象为Select/Extract/Transform/Load这么4个阶段.
Select阶段:为处置惩罚数据来历的不同性,比如接入canal失掉增量数据,也可以或许接入其他系统失掉其他数据等。
Extract/Transform/Load阶段:类似于数据仓库的ETL模子,具体可为数据join数据转化,数据Load
Otter调整模子
Otter数据入库算法
Otter双向回环控制
Otter数据不合性
Otter高可用性
Otter扩张性
Seethepageforquickstart:QuickStart.
Seethepageforadmindeploiguid:A dminGuide