分布式:
分布式就是将一个复杂的业务系统,拆分成多个子业务系统,将其部署在每个不同的服务器上面,通过网络将其连接起来,通过交换信息协作共同完成一个业务。
集群:
集群就是同一个子业务系统复制成多份,将其分别部署在多台服务器上,这多台服务器将其安装在同一个位置的物理空间之内,形成一个集合的群体,就叫做集群。
区别:
从概念上看,两者是完全不同的,分布式是多台部署了不同子业务系统的服务器协同完成一个任务;集群是多台服务器都提供同一种服务和功能;
联系:
分布式中某个热点子业务系统其实也是可以复制成多个实例,采用集群的模式进行部署;
作用:
- 提高应用性能,在高并发场景下,让系统可以达到高吞吐量和高可用性;
- 例如:订单查询子业务系统使用量很大,如果只用一台服务器来处理,其能够处理的订单量是有限度的,但是如果我们采用集群的模式进行部署,提供多个可用的实例,通过负载均衡服务器,采用轮询算法,将请求均匀的分摊到多个服务器进行同时处理,可以大大的提高同一时间段内的订单处理数量(高吞吐量),如果某个服务器挂了,那么其他的服务器可以用,不会导致应用挂掉,造成严重的生产事故。
总结:
好的系统和架构绝对不应该把分布式和集群进行割裂开来,而应该是两者进行有机的结合和组合。要想让我们的系统实现,高性能,高可用,高吞吐,那么我们从架构和部署层面来讲就应该先分布式(拆分),然后将每个节点采用集群的方式进行部署,这样就可以大大提高系统的整体性能和健壮性。
简单说,分布式是以缩短单个任务的执行时间来提升效率的,而集群则是通过提高单位时间内执行的任务数来提升效率。
例如:如果一个任务由 10 个子任务组成,每个子任务单独执行需 1 小时,则在一台服务器上执行该任务需 10 小时。
采用分布式方案,提供 10 台服务器,每台服务器只负责处理一个子任务,不考虑子任务间的依赖关系,执行完这个任务只需1个小时。
单机环境下,1个服务器只能处理一个任务,10个任务就是10个小时,但是我们如果采用集群的方案,部署10台服务器,1台服务器分别处理一个任务,那么1个小时就可以处理完成这10个任务,这就是效率的提高。