【问题标题】:cloud based synchronization architecture基于云的同步架构
【发布时间】:2011-07-14 09:12:38
【问题描述】:

我正在考虑构建一个基于云的同步解决方案(类似于 Dropbox):

  1. 健壮的架构是什么样的?

  2. 您需要哪些技术来支持不同的平台 像 windows、mac、linux 和移动设备?

  3. 您会使用哪些高效的同步算法?

我知道一个幼稚的架构/解决方案是:

  1. 对您的云存储进行网络调用并获取同步文件夹 树结构(只是元数据信息)。

  2. 在客户端上有一个文件系统监视器来构建本地同步 文件夹树结构(我猜你会使用类似 lsyncd 的东西 文件系统监视器?)

  3. 从上一次同步中检索同步文件夹结构。轮到你了 在客户端上有 3 个文件夹树结构。使用这3棵树可以 确定在本地文件夹上需要做什么以及需要做什么 在服务器上的远程文件夹上完成。例如,添加、删除、 使用某种预先确定的规则进行编辑、冲突解决等 这是特定于应用程序的。

这种架构可能就足够了,但问题在于细节。如果同步文件夹树非常大(非常宽且非常深)怎么办。显然,需要一种有效的算法来确定差异。如果网络连接中断并且您没有正确获取或发送整个树怎么办?还只发送文件差异以减少网络负载等。

我知道这些是我设计的东西,但我的问题是这个架构是否足够,我是否应该把时间花在细节上? Dropbox 是如何设计的,他们使用什么技术和算法来使大型文件夹结构和数据大小的同步如此高效?有没有什么资源/书籍可以参考设计这样的东西?

提前致谢。

【问题讨论】:

    标签: synchronization cloud data-synchronization


    【解决方案1】:

    评估Dropbox API 以了解他们如何设计 Dropbox API 是一个不错的起点。这可能会为您提供有关如何使这些技术适应您的解决方案的想法。与任何同步解决方案一样,问题在于细节。

    -账单

    【讨论】:

      猜你喜欢
      • 2011-04-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-17
      • 1970-01-01
      • 2019-07-19
      相关资源
      最近更新 更多