系统间数据同步

对于不同系统之间的数据同步,业界通常有四种方式来进行数据交互,本篇文章就来聊一聊这四种数据交互方式

共享文件

  • 共享目录:可以是同台机器内的硬盘目录或者是挂载一个共享存储。在系统之间同步数据是非常简单,对共享存储中的文件读写就可以了
  • FTP 或者对象存储:不同系统间的批量文件往往用此方式实现,比如银行的批量回盘文件。数据量比较大的情况下大多采用此种方式,这种方式缺点就是不能实时,做个通知接口做到准实时性
  • zookeeper:zk 是基于文件的,可以同步简单数据,大数据量不太合适

接口

接口可以实时进行数据的交互

  • HTTP 接口:这种接口是使用最多的,SpringCloud 所支持的,也是多个已购系统间采用的同步方式。使用方式,可以推送或拉取
  • RPC 方式:微服务的新起,诞生了很多 RPC 框架,也可以说是 RPC 框架促进了微服务的进步。比较流行的 RPC 框架有 Dubbo,gRPC,Thrift 等

消息队列

常用的 MQ 消息队列,在收集日志或者多个系统间准实时同步,优点是系统间解耦,削峰,易扩展等特点

数据库

同步结构化的数据可以采用数据库的形式,比如一个做批量的服务专门计算或统计业务数据,统计结果写入一个库,业务系统需要的时候直接从这个库读取即可

数据库同步的方式我理解大多数的单向少数几个系统间的同步。也可以多个系统间使用,比如用数据库的方式生成唯一 ID,多个系统共享使用