分布式系统

分布式系统:redis

概念:将请求按照必定的策略分派到不一样的机器上,多台机器执行相同的业务逻辑,看起来就像是在一台机器上访问同样。

说明:分布式系统中包含了:分布式文件系统、分布式存储系统。。

CAP理论:一个分布式系统不可能同时知足一致性,可用性和分区容错性这三个基本的要求,最多只能同时知足其中的两项。mongodb

C(Consistency):一致性,即全部节点上的数据时刻保持同步。

	1>强一致性:全部节点上的数据时刻保持同步,用户体验最好,可是会下降系统的性能(下降系统的可用性)。
	2>弱一致性:系统在写入成功后,不保证当即能够读到最新写入的值,也不保证多久以后数据可以达到一致,可是会尽量地保证到某个时间级别(如秒级别)后,数据可以达到一致状态。
	3>最终一致性: 最终一致性是弱一致性的一个特例,系统保证在必定时间内可以达到数据一致的状态,大多数分布式系统在数据一致性上都选择了最终一致性。

A(Availability):每一个请求都能接收一个响应,不管响应成功或失败

P(Tolerance to netword Partitions):系统应该持续提供服务,即便服务器发生网络延迟或死机,致使某些 server 与集群中的其余机器失去联系

	CA系统:知足一致性、可用性的系统:
		可扩展性很差。
		eg:RDBMS,关系型数据库中的事务能够很好地实现数据的一致性。
	CP系统:同时知足一致性、分区容错性的系统
		性能不是特别高。
		eg:redis、mongodb
	AP系统:同时知足可用性、分区容错性的系统
		不能知足强一致性,可是能够知足弱一致性,故大多数网站的架构选择了AP原则。

说明:因为当前的网络硬件确定会出现延迟丢包等问题,故分区容错性是分布式系统中必需要实现的,因此咱们只能在一致性和可用性之间进行权衡。

BASE(Basically Available,Soft-state,Eventually Consistent)理论:数据库

概念:分布式系统只需知足基本可用、软状态、数据最终一致性便可。

	基本可用(Basically Available):
		概念:一小部分服务挂掉后,其它服务能够正常提供服务。
		eg:
			当一台机器出问题时,其它机器能够正常提供服务。
			遇到流量洪峰时,采起降级策略保证基础服务可用。
			
	软状态(Soft state):
		系统中的数据存在中间状态,而且这个中间状态的存在不会影响系统的总体可用性,即系统容许在不一样节点的数据副本之间在进行数据同步过程当中存在延时。
	
	最终一致性(Eventually consistent):
	

目的:解决关系数据库强一致性致使可用性下降的问题。

思想:经过下降系统对某一时刻数据一致性的要求来换取系统总体伸缩性和性能上的提高。