分布式环境
分布式环境的特点
-
分布性
-
并发性:程序运行过程中,并发性操作是很常见的。比如同一个分布式系统中的多个节点,同时访问一个共享资源。数据库、分布式存储。
-
无序性:进程之间的消息通信,会出现顺序不一致问题。
分布式环境面临的问题
- 网络通信:网络本身的不可靠性,因此会涉及到一些网络通信问题。
- 网络分区(脑裂):当网络发生异常导致分布式系统中部分节点之间的网络延时不断增大,最终导致组成分布式架构的所有节点,只有部分节点能够正常通信。
- 三态:在分布式架构里面,有成功、失败、超时三种状态。
- 分布式事务:ACID(原子性、一致性、隔离性、持久性)。
CAP/BASE理论
CAP
- consistency(一致性)所有节点上的数据保持一致。
- availablility(可用性)对于每一个操作请求,系统必须能够在指定的时间内返回对应的处理结果。
+partition-tolerance(分区容错)表示系统出现脑裂以后,可能导致某些server集群中的其他机器失去联系
一个分布式系统不可能同时满足一致性、可用性、分区性容错性三个需求,但是分区容错性必须满足一个最基本的要求。CAP理论仅适用于原子读写Nosql场景,不适用于数据库系统,虽然XA(分布式事务规范)事务会保