分布式系统理论知识

前言:由于对于公司的分布式系统很感兴趣,所以就研究了起来。。。
**前因:**分布式系统的由来?

集中式系统:

**概念:**一个主机带多个终端,终端仅仅负责数据的录入和输出,而运算,存储等全部在主机上进行

**应用:**上个世纪的应用,以及现在的银行系统。

**优点:**部署结构简单

**缺点:**系统庞大而复杂、难以维护、发生单点故障、扩展性差等等哈。

分布式系统:

概念:一个硬件或者软件组件分布在不同的网络计算机上,彼此之间仅仅通过消息传递进行通信和协调的系统。简单的说就是一群独立的计算机集中共同对外提供服务,但是对于系统用户而言,就像是一台计算机在提供服务一样。

特征:

1、分布性:由于计算机之间是通过网络进行通信的,所以多台计算机位置在空间上是随意分布的

2、透明性:系统资源被所有计算机共享,一台计算机不仅可以使用自己本计算机的资源,还可以使用分布式系统中其它计算机的资源。

3、统一性:分布式系统若干计算机可以协作完成一个共同的任务

4、通信性:系统中任意两台计算机可以通过通信来交换信息。

**优点:**由于是普通计算机,性价比更高、处理能力更强、可靠性更高、可靠性更高、很好的扩展性

**缺点:**由于使用网络进行通信,性能有一定的影响、有产生数据一致性的风险。

**分布式:**是指在多台不同的服务器中部署不同的服务模块,通过远程调用协调工作,对外提供服务

**集群:**是指在多台不同的服务器中部署相同的应用或者服务模块,构成一个集群,通过负载均衡对外提供服务。

分布式的CAP理论:

首先从字面意思来看,CAP:分别代表C,一致性,A,可用性,P,分区容错性。

**1、一致性指:**所有节点在同一时间的数据完全一致,所以一致性说的是数据的一致性。

对于客户端来说,一致性指:多并发访问时更新过的数据如何获取的问题。

对于服务端来说,一致性指:更新如何复制分布到整个系统,以保证数九的最终一致。

注意一致性的前提,感觉是废话,就是有并发读写的场景。

一致性分为三种:

​ 强一致性:对于数据库来说,要求更新过的数据都被访问到,这是强一致性,

​ 弱一致性:如果能容忍更新后的数据后续部分或者全部访问不到,这是弱一致性,

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

CAP中的一致性指的是强一致性。

**2、可用性是指:**服务一直是可用的,而且是正常的响应时间。

一般衡量一个系统的可用性,是根据停机时间来衡量的。

**3、分区容错性的解释是:**分布式系统中遇到某个节点或网络分区故障的时候,仍然能够对外提供满足一致性和可用性的服务。

CAP 3选2的抉择:

其实,CAP中进行选择其中的两项而舍弃掉其中的一项时,这里P是不能舍弃的,所以,也就是从C和A中做出取舍。

1、选CP而放弃A

对于一些产品是舍弃了A(可用性的),比如redis、HBase(分布式存储)、Zookeeper(分布式协调组件)

A,其实是牺牲了用户的体验来保证强一致性的。

2、选AP而放弃C

说明:这里的一致性,放弃的是强一致性。但是可以达到弱一致性或者最终一致性。

这种选择在高可用的系统见得多,比如12306或者淘宝。

例子:是在抢票时,提交页面是可以抢的,或者购物车中有货的,但是最终付款时,显示没有了。

设计到钱财时,必须选择的是CP。

对于其它的场景选择的是,选择的是AP舍弃C的。

发布了123 篇原创文章 · 获赞 80 · 访问量 7万+

猜你喜欢

转载自blog.csdn.net/m0_38101105/article/details/103167887