美文网首页后端基础
极客时间《架构师训练营》第六周课后作业

极客时间《架构师训练营》第六周课后作业

作者: anOnion | 来源:发表于2020-07-14 19:49 被阅读0次

请简述 CAP 原理

在一个分布式计算系统中,只能同时满足下列的两点:

  • 一致性(Consistency):每次访问都能获得最新数据但可能会收到错误响应
  • 可用性(Availability):每次访问都能收到非错响应,但不保证获取到最新数据
  • 分区容错性(Partition Tolerance):在任意分区网络故障的情况下系统仍能继续运行
CAP

网络并不可靠,所以你必须支持分区容错性,并需要在软件可用性和一致性间做出取舍,所以实际的系统只有 CP 或是 AP 这两种:

  • CP:一致性和分区容错性

    等待分区节点的响应可能会导致延时错误。

    AP
  • AP:可用性与分区容错性

    响应节点上数据可能并不是最新的;当分区解析完后,写入操作可能需要一些时间来传播。

    CP

CA 或是 AP 的抉择是软件设计中必须面对的 trade-off。如果业务需要原子读写,CP 是一个不错的选择;如果业务需求允许最终一致性或当有外部故障时要求系统继续运行,AP 就是一个不错的选择了。具体问题需要具体分析。

针对 Doris 案例,请用 UML 时序图描述 Doris 临时失效的处理过程(包括判断系统进入临时失效状态,临时失效中的读写过程,失效的回复过程)

判断系统进入临时失效状态

应用服务器在访问存储服务时可能会出现访问失效,这时候需要确认存储服务的失效状态;临时失效下的判定步骤如下所示:

  1. 存储服务访问失效,应用服务则会在间隔一段时间后再次发起访问
  2. 存储服务器经过 N 次重试,依旧失败,则立即向管理中心发起仲裁
  3. 管理中心向存储服务发送心跳检测
  4. 心跳失效,管理中心反馈仲裁,判定存储服务进入临时失效状态
失效判定

临时失效期间的读写

临时失效期间的读写就和故障节点无关了,只是在写数据时会将数据库操作日志写入临时服务器中。

失效读写

临时失效恢复过程

失效恢复期间,读、写、数据恢复会同步发生,但与正常态有所不同:

  • 数据恢复:数据将会从临时服务器迁移到故障恢复节点中
  • 读操作:依旧只读取正常节点的数据
  • 写操作:同时写入正常节点和故障恢复节点
失效恢复

当临时节点的数据全部迁移成功后,失效态结束,所有存储服务按正常态运行;临时节点的数据之后会被删除。

相关文章

网友评论

    本文标题:极客时间《架构师训练营》第六周课后作业

    本文链接:https://www.haomeiwen.com/subject/kjafhktx.html