您好,匿名用户
随意问技术百科期待您的加入

类似dropbox、evernote以及国内的有道云笔记等云应用如何实现同步的?

0 投票

在一处更改文件内容,另一处很快就会同步。
这个过程中,如何实现文件的比对,以及推送内容的?

用户头像 提问 2012年 12月1日 @ Berserker 上等兵 (157 威望)
分享到:

1个回答

0 投票
 
最佳答案

对于dropbox,我也只是从使用体验上来说一说,并没有仔细研究。
首先,肯定每一个文件都有版本号,并且版本号可能还有一种算法,这个算法肯定不会是单一要素,如根据时间或者存储的上一个文件之间的对比,因为还要面临离线状态下的文件更新。
再,dropbox为了体验比较快速,当你删除文件的时候其实他是存放在本地的隐藏目录,这样如果你撤消删除的时候,可以很快的恢复,而不需要重新在下载。
再,对于@iammutex 说需要人肉解决冲突,我所知道的是dropbox应该是自动解决的,对于用户是透明的,所以自动解决冲突肯定也要有一个比较全面的方案,这样可以将面临各种终端设备的问题。
最后,dropbox服务器端肯定是存储一份最完整的文件结构和文件列表,而且肯定也会有文件的md5或者hash的方法保证文件的完整性,进行相应的对比,还要有一个机制可以让文件自动的同步,文件的自动同步分为两种,一种是各客户端在打开软件之后进行同步,这个比较容易实现是客户端发起的;另一种是其它客户端更新之后,服务器告之其它同时在线的客户端同时进行更新,我想应该是对客户端加入了一个计划任务隔一段时间主动与服务器端进行联系(如果是服务器主动告之客户端更新,我想难度很大,光客户端ip就是非常难判断的事,所以dropbox的的更新应该不是及时的,而是有延时的)。
以上只是自己思考的dropbox实现的几个难点和猜测他的工作方式。我也很关注这个问题。

用户头像 回复 2012年 12月1日 @ Archer 上等兵 (494 威望)
选中 2012年 12月1日 @Berserker
提一个问题:

相关问题

0 投票
1 回复 21 阅读
用户头像 提问 2014年 2月15日 @ Diana 上等兵 (326 威望)
0 投票
1 回复 38 阅读
用户头像 提问 2013年 11月19日 @ Taric 上等兵 (184 威望)
0 投票
1 回复 27 阅读
+1 投票
1 回复 93 阅读

欢迎来到随意问技术百科, 这是一个面向专业开发者的IT问答网站,提供途径助开发者查找IT技术方案,解决程序bug和网站运维难题等。
温馨提示:本网站禁止用户发布与IT技术无关的、粗浅的、毫无意义的或者违法国家法规的等不合理内容,谢谢支持。

欢迎访问随意问技术百科,为了给您提供更好的服务,请及时反馈您的意见。
...