【分布式系统】一、 CAP定理
一、 CAP定理是分布式系统中的一个基本定理
2)分布式定理原文
1概念
分布式系统(Distributed System)是一组电脑,通过网络相互连接传递讯息与通讯后并协调它们的行为而形成的系统。组件之间彼此进行交互以实现一个共同的目标。把需要进行大量计算的工程数据分割成小块,由多台计算机分别计算,再上传运算结果后,将结果统一合并得出数据结论的科学。
2、一致性:Consistency
1)在一个一致性的系统中,客户端向任何服务器发起一个写请求,将一个值写入服务器并得到响应,那么之后向任何服务器发起读请求,都必须读取到这个值(或者更加新的值)。
any read operation that begins after a write operation completes must return that value, or the result of a later write operation(中文意思是在写操作完成后开始的任何读操作都必须返回该值,或者后续写操作的结果)
3、可用性:Availability
1)在可用系统中,客户端向服务器发送请求并且该服务器未崩溃,则该服务器必须最终响应客户端。
every request received by a non-failing node in the system must result in a response(中文意思:系统中非故障节点收到的每个请求都必须产生响应)
4、分区容错性:Partition tolerance
1)为了满足分区容错性,系统在任意的网络分区情况下都必须正常的工作。
the network will be allowed to lose arbitrarily many messages sent from one node to another(中文意思:允许网络丢失从一个节点发送到另一个节点的任意多个消息)
5、总结(CP|AP)
1)既然是分布式系统,那么网络分区是一定会存在的,所以分布式系统必须满足 P,否则就不是一个正真的分布式系统。所以我们必须在 A 和 C 之间做出选择。
二、分布式系统调用的三态
1、成功
如果节点 A 上的系统收到节点 B 系统返回的消息,并且消息能够表明执行成功,则该 RPC 的结果即为成功状态;
2、失败
如果节点 A 上的系统收到节点 B 系统返回的消息,并且消息能够表明执行失败,则该 RPC 的结果即为失败状态
3、超时
如果节点 A 上的系统在给 节点 B 上的系统发送完 RPC 调用,并且在一定的时间内没有收到节点 B 上的系统返回消息,本次调用就超时了。
1) 超时的三种原因
- 解决方法
a:当出现超时时,可以通过发起读取数据的操作以验证 RPC 是否成功。
b:将执行步骤设计为可重试的,也就是说计算或写操作具有幂等性。一律重试操作直到成功。重试操作也不会对正确性造成影响,从而简化了设计。
三、盗取图片说明一下
1、不一致的分布式系统
2、一致的分布式系统
3、网络分区(节点之间网络不通)