服务器A
服务器B
服务器C核心服务器S
现在问题是:
在A,B,C上产生的各种数据实时同步到S(S起到将各子服务器数据汇总功能),
然后S再将汇总的数据实时同步到A,B,C,使A,B,C的数据一致。以上功能在下还是没想通是用什么方式来实现较为合适。
想过用MSSQL自带的发布复制等功能来同步,但,做不到“实时”
请大伙们发表一下数据库是:MSSQL 
开发语言:C#

解决方案 »

  1.   

    建议去mssql版问一下老大们。
      

  2.   

    用WEB SERVICE做应该可以实现吧
      

  3.   

    后台使用一个唯一临时数据队列,然后使用BizTalk查询分发数据到多个不同数据库应该也可义。
      

  4.   

    如果处理允许的话,也可义使用一个处理队列然后由Windows服务来访问该队列写不同数据库。
      

  5.   

    ===================参考文献=============================
    sql server 个人版 或 sql server 桌面引擎(MSDE)
    他可以利用数据库系统的内置功能将本地更改的数据传回服务器,检测和解决任何数据冲突,有效处理数据同步过程,这种方式可以节省去开发人员编写解决数据库冲突代码的大部分事件. 面向数据的偶尔连接设计适合于两层应用程序.构成用户界面的 Windows 窗体和客户端的业务逻辑,包括数据库库都在客户端. 当客户端连接后,依靠已定义的数据业务逻辑和传输协议将更改后的数据复制到企业服务器中,同时服务器端更改的数据也会以相反方向同步到客户端.此方法比较适合于小型应用程序,他仅通过内置的数据复制和协调冲突机制,因此,实现的难度相对简单一些,不利之处是必须在客户端部署数据库程序,这样要考虑本地数据库的部署费用.2.面向服务 
     面向服务的方法就是客户端脱机时,将信息存储在消息中或者使用本地 XML 文件.客户端连接后,脱机时保存的在消息队列中的消息将被发送到服务器进行处理.如果采用XML 文件,应用程序将通过调用 WEB 服务,把客户端脱机后更改的数据同步到服务器端面向服务的方法和面向数据的方法最大的不同就是将业务逻辑都放在服务器端.
    因此,面向服务的方法不需要在客户端部署本地关系型数据库,可以实现独立的版本控制和部署,当出现数据冲突时,可以获得最大的控制灵活性,同时也意味着开发人员需要编写代码实现数据协调.面向服务方法主要用于企业级N 层应用程序的开发.系统 执行脱机功能后: 会按如下步骤处理:
    (1) 应用程序会把处于内存中的 DataSet 保存到本地硬盘,保存的文件基于 XML 文档格式,数据的内容将是最后脱机前的状态
    (2) 程序将一个表示是否脱机的变量设为假,以后数据发生更改时,应用程序将更改数据保存到 DataSet 中,更改的数据行被标为已更改状态
    (3) 更新应用程序界面以反映当前处于脱机状态.如果用户在脱机模式下退出应用程序,系统将已更改的 DataSet保存到磁盘一个单独的 XML 文件中.客户端用户恢复联机状态后,将把已更改的数据发送给数据 WEB 服务, WEB 服务处理每一个更改,最后把结果发送给客户端..
    ====================
    根据你 描述的 用 第2 中方法 比较合适
    ========数据冲突处理 :
    保守 式并发 会使数据一值 处于锁定状态.能够最高程度的保证输据的完整性.但是可用性底.
    大部分 解决方案不会采用这种方式..
    开放式并发是 数据冲突 处理的最好方式........实现开放式并发 依靠数据集 DataSet 的功能.