Day06 分布式(一)| 青训营笔记

57 阅读3分钟

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

分布式定义:多个独立计算节点,分布式计算、存储、数据库

优势:去中心化、低成本、弹性、资源共享、可靠性高

挑战:节点故障、网络、异构的硬件环境、安全

拜占庭帝国问题

军队的几个师驻扎在敌城外, 每个师都由各自的将军指挥. 将军们只能通过信使相互沟通. 在观察敌情之后, 他们必须制定一个共同的行动计划如进攻(Attack) 或者撤退(Retreat) , 且只有当半数以上的将军共同发起进攻时才能取得胜利. 然而, 其中一些将军可能是叛徒, 试图阻止忠诚的将军达成一致的行动计划. 更糟糕的是, 负责消息传递的信使也可能是叛徒, 他们可能篡改或伪造消息, 也可能使得消息丢失.

CAP理论概述 一个分布式系统最多只能同时满足一致性(Consistency)、可用性(Availability)和分区容错性(Partition tolerance)这三项中的两项。

一致性所有节点在同一时间的数据完全一致。

强一致性 对于关系型数据库,要求更新过的数据能被后续的访问都能看到,这是强一致性。

弱一致性 如果能容忍后续的部分或者全部访问不到,则是弱一致性。

最终一致性 如果经过一段时间后要求能访问到更新后的数据,则是最终一致性。

可用性指服务在正常响应时间内一直可用。

分区容错性指分布式系统在遇到某节点或网络分区故障的时候,仍然能够对外提供满足一致性或可用性的服务。

RDBMS满足ACID理论:Atomicity(原子性)整个事务中的所有操作,要么全部完成,要么全部不完成,不可能停滞在中间某个环节。事务在执行过程中发生错误,会被回滚到事务开始前的状态,就像这个事务从来没有执行过一样。Consistency(一致性)一个事务可以封装状态改变(除非它是一个只读的)。事务必须始终保持系统处于一致的状态,不管在任何给定的时间并发事务有多少。Isolation(隔离性、独立性)隔离状态执行事务,使它们好像是系统在给定时间内执行的唯一操作。如果有两个事务,运行在相同的时间内,执行相同的功能,事务的隔离性将确保每一事务在系统中认为只有该事务在使用系统。这种属性有时称为串行化,为了防止事务操作间的混淆,必须串行化或序列化请求,使得在同一时间仅有一个请求用于同一数据。Durability(持久性)在事务完成以后,该事务对数据库所作的更改便持久的保存在数据库之中,并不会被回滚。

BASE就是为了解决关系数据库强一致性引起的问题而引起的可用性降低而提出的解决方案。基本可用(Basically Available)软状态(Soft state)最终一致(Eventually consistent