关于两系统之间数据同步问题
存在两系统A和B,当要把A系统上的数据同步给B系统时,采用A主动推送给B的方式,该由哪一方先提供数据接口?
若B拉取A的数据,又该由哪一方提供接口?
a主动推送b,b提供接口,a来调用;
A同步给B,那就需要B提供接口让A去调用。
B拉取A的数据,A就需要提供接口让B去调用。
或者使用MQ,发布与订阅的形式
如果两个系统要通信,需要两个系统协商确定接口,接口由谁来提供其实没有严格的规定。一般在做系统设计的时候,都会考虑扩展性和交互性,接口一般都会提供出来。
如果一定要区分的话,从工作划分的角度出发,遵守“谁提出需求,就由谁提供接口”的原则。一般来说:
对于推送类:谁推送数据,就由谁提供接口
对于拉取类:谁需要数据,就由谁提供接口
这没有什么先后
A要推送给B,那么B要提供接口
B要去A那拉取,那么A要提供接口
你也可以使用第三方接口,比如A先把数据推给redis,B再去redis里消费
大量数据物理同步最巴适
A自动推送给B,B提供接口;
谁主动,被动的先提供,
这中方式存在一种调用接口时传输一半出现问题,这样数据就会有丢失,得考虑如何避免这种情况;
同步有多种方式:
1.主动推送方式-接口方式(A推B。A调用B接口)
2.B定时调用A的接口进行同步
3.主动推送方式-采用中间件,如:redis、kafka等,A主动推送到中间件中。B在到中间件去消费,
每个方式都有优缺点,看楼主自己选择
双方都要写接口的呀
A推B,A要写推送接口,B要写接收接口
B拉A,A要写提供拉取功能的接口,B要写拉取接口
接口标准的话就是谁掏钱谁说的算
可以使用注册中心的方式,使用的时候都从注册中心拿取,