新手往往对系统中的一些概念搞不清楚,有同事曾问过我分布式和集群的概念,接下来我就说说自己对分布和集群的理解。
分布式:通常是将不同的业务部署到不同的服务器上,实现业务的并发,缩短了整体业务处理的时间,从而提高了效率。
例如:一个任务,包含了10个子任务,每个子任务的处理时间是1个小时,那么单机处理下来需要花费10个小时。现在将10个子任务部署到10台机器上并行处理,处理完这10个子任务只需要1个小时(不考虑子任务间的依赖关系)。这样,10个小时就可以处理10该任务次请求。
集群:通常是多台机器部署相同的业务,实现同一时间段内完成多个请求,但是单个业务请求处理时间没有缩短。
例如:一个任务,单机处理需要10个小时,现将该任务同时放在10台机器组成的集群中进行处理,每台机器执行一个任务, 那么,10个小时则可以处理完成10次任务请求。
从上述可以看出,分布式和集群处理都可以提高一段时间内任务执行能力,但是实现的方式不一样。
除了提高执行效率外,分布式和集群还有各自的特点。
一个集群中的不同设备执行的是相同的业务逻辑,所以当其中的部分设备不可用的时候,业务请求仍然可用。而分布式部署则不是这样,在一个分布式系统中,子任务之间通常会有一定的依赖性,所以在其中一个子任务节点宕机后,会影响整体业务的执行。所以,我们在做分布式部署的时候,一个节点可以以集群的形式存在,提高系统的可用性。
以上就是个人对分布式和集群的概念理解,当然,了解这些还远远不够,后面有空我会将两者涉及到的知识点再做介绍。