架构师训练营第六周作业

用户头像
四夕晖
关注
发布于: 59 分钟前

请简述 CAP 原理。

  • 一致性Consistency:一致性是说,每次读取的数据都应该是最近写入的数据或者返回一个错误(Every read receives the most recent write or an error),而不是过期数据,也就是说,数据是一致的。

  • 可用性(Availability):可用性是说,每次请求都应该得到一个响应,而不是返回一个错误或者失去响应,不过这个响应不需要保证数据是最近写入的(Every request receives a (non-error) response, without the guarantee that it contains the most recent write),也就是说系统需要一直都是可以正常使用的,不会引起调用者的异常,但是并不保证响应的数据是最新的。

  • 分区耐受性( Partition tolerance):分区耐受性说,即使因为网络原因,部分服务器节点之间消息丢失或者延迟了,系统依

当网络分区失效发生的时候,我们要么取消操作,这样数据就是一致的,但是系统却不 可用;要么我们继续写入数据,但是数据的一致性就得不到保证。

对于一个分布式系统而言,网络失效一定会发生,也就是说,分区耐受性是必须要保证 的,那么在可用性和一致性上就必须二选一。

当网络分区失效,也就是网络不可用的时候,如果选择了一致性,系统就可能返回一个 错误码或者干脆超时,即系统不可用。如果选择了可用性,那么系统总是可以返回一个数据,但是并不能保证这个数据是最新的。

所以,关于 CAP 原理,更准确的说法是,在分布式系统必须要满足分区耐受性的前提下, 可用性和一致性无法同时满足。

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

2.1、分布式存储系统的故障分类

高可用的系统需要解决在不同故障情况下都保持较高的系统可用性,但是不同故障 类型带来的问题复杂性不同,不可能使用一种解决方案处理所有情况,需要针对各种故障提供具体解决方案,先对故障进行分类,针对不同故障情况,分别处理对待

  • 瞬时故障 :引起这类故障的主要原因是网络通讯瞬时中断;服务器内存垃圾回收 或后台线程繁忙停止数据访问操作响应。其特点是故障时间短,在秒级甚至毫 秒级系统即可自行恢复正常响应。

  • 临时故障 :引起这类故障的主要原因是交换机宕机、网卡松动等导致的网络通讯 中断;系统升级、停机维护等一般运维活动引起的服务关闭;内存损坏、CPU 过热等硬件原因导致的服务器宕机;这类故障的主要特点是需要人工干预(更 换硬件、重启机器等)才能恢复正常。通常持续时间需要几十分钟甚至几小时。 故障时间可分为两个阶段:临时故障期间,临时故障恢复期间。

  • 永久故障 :引起这类故障主要原因只有一个:硬盘损坏,数据丢失。虽然损坏硬 盘和损坏内存一样,可以通过更换硬盘来重新启动机器,但是丢失的数据却永 远找不回来,因此其处理策略也和前面两种故障完全不同,恢复系统到正常状 态也需要更长的时间。故障时间可分为两个阶段:永久故障期间,永久故障恢 复期间。

2.2、故障解决方案

2.2.1、瞬时故障的高可用解决方案

瞬时故障是一种严重性较低的故障,一般系统经过较短暂的时间即可自行恢复,遇 到瞬时故障,只需要经过多次重试,就可以重新连接到服务器,正常访问。

如果应用多次重试后,仍然失败,那么有可能不是瞬时故障,而是更严重的临时故障,这时候需要执行临时故障处理策略。当然也有可能是应用服务器自己的故障,比如系统文件句柄用光导致连接不能建立等,这时候需要请求管理中心服务器进行故障仲裁,以判定故障种类。

瞬时故障,系统访问模型:

2.2.2、临时故障的高可用解决方案

临时故障要比瞬时故障严重,系统需要人工干预才能恢复正常,在故障服务器未能 恢复正常前,系统也必须保证高可用。由于数据有多份拷贝,因此读数据的时候只需要 路由选择正常服务的机器即可;写数据的时候,正常服务的机器依然正常写入,发生故 障的机器需要将数据写入到临时存储服务器,等待故障服务器恢复正常后再将临时服务 器中的数据迁移到该机器,整个集群就恢复正常了。

其中临时服务器是集群中专门部署的服务器(根据可用性规划,临时服务器也可以 部署为多台机器的集群),正常情况下,该服务器不会有数据写入,处于空闲状态,只 有在临时失效的时候,才会写入数据。任何时候该服务器都不会提供读操作服务。

临时故障发生期间,系统访问模型如图:

临时故障解决,系统恢复期间,访问模型

临时故障期间写入临时服务器的数据全部迁移到存储服务器 2 后,故障全部恢复, 存储服务器 2 恢复到正常状态,系统可按正常情况访问

2.2.3、永久故障的高可用解决方案

永久故障是指服务器上的数据永久丢失,不能恢复。由于故障服务器上的数据永久 丢失,从临时服务器迁移数据就没有意义,必须要从其他序列中正常的服务器中拷贝全 部数据才能恢复正常状态。

永久故障发生期间,由于系统无法判断该故障时临时故障还是永久故障,因此系统 访问结构和临时故障一样。当系统出现临时故障超时(超过设定时间临时故障服务器仍 旧没有启动)或者人工确认为永久故障,系统启用备用服务器替代原来永久失效的服务 器,进入永久故障恢复,其访问模型:



用户头像

四夕晖

关注

还未添加个人签名 2018.01.16 加入

还未添加个人简介

评论

发布
暂无评论
架构师训练营第六周作业