架构师训练营 4 期 第 6 周
作业一:课后练习
请简述 CAP 原理。
CAP 理论是指在一个分布式系统中,一致性(Consistency, C)、可用性(Availability, A)、分区容错性(Partition Tolerance, P)三者不可兼得。其中
一致性 所有节点都访问到的数据都相同
可用性 每个请求都能得到响应
分区容错性 当系统存在分区的时候也应该能提供服务
但是在互联网情况下,网络失效是肯定会发生的,所以一般来讲就只能是在可用性与一致性之间进行选择。
在 2012 年的时候,CAP 之父对其理论进行了修订CAP 理论十二年回顾:"规则"变了
,其对分区容错性有了新的描述,它是环境的约束,而不是可选的,毕竟如果没有出现分区,那么也就不需要则 C 和 A 之间进行选择了。
针对 Doris 案例,请用 UML 时序图描述 Doris 临时失效的处理过程(包括判断系统进入临时失效状态,临时失效中的读写过程,失效恢复过程)。
作业二:根据当周学习情况,完成一篇学习总结
本周也是技术选型的一部分,重点分析了在分布式环境中如何存储数据。
关系型数据库
首先介绍了在分布式环境下如何使用数据库提高读写效率,以 MySQL 为例:
读效率 使用主从复制、一主多从复制以及主主复制
写效率 数据分片(硬编码与中间件)
数据库的部署方案:
单一服务单一数据库
主从复制实现伸缩
两个 Web 服务及两个数据库
综合部署
NoSQL 相关
CAP 原理 上面有写
当使用最终一致性时候如何解决冲突:
使用时间戳
客户端冲突解决
投票解决冲突(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 良好的架构可以解决分布式系统中常见的问题:
统一配置中心
Leader 选举
分布式锁
动态节点发现
搜索引擎相关
搜索引擎的整体架构:
爬虫系统 获取网页信息
文档索引系统 使用倒排索引来保证搜索的速度
Lucene 架构是之前最常用的搜索引擎架构,随着分片和集群的需要 ElasticSearch 愈来越成为主流,并且带来了用搜索引擎代替数据存储的思想
版权声明: 本文为 InfoQ 作者【引花眠】的原创文章。
原文链接:【http://xie.infoq.cn/article/36f721a20032891f4c89b8f90】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论