我们正在考虑在我们自己的系统上托pipe客户端的数据,并使用MS Sync Framework在每个客户端的站点上使用SQL Server实例复制数据。 每个客户平均可能有大约500MB的数据,可能有多达1000个客户端站点,所以我们总共有大约500GB的数据。 数据更改将需要在两个方向上进行复制。
有没有人试图用这个客户端数量的分布式系统? 有没有实际的限制?
我已经参与了一个项目,使用同步框架来同步运行SQL Express 2008的远程站点 – 一些在广域网上,一些在ADSL上(最初有些甚至在拨号上,虽然已经升级到3G无线调制解调器)到一个中央SQL Server。
在这个客户的接近尾声的时候,我们没有扩大到1000个,大概只有60-80个。 我们发现同步框架相当可靠。 当我们使用SQL Server的更改跟踪function时,我们遇到的唯一问题是一些奇怪的行为。
我们注意到,偶尔我们会“错过”数据变更集,而当我们能够以可重复的方式重现这一点,并与Microsoft PSS联系时,这是公平的方式。
最后,他们证实,有时候SQL Change Tracking会将更新报告为删除/插入,这完全混淆了Sync Framework。 面对这一点,我们不得不求助于使用触发器来推出我们自己的变更追踪实现。 这certificate是有益的,因为a)它实际上正常工作,b)我们对logging和审核变更有更多的控制。
此应用程序是使用Sync Framework 1.0版编写的,这意味着我们的团队必须为客户端调整自定义提供程序。 现在v2.0自带了SqlSyncProvider,所以不用担心。
另一件要考虑的事情是使用直接的SQL连接还是利用WCF提供者支持。 如果你的客户端网站通过互联网访问主服务器,那么WCF可能就是这样 – 那么你可以根据需要添加安全/encryption。 你甚至可以考虑优化WCF传输层来包含某种压缩。
使用Wireshark来比较networking使用情况可能是值得的,如果你也是这样的话。 最好有一个想法前面你的带宽要求是什么!
戴夫