企业级分布式架构。从实际工作出发查看对应操作。
分布式是一个比较大的领域
拜占庭将军问题,这个将军它需要和其他将军协商在9am发动进攻,但不知道对方是否会确认消息,于是将军B发送了一个消息给A,A为了表示接收到它的回复就需要再派出一个信使,这样就没有尽头了。于是三次握手就是TCP的一个工程解。
然后在多个将军的协商中,如果有不一致的投票如何解决。
认为在3m+1个将军的系统中,如果只有m个叛徒则在m次讨论中最终会达成一致。其中一个将军作为传递中枢。由他来发送。这里设置了一个非常极端的案例,假设叛徒会一直执行反着的结果。
如果D是忠臣,他将会收到两次正确一次错误,而发出正确的信号。ABC各获得两次正确一次错误。 如果D不是,ABC获得两票正确一票错误。
表示在分布式事务中也可以有一个逻辑时钟来判断事务的先后顺序。
CAP理论 C一致性,表示数据的一致性,时时刻刻都是相同的 A可用性,数据有可能不对,但一定会给你。 P分区容错性,表示允许系统某一部分出现问题,整个系统还是能工作的。
AC之间可以使用ACID模型来保持一致。
BASE理论 AP模型,只要最后一致即可,不关心什么时候更改 CP模型 通过二阶段或者三阶段提交来同步更改。 Prepare用来表示一致,全体一致后逐个Commit。 但不能解决单机故障,和网络阻塞问题。
三阶段加入了CanCommit和PreCommit,防止了单机出错和网络阻塞的问题。
RAFT协议看不明白以后再研究