与服务器同步多个客户端的最佳方法

问题描述:

我正在研究将在5台不同机器上运行的应用程序。每台机器的数据将存储在同一台机器上。我必须将所有机器的数据与中央数据库同步。我无法找到这个问题的答案:什么是最好的方法呢?与服务器同步多个客户端的最佳方法

  1. 在每台机器上日程SQL作业将同步数据与中央服务器
  2. 服务器将请求每台机器同步的数据

利弊请咨询。

您可以配置SQL Server使用复制和发布副本到每个5台机器的。

你,如果你需要在所有计算机上的所有变化,如果是你需要合并复制来评价,他们还有其他的结构和选项,如过滤器,只在你的远程计算机的具体数据。

微软已经解决了这个问题你 - 他们已经开发了Sync framework。我在4年前就使用了这个版本,这很好 - 但正如@Juan在他的评论中所说的那样,它现在不再被微软积极开发,开源版本似乎很安静。

有两个明显的选择。

可以使用(合并)的复制,如果你想解决这个作为一个数据库的问题。这是最简单的解决方案 - 复制只是将数据从客户端复制到目标数据库,而Microsoft则处理所有调度,冲突解决等。

但是,客户端之间通常存在一些数据或业务逻辑 - 常见的问题是您的客户端之间的主键或查找值之间可能存在冲突。例如,如果使用整数作为主键,并且机器1和机器2都将“1000”指定为“销售”表中的记录的主键,则复制变得非常棘手。 另一种常见的情况是,必须强制执行一些业务逻辑,这在单台机器上很简单,但在处理偶尔连接的多台机器时很难。例如,如果客户下订单,应用程序可能要检查总订单价值是否不超过客户的信用额度 - 但如果另一客户有另一个待处理交易,该怎么办?

在这种情况下,你可能要创建一个面向服务的同步设计。 微软为此提供了WCF。虽然更灵活,但实施起来可能要多得多。在此模型中,您可能将客户端上的本地数据库视为缓存,并将消息推送到中央计算机以反映用户交互。

+0

这个框架将不再更新,我几年前使用和它的作品,但它是非常困难的工作原理,并更新第一准备后的数据库架构。使用sql配置工具进行复制是一个更强大的选项。 – Juan