什么是分布式系统?
一大批服务器组成一个集合,对于用户来说仍然是一个整体连贯系统。
例如一个管理软件有一个api是“查询企业关联交易”,当财务软件调用这个api是,如果这个api其实是从全公司几十个分公司的近百台服务器上取得的分析数据,但是api向财务软件隐藏了后台查询和计算的复杂性。
不要把多用户系统看作分布式系统。分布式系统是即使只有1个终端使用系统后台,也是通过分布在多处的服务器来执行的。
通俗点说分布式系统就是能把服务器端程序分开部署到多台机器上。
可以分开部署的系统 --分布式系统
就是把一个系统分布在不同的节点上, 各节点协同工作, 缺一不可;
集群也是把一个系统部署在很多节点上, 但是每个节点都能独立工作, 一个节点当掉后仍然可以工作.
我所理解的“分布式系统”恰好不是集群!集群是高负载时的一种解决方案。然后分布式系统不是为了高负载。假设有100台服务器参与到分布式系统里来,同样的数据可能顶多在2、3台服务器上重复保存,这2、3台之间也许叫做(一个很小的)集群,但是这100台服务器则是分布。分布是指功能分布,例如一个计算可能需要分解为20个任务由20台以上的服务器取走分别计算,而决不是指他们分别冗余地重复同一个计算任务。