分布式系统概念与设计中定义:
硬件或软件组合组件分布在不同的网络计算机上,彼此之间仅仅通过消息传递进行通信和协调的系统
分布式特性
分布性
在空间上随意分布,并且分布情况可能随时在变动
对等性
所有的节点(可能是一组)都是对等的,对外提供的访问,在任意一个节点挂掉的情况下不影响整体(大于2个节点)
并发性
对共享资源的操作存在并发问题,需要有高效的协调方案来解决并发问题
没有全局时钟
无法保证时间的一致性,已经执行的顺序
按照故障总是会发生去设计
分布式本身就是相对集中式的设计的,解决的就是类似单点故障的问题,并且分布式之后,由于分布式的特点,需要尽可能考虑到可能发生的故障,并且设计实现故障发生时候的自动恢复方案
分布式可能会发生的问题
通信异常
由于分布性的特性,可能会由于网络,硬件等原因导致通信异常,如果各个节点之间需要进行消息通信,那么消息通信出现故障可能会导致整体的可用性,准确性,一致性的问题发生
网络分区
由于通信异常或其他问题导致整个分布式网络部分正常通信,部分通信异常,可能分为几个组,组内可以通信,组之间无法通信,这个时候发生现象称为网络分区,或叫做脑裂.这种情况下会出现一致性的问题
三态
成功,失败,超时
由于各种原因可能会导致状态的不同步,会导致准确性,一致性的问题
节点故障
每个节点都有可能发生问题,一般来说分为假死和宕机,假死一般指的是与外部通信失败,但内部还在运行,宕机指的就是整个节点不再运行