-
阿里巴巴开源项目:分布式数据库同步系统
otter(
解决中美
异地机房
)
项目背景
阿里巴巴
B2B
公司,因为业务的特性,卖家主要集中在
国内,买家主要集中在国外,所以衍生出了
杭州和美国异地
机房的需求,同时为了提升用户体验,整个机房的架构为双
A
,两边均可写,由此诞生了
otter
这样一个产品。
otter
第一版本可追溯到
04~05
年,此次外部开源的版本
为第
p>
4
版,开发时间从
2011
年
7
月份一直持续到现在,目
前阿里巴巴
B2B
内部的本地
/
异地机房的同步需求基本全上
了
otte4<
/p>
。
目前同步规模:
< br>同步数据量
6
亿
文件同步
1.5TB(2000w
张图片
)
涉及
200+
个数据
库实例之间的同步
80+
台机器的集群规模
项目介绍
名称:
otter ['?t?(r)]
译意:
水獭,数据搬运工
语言:
纯
j
ava
开发
定位:
基于数据库增量日志解析,准
实时同步到本机房或
跨机房的
mysql/oracle
数据库
.
工作原理
原理描述:
1.
基于
Ca
nal
开源产品,获取数据库增量日志数据。
什
么是
Canal,
请点击
2.
典
型管理系统架构,
manager(web
管理
)+node(
工作节
点
)
a.
m
anager
运行时推送同步配置到
node
< br>节点
b.
node
节点将同步状态反馈到
p>
manager
上
3.
基于
zookeeper
,
解决分布式状态调度的,
允许多
node
节点之间协同工作
.
什么是
canal?
otter
p>
之前开源的一个子项目,开源链接地址:
/alibaba/can
al
otter
能解决什么?
1.
异构库同步
a.
mysql ->
mysql/oracle.
(<
/p>
目前开源版本只支持
mysql
增量,<
/p>
目标库可以是
mysql
或者
oracle
,
取决于
c
anal
的功能
)
2.
单机房同步
(
数据库之间
RTT <
1ms)
a.
数据库版本升级
b.
数据表迁移
c.
异步二级索引
3.
跨机房同步
(
比如阿里巴巴国际站就是杭州和美国机房
的数据库同不,<
/p>
RTT > 200ms
,亮点
)
a.
机房容灾
4.
双向同步
a.
避免回环算法
(
通用的解决方案,
支持大部分关系
型数据库
)
b.
数据一致性算法
(
保证双
A
机房模式下,数据保
证最终一致性,
亮点
)
5.
文件同步
a.
站点镜像
(
进行数据复制的同时,
复制关联的图片,
比如复制产品数据,同时复制产品图片
).
单机房复制示意图:
-
-
-
-
-
-
-
-
-
上一篇:【实用】电视台实习日记四篇
下一篇:电视节目解说词的写作