在开发一大型应用系统,系统为省、市、县三级架构,各级单位单独部署一套系统,通过网络互联和系统通讯功能实现系统间互联互访,形成一个三级架构的分布式资源平台。
   现有某一资源(数据)准备统一放在省级管理,然后各下级分别往自己上级同步各自相关的资源,形如:省级<--市级<--县级,  考虑数据量大,可能同步需要分批同步,中间考虑用个表记录。
   以上问题目前鄙人在考虑webservic,MQ,可总觉得不是很好,可能是我对这两技术掌握的不是很好,也可能真有比这两个更好的方案,请高人请指点一下有没有别的可行方案,或就我说的两个技术指点下具体可行方案,感谢不尽!
              本人结帐率100%,尽可放心,当然高手也是不在乎这个,哈哈。

解决方案 »

  1.   

    数据库需要实时同步吗?非实时的话可以考虑夜间做批处理
    实时的话(不知道数据量多大),MQ,JMS等都可以,也可以考虑用个中间服务器做数据缓存
      

  2.   


    目前上面要求通过APP实现,客户也喜欢这种方式,说是看着有个东西在那里。
      

  3.   


    其实数据说大也不大,几十万的数据,分到下级各部的话,也就几万的数据吧。
    目前中间服务器就没得考虑了,做不起来,资源有限。
    MQ,JMS 和 单用webservice,那个更好?
      

  4.   


    LZ可以参考以下链接的文章
    http://blog.csdn.net/uestcong/article/details/6626180
      

  5.   

    我们用的是webservice,没用过MQ,JMS.不知道那个好不好,感觉webservice挺好用的
      

  6.   

    使用webservice+数据文件调用webservice后将数据导出为数据文件。
    另一方通过webservice返回的文件名进行导入。
      

  7.   


    我个人感觉小量数据,发发消息什么webservice挺好, 但大量数据的同步不怎么靠谱。
    不知道兄台在并发流量大的时候怎么考虑的,比如在系统用户访问量大的时候有没有一些相关的措施
      

  8.   

    从项目实施经验而言,并不建议直接纯粹依靠应用来做这种数据同步,因为很容易就会陷入分布式事务控制问题。建议:
    1、用数据复制工具,如GoldenGate、Datastage、SharePlex等;
    2、数据库之间建立DBLink,对所需同步的表建同义词,这样程序就不必操心跨库访问的问题,跨库操作下推给数据库来负责了;
    3、如果你确实因为某些愿意必须用纯应用手段做数据复制,那么对于增量复制的控制要做好处理,也就是确认清楚每次成功复制到什么位置了。模型一般是:
    复制源,部署Client端;复制目标,部署Server端;
    Client负责将数据打包,比如50~100条,然后通过EJB或其它服务接口调用Server端,将打包的数据传送给Server端;
    然后Server端对打包数据进行校验,然后拆包批量写入(检查重复),完成后返回成功提示给Client端;
    Client端更新复制进度(下次复制就不会重复复制已经复制的内容了)。如果想将上述模型修改为基于消息的,比如JMS或MQ,道理也差不多。主要难度是处理增量问题。比如记录复制时间戳、流水号、复制标志位等。