让我解释一下我的项目的场景:
在系统架构中,节点多,中间服务器少,主服务器一台。
问题描述:
为了简化场景,我不解释中间服务器。常见的情况是假设系统中有 n 个节点(Node#1、Node#2、...、Node#n)和 1 个服务器(Server#1)。大多数本地输入将在节点级别完成,主要配置将在服务器级别完成。现在所有节点都应该将自己的数据同步到服务器(即上传),同时,它们应该从服务器下载其他节点的数据。因此,在所有节点和服务器上的同步过程数据将相同。有可能在同步的时候,任何一个节点都处于离线状态,所以这个节点在线时会从服务器上传和下载数据。
我的团队的解决方案:
我的团队建议使用 Microsoft 的同步框架 2.1。我们为概念验证创建了一个示例应用程序。该示例有一台服务器和一个节点,我们用数据填充服务器,就好像它来自节点#2 并将其与节点#1 同步,同步和冲突得到了正确解决。请注意,我们已经处理了主键和冲突。
我们目前看到的问题如下:
- 在服务器和所有节点之间成功同步后,我们应该删除/清空跟踪表条目,否则表大小将呈指数增长。同步成功后,所有节点都将清除其跟踪表,只有当所有节点都同步时,服务器才会清除跟踪表,否则将保留这些表。当服务器有跟踪表条目并且节点已清除表时,同步框架将再次尝试同步所有节点,这将导致重复条目。