一、分布式系统
我们将分布式系统定义为:分布式系统是同时跨越多个物理主机,独立运行的多个软件所组成系统。类比⼀下,分布式系统就是⼀群人⼀起干活。人多力量大,每个服务器的算力是有限的,但是通过分布式系统,由n个服务器组成起来的集群,算力是可以无限扩张的。
二、分布式面临的问题
优点显而易见,人多干活快,并且互为备份。但是缺点也很明显。我们可以想象⼀下,以⼀个小研发团队开发软件为例,假设我们有⼀个5人的项目组,要开始⼀个系统的开发,项目组将面临如下问题:
图中列举的就是项目组将要⾯临到的问题,这些问题在我们⽇常⼯作中也是天天发生,并没感觉有多么复杂,但是这是因为我们人类的大脑是个超级计算机,能够灵活应对这些问题,而且现实中信息的交换不依赖网络,不会因网络延迟或者中断,出现信息不对等,而且现实中对以上问题的处理其实并不严谨,从而也引发了很多问题。想⼀想,项⽬中是不是出现过沟通不畅造成任务分配有歧义?是否由于人员离职造成任务进行不下去,甚至要联系离职人员协助?是不是出现过任务分配不合理?类似这样的各种问题,肯定会发生于你的项目组中。在现实世界,我们可以⼈为去协调,即