1
Features 2022-11-02 21:11:31 +08:00
这种不叫一主多从吧?
一主多从应该是通过二进制日志对数据库进行主从复制,核心是要保持主从数据一致的 你这个每个数据库都不一样的,不能这么说吧? 这种应该是多个不同业务数据库之间的数据传输,如果不是很频繁,用 Rest 接口没有问题啊? 更新很频繁的话,淘宝天猫阿里妈妈的聚石塔的数据同步方案是这样的: 开发者通过在聚石塔购买一个 RDS mysql ,聚石塔那边就会定时把订单和用户数据同步到这个 RDS mysql 中 这个可能是 OP 你要的,但是这种同步是单向的,只能通过增加外键的方式修改订单状态 |
2
totoro52 2022-11-02 21:25:01 +08:00
不引入 mq 的话,单纯靠 rest 接口方式显得很低效
binglog 的话可以试试阿里开源的 canal ,这个可以将消息推送到 MQ 里,也可以部署多个消费者,让每个下级单位去消费信息。 |
3
Ecoli2 OP @Features 表字段很多,而且一次要同步好多表,虽然是当日的增量数据,但还是怕数据太大,接口无法承载;而且是多个客户端,想看看有无现成方案,包括多线程和事务等的处理自己水平不大够,还是要借鉴一下
|
5
Features 2022-11-02 21:44:05 +08:00
@Ecoli2 你是担心数据量大了无法保证数据的完整性吗?
我听你意思,每天只要同步一次? 如果是这样的话,MQ 也是一样的,主要是同步的时候数据量太大,会崩溃报错吧? 如果用 MQ ,你还要维护队列的问题,增加了运维成本 如果 Rest 接口可以保证数据的完整性,那你这边应该问题不大啊? 先把返回的数据存到本地,排除了网络 I/O 超时出错的问题 你这个就是纯纯的本地事务了 开启事务执行程序输入 SQL 就好了,慢一点而已 |
6
seers 2022-11-02 22:37:41 +08:00
dump 出来让他们自己导,失败了自己找问题去
|
7
totoro52 2022-11-02 22:59:09 +08:00
@Ecoli2 你完全可以用 canal 监听 binlog ,然后自己消费信息,canal 可以自写 client 进行逻辑消费,你在这里面进行一个 rest 推送即可,至于是否同步成功就要做回调处理,人肉补偿
反正我觉得你这个需求用 canal 来做完全没问题,本身 canal 的设计就是采用 server-client 的方式,可以多个 client 同时消费。 |
9
7911364440 2022-11-03 09:33:41 +08:00
我公司也有类似的场景,用的方案是上级系统定时生成数据文件,下级系统自己下载解析
|
12
5boy 2022-11-03 16:27:19 +08:00
能够允许多少延迟呢?
|
13
acidlychee 2022-11-03 22:15:13 +08:00 via iPhone
ETL 这类工具能用吗
|