我的客户是一家金融服务提供商,他们的软件部署在500多个客户端。
他们的应用程序是用C#编写的,并使用SQL Server作为数据库后端。他们希望从所有客户数据库中收集数据,并将少量数据发送回客户端。有几个要求:
数据同步是针对500多个客户端,在7个不同版本的软件中有7个略有不同的数据库模式
随着时间的推移,可能会有新版本的软件具有不同的模式,等待更新此数据同步机制无法延迟。基本上,数据同步需要灵活,以支持任何架构并从中央位置进行控制,而不是将其更改与应用程序的发布相关联
需要在.Net中编写,因为他们的所有软件都在Windows上运行
可以有一个特殊的数据同步客户端部署在一起,可以访问每个客户端SQL Server数据库 - 但不保证经常更新客户端。
是否已有一个框架(Microsoft Sync Framework除了使用数据库上的触发器),这有助于开发此数据同步系统?
是否有任何关于多租户系统或数据同步的好书/文章可以为如何创建这样的系统提供一些好处?
答案 0 :(得分:3)
不确定是否存在除了同步之外的现有框架,我暂时有类似的要求,但由于我没有使用mssql,因此无法使用MS Sync。
这就是我所做的,一些自定义代码,
对模式更改进行一些假设意味着
您可以使用以下属性
创建架构历史记录表然后,所有需要同步的表都有一个日期更改和最后更改的用户属性,例如
同步时,
将每个表与同步的最后更改日期与架构进行比较 表格的每个表格的最后同步日期
如果更改日期>同步日期和user = client =>同步到服务器(更新或插入)
如果你想复制它,还可以查看ms同步概念http://msdn.microsoft.com/en-us/sync/bb821992.aspx。