https://www.cnblogs.com/aspnetdream/p/Java.html

一、问题产生

时间是一个绝对量,而实体计算机的时间是相对量

1、  物理天地本身导致的时间不一致,地球自转、闰年、闰秒

2、  现实的不能绝对一致性,A机器时间同步至B机器,网络传输时间是不确定性的,AB存在绝对不一致性

如上图,computer A在2144  Tick点执行分布式任务 create output.o,注意2144是A的绝对计算量、而此时的集群computer B也许出于2143 Tick点,即使B也运气恰到好处的出于2144 Tick,A任务同步至B消耗的Tick是不确定的。获取是2144也有可能是2143,倘若如上图,ouput.c created在B小于created 2144时间点,时间戳make问题就出现了。

二、逻辑时钟

1、Berkeley算法:分布式服务器定时轮询所有服务器,各台服务器依据同步结果,决定本台服务器的Tick快慢同步是时间

三台服务器明显不一致,3:00仲机器在轮询其他机器时候,分别有2:50,3:25,那么他们是分别加10分钟和减20分钟来同步时间吗?显然不行,各台机器本身是存在事务日志的,如果本身时间进行人为修改,事务时间戳就会出现混乱。此时应该是各台服务器调慢或调快各自时间Tick已达到三台时间Tick一致。

2、  Lamport算法时钟同步

在红箭头时间点,从理想主义角度而言,始终应该是一致的,但现实是明显不一致的,两条偏移线要向Perfect看齐

T2的时间传播到T1,T1时间Tick慢,T4在应答时间戳上要进行同步了,解决上述问题

保证逻辑的一致性就需要计算出偏移量,偏移量用途

P1发起分布式任务到P2大于任务时间戳6,继续传播到P3小于时间戳40,应答回传56,时间戳小了,如果继续回传P1 54,更小了,于是需要计算偏移量机型时间一致性

如:

偏移量调整时间过程示意

Perfact解决方案

不使用同步算法,导致的结果是灾难性的,update1和update2的任务在1和2上的执行顺序显然不能混乱,并且需要连续性。就好比银行是先转账还是先计息,也许,或者可能这是业务需要考虑的问题,ok,那么1和2能够一致性执行update1和update2就是分布式需要解决的技术问题。

解决

1在执行update1时候进行广播,”你们都给听好了,我要执行update1操作”

2收到广播“好的,你执行,我也开始执行了”

于是update1的执行保障了一致性。当2故障或者2没有收到update1或update2,广播应答结果就是“NO,你别执行哈,执行要出乱子的”,ok,connection refused or time out。

3、因果一致性

P0执行任务,写入时间戳100,广播P1、P2,P2执行相同的分布式任务,P2这是发起了分布式任务写入时间戳110,100和110广播到P2时候,P2执行100时候,发现时间戳有问题,告诉P2不能执行110和000, 因为100尚未执行,那么按照时间戳排序执行。

锁的因果一致性

          

1执行3并取得3 locker,2需要执行3,不好意思,3已经被locker,进入队列,当3被释放才有2的执行权。

分布式系统----时钟同步相关推荐

  1. 北斗卫星同步时钟在分布式系统时钟同步的重要性

    北斗卫星同步时钟在分布式系统时钟同步的重要性 因为分布式系统使用分布式算法,所以它的同步机制比集中式系统更为复杂.在集中式系统中能够做到的,在某一位置上能集收到系统的所有信息,然后由某些进程检测这些信 ...

  2. 分布式系统-同步化-时钟同步-物理时钟与Lamport时间戳(逻辑时钟)

    1.概述 同步化是分布式系统中的一个重要概念,同步化主要解决的是排序问题.例如:多个线程不能同时操作一个变量,而是将多个线程使用锁或无锁结构进行同步,同步的目的就是将多个线程排序为一个操作时序对这个变 ...

  3. 时钟同步及其应用(接上一篇)

    在linux下做的时钟同步的工作终于暂时告一段落了. 前面简单的做了客户端和服务器端的同步,在基于时间同步的机制上,将系统的1s的时间划分多个时槽.由于此时间同步应用在分布式系统中,涉及到多个客户端和 ...

  4. 以太网的时钟同步(1588时钟)

    IEEE1588 标准定义了一个在测量和自动化系统中的时钟同步协议.该协议特别适合于以太网,可以实现微秒级高精度的时钟同步. 以太网的时钟同步 IEEE1588 定义了一个在测量和控制网络中,与网络交 ...

  5. 时钟同步产品(时间同步系统)技术应用方案

    时钟同步产品(时间同步系统)技术应用方案 分布式系统由Tanenbaum定义,"分布式系统是一组独立的计算机,在"分布式系统 - 原理和范例"中作为用户的单一,连贯的系统 ...

  6. cmd 顺序启动服务_NTP时钟服务器部署以及时钟同步设置

    NTP时钟服务器部署以及时钟同步设置 NTP时钟服务器部署以及时钟同步设置 一.前言 1.NTP简介 NTP是网络时间协议(Network Time Protocol),它是用来同步网络中各个计算机的 ...

  7. 时钟同步技术解析:原子钟实现 Ture-time 机制

    导读 在分布式数据库系统中,为了解决不同集群.节点事件发生的先后顺序问题,时钟同步至关重要.本文将为大家介绍业界现有的几种主流的时钟同步解决方案,以及分布式数据库云溪数据库基于原子钟技术实现的 Tur ...

  8. 出入口控制系统工程设计规范_[问答]连载77-控制系统之间如何时钟同步?

    仪表小猪 在控制系统中,趋势.报警.事件记录等都与时间相关,因此整个系统始终保持一个统一的时钟很关键.如果操作站和控制站时间不同步,操作员站上面显示的事件.趋势等也不能真正的反应出现场实际变化的时间, ...

  9. 如何配置Linux的时钟同步

    Ubuntu系统默认的时钟同步服务器是ntp.ubuntu.com,Debian则是0.debian.pool.ntp.org等, 各Linux发行版都有自己的NTP官方服务器. 身在中国,使用这些都 ...

  10. IIC总线的时钟同步和总线仲裁

    IIC简介: IIC 即Inter-Integrated Circuit(集成电路总线),这种总线类型是由飞利浦半导体公司在八十年代初设计出来的,主要是用来连接整体电路(ICS) ,IIC是一种多向控 ...

最新文章

  1. 最老程序员创业札记:全文检索、数据挖掘、推荐引擎应用50
  2. google nexus5x 刷机抓包逆向环境配置(二)
  3. 易语言微凉模块oracle,跟着微凉学易语言 【简单子类化】
  4. 广域存储和计算协同面临哪些挑战,具有哪些优势?
  5. 关于mybatis的mapper和mapper.xml注入spring托管的方法 超详细
  6. vSphere 7 With K8s系列09:部署wordpress示例
  7. 再谈 Formsville
  8. VALSE学习(八):矿视-轻量级深度模型的研究与实践
  9. VUE如何关闭Eslint的方法
  10. python开根号函数图像_使用matplotlib / python的平方根刻度
  11. C语言数字转换为字符的问题
  12. maven实战之我见一(maven初识)
  13. 多大计算机科学世界排名,重磅!2021年QS世界大学学科排名发布!多大、UBC抢眼!这些专业最强!...
  14. 转行成为数据分析师的经验分享
  15. ps 中左边的工具栏消失了,解决方法
  16. fortran---说实话,不知道记录有什么用 写着玩吧
  17. mysql increment参数_mysql auto_increment
  18. 国际结算名词解释汇总
  19. 蓝牙耳机打电话外放?目前通话效果最好的蓝牙耳机
  20. 接口能通但是没有数据_直接用大脑联网刷微博看电影看小说!脑机接口最新专利详解...

热门文章

  1. 分享五款没什么名气却意外好用的软件
  2. SWAN之ikev2协议crl-revoked配置测试
  3. 编译内核报错 No rule to make target ‘debian/canonical-certs.pem‘ 或 ‘canonical-revoked-certs.pem‘ 的解决方法
  4. 游戏Call技术-绑定主线程调用CALL技术(反游戏检测call)
  5. git切换远程分支为develop
  6. Recoil的简单实践和思考
  7. 课下作业(选做)第十周
  8. 用python编程点菜系统_python3实现点餐系统
  9. 哦了哦了~,开始切难题~
  10. 微信外部链接无法使用浏览器打开 微信链接打不开的解决方案