zoukankan      html  css  js  c++  java
  • 接口设计与数据同步解决方案小结

        接口设计方面: 

        在做项目过程中,对于一个Web平台性的系统来说,往往需要为其他程序开放系统接口,即是以自己做的系统为平台,允许第三方的程序接入。需要和第三方的程序数据打交道,需要第三方程序通过调用web平台接口来传递数据。

        这样对于Web平台来说,开放给第三方程序的接口设计方面有些值得注意的地方:

          将第三方传递过来的数据,最好不要直接与系统本身的数据一起处理。换句话说,最好将第三方传入的数据放到一张临时表里,系统通过定时任务去从临时表中将传入数据转换为系统数据。这样做的好处在于:

         1.第三方传入数据不会因为接口调用的失败或异常而扰乱系统已有的数据;

         2.对于接口调用方来说,减少了接口处理数据的复杂性,可以大大提高接口的调用成功率;

         同步接口里的方法,建议将添加和修改统一为一个方法,通过传入系统主键来判断:有记录则更新,无记录则添加。


         数据同步方面:

         通过项目间的系统数据同步实战,总结出一个比较好的解决方案:

         当两个系统间要做数据同步时,可以这样设计:比如系统A和系统B,当数据从系统A到系统B时,

          1.系统A通过定时任务来调用系统B的接口;

          2.系统B接受到系统A的请求后,处理请求,但可以不做任何接口回复;

          3.系统A调用接口后,只要接口调用不出现异常,即可认为接口调用成功。也行您已经想到:这样对于系统A来说,接口调用后,无法收到任何回调信息,就无法确认数据是否被同步成功的。请接着看下一步。

          4.系统B在下一定时任务启动时,将上一次接受到的数据对象返回给系统A;

          5.系统A通过对返回对象信息进行判断,如果有记录则更新同步状态。这样的前提是,两个系统要相互保存两个系统的数据主键。


  • 相关阅读:
    网络虚拟化技术(二): TUN/TAP MACVLAN MACVTAP (转)
    利用Linux信号SIGUSR1调试程序
    hugepage优势
    Linux top命令中CPU信息的详解(转)
    如何快速学好Shell脚本? 转
    转:基于TLS1.3的微信安全通信协议mmtls介绍
    docker 支持ipv6 (核心要点是ndp需要把docker内的ip全部加入到ndplist中来)
    老毛子 Padavan 路由器固件开启教育网 IPv6 并实现IPv6转发
    Centos Firefox中文乱码
    浅析AnyCast网络技术
  • 原文地址:https://www.cnblogs.com/zhangqs008/p/2498382.html
Copyright © 2011-2022 走看看