写点什么

架构师训练营 4 期 第 6 周

用户头像
引花眠
关注
发布于: 2021 年 02 月 07 日

作业一:课后练习

  1. 请简述 CAP 原理。


CAP 理论是指在一个分布式系统中,一致性(Consistency, C)、可用性(Availability, A)、分区容错性(Partition Tolerance, P)三者不可兼得。其中

  1. 一致性 所有节点都访问到的数据都相同

  2. 可用性 每个请求都能得到响应

  3. 分区容错性 当系统存在分区的时候也应该能提供服务


但是在互联网情况下,网络失效是肯定会发生的,所以一般来讲就只能是在可用性与一致性之间进行选择。


在 2012 年的时候,CAP 之父对其理论进行了修订CAP 理论十二年回顾:"规则"变了

,其对分区容错性有了新的描述,它是环境的约束,而不是可选的,毕竟如果没有出现分区,那么也就不需要则 C 和 A 之间进行选择了。


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




作业二:根据当周学习情况,完成一篇学习总结

本周也是技术选型的一部分,重点分析了在分布式环境中如何存储数据。


关系型数据库

首先介绍了在分布式环境下如何使用数据库提高读写效率,以 MySQL 为例:

  • 读效率 使用主从复制、一主多从复制以及主主复制

  • 写效率 数据分片(硬编码与中间件)


数据库的部署方案:

  1. 单一服务单一数据库

  2. 主从复制实现伸缩

  3. 两个 Web 服务及两个数据库

  4. 综合部署


NoSQL 相关

CAP 原理 上面有写


当使用最终一致性时候如何解决冲突:

  1. 使用时间戳

  2. 客户端冲突解决

  3. 投票解决冲突(Cassandra )


ACID 与 BASE

ACID 为 Atomicity, Consistency, Isolation, and Durability,其中 ACID 分别表示为:

  • 原子性(Atomicity):事务中的操作要么都做,要么都不做。

  • 一致性(Consistency):系统必须始终处在强一致状态下。

  • 隔离性(Isolation):一个事务的执行不能被其他事务所干扰。

  • 持续性(Durability):一个已提交的事务对数据库中数据的改变是永久性的。


BASE 为 Basically Available, Soft-state, Eventually consistent,其中 BASE 分别代表:

  • 基本可用(Basically Available):系统能够基本运行、一直提供服务。

  • 软状态(Soft-state):系统不要求一直保持强一致状态。

  • 最终一致性(Eventual consistency):系统需要在某一时刻后达到一致性要求。


ACID 强制一致性,要么全做要么不做,所有用户看到的数据一致。BASE 表示为支持可用性,牺牲一部分一致性,可以显著的提升系统的伸缩性,数据为最终一致。


分布式一致性

讲述了分布一致性算法 Paxos 原理以及 Zookeeper 中的算法 Zab 协议


Zookeeper 良好的架构可以解决分布式系统中常见的问题:

  1. 统一配置中心

  2. Leader 选举

  3. 分布式锁

  4. 动态节点发现


搜索引擎相关

搜索引擎的整体架构:

  1. 爬虫系统 获取网页信息

  2. 文档索引系统 使用倒排索引来保证搜索的速度


Lucene 架构是之前最常用的搜索引擎架构,随着分片和集群的需要 ElasticSearch 愈来越成为主流,并且带来了用搜索引擎代替数据存储的思想


发布于: 2021 年 02 月 07 日阅读数: 16
用户头像

引花眠

关注

还未添加个人签名 2018.06.11 加入

还未添加个人简介

评论

发布
暂无评论
架构师训练营 4 期 第6周