不同系统之间的数据同步
企业内部的系统多了,系统之间数据同步共享是避免不了的,今天就聊聊系统之间数据同步的方式。
文件形式
用文件方式同步多个系统之间的数据也是常用的方式,实现起来简单,有几种形式:
- 共享目录:可以是同台机器内的硬盘目录或者是挂载一个共享存储。在系统之间同步数据是非常简单,对共享存储中的文件读写就可以了。
- FTP或者对象存储:不同系统间的批量文件往往用此方式实现,比如银行的批量回盘文件。数据量比较大的情况下大多采用此种方式,这种方式一个缺点就是不能实时,做个通知接口可以做到准实时性。
- zookeeper:zk是基于文件的,可以同步简单数据,大数据量不太合适。
数据库同步
同步结构化的数据可以采用数据库的形式,比如一个做批量的服务专门计算或统计业务数据,统计结果写入一个库,业务系统需要的时候直接从这个库读取即可。
数据库同步的方式我理解大多数是单向少数几个系统间的同步。也可以多个系统间使用,比如用数据库的方式生成唯一ID,多个系统共享使用。
实时接口形式
实时接口应该是最常用的方式,
- HTTP接口:这种接口是使用最多的,Spring cloud所支持的,也是多个异构系统间所采用的同步方式。使用方式,可以用推送或者拉取。
- RPC方式:微服务的兴起,诞生了很多RPC框架,也可以说RPC框架促进了微服务的进步。比较流行的RPC框架有Dubbo、gRPC、Thrift、Motan等。
- CS方式:客户端-服务器方式,很多APP就是这种方式,比如聊天软件。很多中间件集群的数据同步也是这样做的。其实HTTP或者RPC底层数据传输也是这种方式。
准实时接口形式
常用的就是MQ消息队列,在收集日志或者多个系统间的准实时同步,优点就是系统解耦。
分布式缓存
现在流行的redis或者memcached就是存储共享的缓存数据,也可以是数据共享的方式。
系统同步共享