分布式一致性原理学习笔记(1)

分布式架构

  • 什么是分布式?
    分布式是指将不同业务分布在不同的地方。是缩短单个任务执行时间来提升效率。比如一个任务由10个相互独立的子任务组成,每个子任务执行1个小时。在一台机器上执行需要10个小时。如果按照分布式方式的话,10台机器每台服务器计算一个子任务,执行完这个任务只需要一个小时。这种工作方式,体现在实际生产中的应用就是 Map/Reduce 分布式计算。

  • 与集群的差别
    集群是指同一业务部署在多台服务器上。每台机器都能单独地完成相同的业务流程。一个节点down掉了,其他的节点可以替代。整个业务不受影响。避免单点故障的一种方式。通过单位时间内执行尽可能多的任务来提高效率。
    比如上面的一个任务要1台服务器执行10小时。10台服务器10个小时就能执行10个任务。这样完成10个任务采用集群和分布式的效率是一样的。

分布式架构所遇到的问题

  • 1:数据更新的并发性
    单线程应用在运行效率上无法和多线程应用相提并论,因此模型相对简单。现有的计算机技术发展迅速,到了JavaWeb年代。多线程已经是默认的模型了。多线程的引入,不可避免地会遇到并发问题。并发的概念:如果逻辑控制流在时间上重叠,那么他们就是并发的。逻辑控制流就是一次程序操作。简单的如更新,修改等操作。
  • 2:分布式一致性
    分布式系统中,必然存在共享数据。这时候如果有客户A将 变量K 由 V1变更成V2。此时 客户B无法立即读取到K的最新之。在一段时间之后才能渠道。这种场景常见于数据库复制的延时。
    分布式数据一致性问题简单的描述为:在对一个副本数据进行更新的同时,必须确保也能够更新其他的副本,否则不通副本之间的数据将不再一致。
    数据一致性的级别:
    强一致性:
    写什么,读什么,可能耗费性能。
    弱一致性:
    不承诺立即可以读到写入的值。尽可能保证在某个时间级别(秒)后,数据能达到一致状态。
    会话一致性:保证在同一客户端读到一致的值。
    用户一致性:保证同一用户对写入的值立读取一致。
    最终一致性:
    弱一致性的一个特例,在一段时间内 能达到一致的状态。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值