一个系统给另外一个系统推送注册的数据,保证两个系统的注册数据保持一致,是用 Ajax 推送吗? [ 2.0 版本 ]
一个系统给另外一个系统推送注册的数据,保证两个系统的注册数据保持一致,是用 Ajax 推送吗?还是使用 PHP 的 curl 推送?
共 2 个回答
-
无论ajax也好,curl也好都可以实现你说的功能,当然如果不得不两个系统通过接口继续数据同步,还是使用curl比较好,当然也可以使用ftp,sql日志比对等等类似的设计。但是功能开发出现了就真的完成了么?当然你可以说的我的数据更新频率很低,我只要满足今天的数据明天能更新过来就行了 或者哪怕手动点击也可以! 好吧,能满足业务需求的程序就是好程序。 如果真是这样,那这个问题我们就不用在深入去聊了!
好 废话不多说,先说说你这种设计模式的弊端:
1、无论是curl也好 ajax(还得处理跨域的问题)也好,都有一个最大的问题是无法保证数据的及时更新,也就是说你必须增加一个轮询 或者 消息通知 或者使用观察者才能表面上解决数据及时更新的问题。
2、你推送给对方的数据,如果对方接收不到呢? 或者对方接收到了,因为对方接口的问题,导致数据没有完全同步呢? 难道你再增加一个调度器? 对失败的数据,经过两人比对失败原因,然后一条条的处理? 想想都很烦呐有没有?
3、上边都是扯淡的,疑问一大堆问题倒是没解决! 好吧,上终极方案,使用系统中间件!
系统中间件的好处在于,对于数据的维护和处理都是一套逻辑,你要新增 更新 删除 好你必须得经过中间件的认可,然后由中间件去共同维护同一套数据,有点跟微服务类似的意思啦 哈哈。。 数据的存储和对接可以考虑redis ,当然如果用mysql的话 就数据而言就相当于两套系统都要分库分表了。 举个栗子 微信授权中间件 数据由微信独立维护,有再多的系统,你只管对接中间件就行了。
PHP学院的中学生
注册时间:2018-10-23
最后登录:2024-09-23
在线时长:168小时13分
最后登录:2024-09-23
在线时长:168小时13分
- 粉丝29
- 金钱4725
- 威望30
- 积分6705