10001---分布式系统中的数据同步
2015-06-28 02:59
363 查看
分布式系统中的数据同步
许多人在日常工作中都会用到分布式系统,它的好处就是它所提供的稳定性,容错性以及伸缩性
使我们能更容易地构建出稳定,高效的应用。
然而分布式系统的使用非常具有挑战性,包括数据同步以及理解冲突的意义。
分布式系统中的数据同步本身就是一项非常巨大的挑战。
如果光看物理时间戳的话我们无法确定哪个版本的数据才是最新的,
因为你无法确保所有的实体的物理时钟都是完美同步的。
比如说,两台同步的服务器将时间戳写入到同一个系统中。
如果一台服务器慢了哪怕只有几毫秒,很快它就无法得知事件的真实顺序了。
为了解决这一问题,我们可以采用基于事件的逻辑时钟而不是真实时间来构建出部分有序的集合。
你可以认为逻辑时钟就是标明系统中的事件的版本的一种方式。
通过查看这些有序的集合,我们就能同步系统中的数据,
因为我们可以知道哪些数据是最新的,并且可以识别出哪些事件是并发的。
我承认当我第一次听说“向量时钟”或者”Lamport时间戳”这个概念时,
我发现它们其实是一些我无法理解的荒唐的数学算法。或许更重要的是,
出于恐惧,我在逃避去学习它们。所幸的是,我发现它们其实要比我想像的简单得多。
我们来一窥它底层的奥秘并看看它是如何工作的。
相关文章推荐
- android之XmlResourceParser类使用实例
- iOS开发中XML的DOM和SAX解析方法
- Android中measure过程、WRAP_CONTENT详解以及xml布局文件解析流程浅析(上)
- android背景选择器selector用法汇总
- 假如今天是我生命中的最后一天(转摘)
- respondsToSelector的相关使用
- 服务器部署相关软件
- the Zeros and Ones
- app store 上架流程
- 生成不了p12证书的缘故
- weka连接mysql数据库
- iphone"此证书是由未知颁发机构签名的"的解决办法
- Fake Numbers
- iOS UIWebView URL拦截
- Wildcard Matching
- Android中将布局文件/View添加至窗口过程分析 ---- 从setContentView()谈起
- Android中View(视图)绘制不同状态背景图片原理深入分析以及StateListDrawable使用详解
- MySql在Window上的安装
- [LeetCode] Course Schedule II
- Android中View绘制流程以及invalidate()等相关方法分析