【8】分布式理论现代架构基石 | 青训营笔记

82 阅读2分钟

这是我参与「第五届青训营」笔记创作活动的第8天。

什么是分布式

分布式系统是计算机程序的集合,这些程序利用跨多个独立计算节点的计算资源来实现共同的目标。可以分为分布式计算、分布式存储、分布式数据库等。

优势

去中心化,低成本,弹性,资源共享,可靠性高。

挑战

普遍的节点故障,不可靠的网络,异构的机器与硬件环境,安全。

理论基础

CAP理论

C,Consistence,一致性,指数据在多个副本之间能够保持一致的特性(严格的一致性)。

A,Availability,可用性,指系统提供的服务必须一直处于可用的状态,每次请求都能获取到非错的响应——但是不保证获取的数据为最新数据。

P,Network partitioning,分区容错性,分布式系统在遇到任何网络分区故障的时候,仍然能够对外提供满足一致性和可用性的服务,除非整个网络环境都发生了故障。

CAP理论往往运用于数据库领域,同样可以适用于分布式存储方向。

CA:放弃分区容错性,加强一致性和可用性,其实就是传统的单机数据库的选择。

AP:放弃一致性(这里说的一致性是强一致性),追求分区容错性和可用性,例如一些注重用户体验的系统。

CP:放弃可用性,追求一致性和分区容错性,例如与钱财安全相关的系统。

在网络发生分区的情况下,我们必须在可用性和一致性之间做出选择。近似解决办法:把故障节点的负载转移给备用节点负责。

ACID理论

事务是数据库系统中非常重要的概念,它是数据库管理系统执行过程中的一个逻辑单元,它能够保证一个事务中的所有操作要么全部执行,要么全都不执行。

数据库事务拥有四个特性ACID,即分别是原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability)。