这是我参与「第五届青训营 」伴学笔记创作活动的第 8 天。
分布式——分布式系统是计算机程序的集合,这些程序利用跨多个独立计算节点的计算资源来实现共同的目标。可以分为分布式计算、分布式存储、分布式数据库等。
优势: 1.去中心化 2.低成本 3.弹性 4.资源共享 5.可靠性高
挑战: 1.普遍的节点故障 2.不可靠的网络 3.异构的机器与硬件环境 4.安全
常见的分布式系统
分布式存储
1.Google File System (GFS) : google分布式文件系统
2.Ceph:统—的分布式存储系统
3.Hadoop HDFS:基于GFS架构的开源分布式文件系统
4.Zookeeper:高可用的分布式数据管理与系统协调框架
分布式数据库
1.Google Spanner: google可扩展的、全球分布式的数据库
2.TiDB:开源分布式关系型数据库
3.HBase:开源Nosql数据库
4.MongoDB:文档数据库
分布式计算
1.Hadoop:基于MapReduce分布式计算框架
2.Spark:在Hadoop基础之上,使用内存来存储数据
3.YARN:分布式资源调度
故障模型 磁盘故障——磁头不寻道、盘片不转、磁介质损伤等;年发生率1-2%。(可能类型:Fail-stop)
磁盘坏道、坏块——磁头划伤引起坏道,或受宇宙射线影响晶体管产生位反转。(可能类型:Fail-stop,ADB)
服务器主板、板卡故障——可能是风扇故障,或灰尘引起的短路,或SCSI/RAID卡造成的死机。(可能类型:Crash)
网络故障——电源故障、背板故障等,网卡位反转、网络流量大造成大量丢包等。(可能类型:Byzantine,Omission)
网络分区——网络引起节点形成不同的子集,子集中网络相通,子集间网络不通。(可能类型:Performance)
内存故障——内存出错造成的数据被篡改,分为UE、CE两种。(可能类型:ADB)
线缆故障——服务器光模块频繁up或down。(可能类型:Performance,Omission)
内核崩溃——内核内部的致命错误,产生的kernel panic。(可能类型:Crash)
CPU故障——年故障率接近1%。(可能类型:Omission、Crash)
电源故障——服务器失去电力支撑。(可能类型:Omission)
软件故障——进程crash、内存踩坏、状态不—致、配置错误、软件bug等。(可能类型:Byzantine,Crash)
理论基础
CAP理论往往运用于数据库领域,同样可以适用于分布式存储方向。
C ——一致性,指数据在多个副本之间能够保持一致的特性(严格的一致性)。
A——可用性,指系统提供的服务必须—直处于可用的状态,每次请求都能获取到非错的响应——但是不保证获取的数据为最新数据。
P——分区容错性,分布式系统在遇到任何网络分区故障的时候,仍然能够对外提供满足一致性和可用性的服务,除非整个网络环境都发生了故障。
ACID理论
事务是数据库系统中非常重要的概念,它是数据库管理系统执行过程中的一个逻辑单元,它能够保证一个事务中的所有操作要么全部执行,要么全都不执行。 数据库事务拥有四个特性ACID,即分别是原子性、一致性、隔离性和持久性。
BASE理论
Base理论是对CAP中一致性和可用性权衡的结果,其来源于对大型互联网分布式实践的总结,是基于CAP定理逐步演化而来的。其核心思想是:基本可用、软状态、最终一致性。
收获:通过本次课程的学习,了解了分布式理论是现代架构的基石,也学习了常见的分布式系统以及系统模型,对架构的理解又深了一层。