开发者社区> 问答> 正文

Lab 1、2、3 关注一致性是什么?

Lab 1、2、3 关注一致性是什么?

展开
收起
kun坤 2020-04-23 16:39:18 408 0
1 条回答
写回答
取消 提交回答
  • 通用的基础结构需要定义明确的行为。客户端先进行put(k,v)操作更新数据,然后通过Get(k)读取数据。此时应保证所有的Get(k)结果都是v。

    让所有的行为都一致,是一件困难的事情。因为分布式系统中,你的数据是存在副本的(容错),并且存在于cache、disk。

    譬如:

    • 副本很难保证一致性,如果要保证一致性,需要牺牲吞吐性。
    • 客户端可能在多过程更新的过程中出现失败。
    • 服务器可能在执行请求后发送响应之前时崩溃。
    • 网络分区可能会导致以为服务下线了,其实还在工作,俗称“脑分裂”。

    一致性和性能是相对称的。强一致性需要额外的通信。譬如get()需要检查最新的put()操作(分布式不是单点)。

    现有的大多数分布式系统采用弱一致性来保证任务处理速度。譬如:get()时,不需要再检查或等待put()。虽然不够严谨,但是也算是一种权衡。

    一致性和性能是目前设计分布式系统讨论比较多的地方。

    2020-04-23 16:39:48
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载