开发者社区> 问答> 正文

分布式与集群有什么区别


最显著的特点:一个是3个字,另一个2个字


集群一般被分为三种类型,高可用集群(High-availability (HA) clusters )如RHCS、LifeKeeper等,负载均衡集群(Load balancing clusters )如LVS等、高性能运算集群(High-performance (HPC) clusters);分布式应该是高性能运算集群范畴内。


Restful+ZooKeeper+FastDFS+ActiveMQ+Nginx+Dubbo+Maven+Druid+Tomcat+MySQL+Springmvc+MyBatis+CentOS


1:分布式是指将不同的业务分布在不同的地方。 而集群指的是将几台服务器集中在一起,实现同一业务。


分布式中的每一个节点,都可以做集群。 而集群并不一定就是分布式的。


举例:就比如新浪网,访问的人多了,他可以做一个群集,前面放一个响应服务器,后面几台服务器完成同一业务,如果有业务访问的时候,响应服务器看哪台服务器的负载不是很重,就将给哪一台去完成。


而分布式,从窄意上理解,也跟集群差不多, 但是它的组织比较松散,不像集群,有一个组织性,一台服务器垮了,其它的服务器可以顶上来。


分布式的每一个节点,都完成不同的业务,一个节点垮了,哪这个业务就不可访问了。


2:简单说,分布式是以缩短单个任务的执行时间来提升效率的,而集群则是通过提高单位时间内执行的任务数来提升效率。


例如:


如果一个任务由10个子任务组成,每个子任务单独执行需1小时,则在一台服务器上执行该任务需10小时。


采用分布式方案,提供10台服务器,每台服务器只负责处理一个子任务,不考虑子任务间的依赖关系,执行完这个任务只需一个小时。(这种工作模式的一个典型代表就是Hadoop的Map/Reduce分布式计算模型)


而采用集群方案,同样提供10台服务器,每台服务器都能独立处理这个任务。假设有10个任务同时到达,10个服务器将同时工作,1小时后,10个任务同时完成,这样,整身来看,还是1小时内完成一个任务!


===============华丽的分割线=================
分布式 强调 机器间的协作,其重点是任务可拆分, 如 某个任务需要一个机器运行10个小时, 将该该任务用10台机器的分布式跑,可能2个小时就跑完了。(子任务之间有依赖关系)。


集群偏重干同一样一件事的 一组机器。 如 某个任务需要一个机器运行10个小时,那任务放到 处理该任务的集群上 还是需要10个小时。 假如有10个这样的任务, 放到同一个集群上, 仍然需要10个小时。

展开
收起
小柒2012 2016-11-08 10:56:11 4850 0
1 条回答
写回答
取消 提交回答
  • 码农|Coder| Pythonista
    感谢分享!
    2016-11-08 11:44:12
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
基于社区的分布式 风险感知模型 立即下载
如何利用Redisson分布式化传统Web项目 立即下载
FLASH:大规模分布式图计算引擎及应用 立即下载