【转】集群,分布式,微服务概念和区别理解

摘要:
集群部署在不同的服务器上:后者完成相同的业务,而集群通过增加每单位时间执行的任务数量来提高效率。(这种工作模式的典型代表是Hadoop的Map/Reduce分布式计算模型。)采用集群方案,每个服务器都可以独立处理这一任务。具体实现是将业务划分为多个子业务,然后对每个子业务进行集群部署。系统中的每个微服务都可以独立部署,业务模块可以部署到不同的机器上。

集群,分布式,微服务概念和区别理解

概念:

集群是个物理形态,分布式是个工作方式。

  • 分布式:一个业务分拆多个子业务,部署在不同的服务器
  • 集群:同一个业务,部署在多个服务器上

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

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

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

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

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

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

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

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

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

好的设计应该是分布式和集群的结合,先分布式再集群,具体实现就是业务拆分成很多子业务,然后针对每个子业务进行集群部署,这样每个子业务如果出了问题,整个系统完全不会受影响。

另外,还有一个概念和分布式比较相似,那就是微服务。

微服务是一种架构风格,一个大型复杂软件应用由一个或多个微服务组成。系统中的各个微服务可被独立部署,各个微服务之间是松耦合的。每个微服务仅关注于完成一件任务并很好地完成该任务。在所有情况下,每个任务代表着一个小的业务能力。

 

 

 

区别:

 

1.分布式

 【转】集群,分布式,微服务概念和区别理解第1张

 

将一个大的系统划分为多个业务模块,业务模块分别部署到不同的机器上,各个业务模块之间通过接口进行数据交互。区别分布式的方式是根据不同机器不同业务。

上面:service A、B、C、D 分别是业务组件,通过API Geteway进行业务访问。

注:分布式需要做好事务管理。

分布式事务可参考:微服务架构的分布式事务解决方案

2.集群模式

 【转】集群,分布式,微服务概念和区别理解第2张

 

集群模式是不同服务器部署同一套服务对外访问,实现服务的负载均衡。区别集群的方式是根据部署多台服务器业务是否相同。

注:集群模式需要做好session共享,确保在不同服务器切换的过程中不会因为没有获取到session而中止退出服务。

一般配置Nginx*的负载容器实现:静态资源缓存、Session共享可以附带实现,Nginx支持5000个并发量。

3.分布式是否属于微服务?

答案是肯定的。微服务的意思也就是将模块拆分成一个独立的服务单元通过接口来实现数据的交互。

4.微服务架构

微服务的设计是为了不因为某个模块的升级和BUG影响现有的系统业务。微服务与分布式的细微差别是,微服务的应用不一定是分散在多个服务器上,他也可以是同一个服务器。

 【转】集群,分布式,微服务概念和区别理解第3张

分布式和微服的架构很相似,只是部署的方式不一样而已。

免责声明:文章转载自《【转】集群,分布式,微服务概念和区别理解》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇hdfs文件存放路径如何获得bibitem格式的参考文献下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

随笔聊架构

一、架构的定义 所谓一千个架构师中有一千种“最好的架构”模式。 “架构”是我们这行业种一个很常见的词,表明其必然也是经历了很长的岁月打磨所形成的一个词。架构的这个词出现的意义是什么?为了解决什么问题?只有把这2个问题想明白了,才能设计出一个良好的项目架构。 我认为 架构类似于画房屋设计图,在刚开始我们盖一层楼的小房子的时候,拍拍脑门想一下,脑子里有个大概的...

我理解的HTTP请求走私(HTTP Request Smuggling)

原理 HTTP 请求的请求体有2种判定方式 利用Content-Length字段来判定请求体的内容长度 利用Transfer-Encoding字段来判定请求体的结束位置 Content-Length 正常post请求,会带上请求体(body),请求体有多长,Content-Length的值就是多少 Transfer-Encoding Transfer...

ASP.NET所谓前台调用后台、后台调用前台想到HTTP——实践篇

由ASP.NET所谓前台调用后台、后台调用前台想到HTTP——实践篇 在由ASP.NET所谓前台调用后台、后台调用前台想到HTTP——理论篇中描述了一下ASP.NET新手的三个问题及相关的HTTP协议内容,发现了为什么.NET程序员会问这些问题而Java程序员很少(毕业前及大四实习都是在用Java),为了防止成为口水贴,提前声明一下,本文不是在说.NET与...

在Windows Azure平台上部署服务

公告:本博客为微软云计算中文博客的镜像博客。部分文章因为博客兼容性问题,会影响阅读体验。如遇此情况,请访问原博客。       简介 之前,我们在Windows Azure平台简介中介绍过Windows Azure的三大主要功能。那就是计算,存储,以及管理。至今为止,通过之前的教学文章,大家已经熟知了Windows Azure的存储功能。当然,存储只...

商品订单库存一致性问题的思考

首先先确认方案 方案1:下单后减库存;用户下单,然后库存加锁,判断库存是否充足,用户下单完成,减库存,最后释放库存锁。 方案2:支付才减库存;用户支付,然后库存加锁,判断库存是否充足,用户支付完成,减库存,最后释放库存锁。 当然还有其他方案,这里只阐述我的思考。 (库存加锁的过程有个小细节请看附1) 两种方案的比较 方案1 1)假如100个人同时下单,只有...

C#调用WebService实现天气预报

http://zhangkui.blog.51cto.com/1796259/497324/ 本文使用Winform (C#)调用互联网上公开的WebServices(http://www.webxml.com.cn/WebServices/WeatherWebService.asmx)来实现天气预报,该天气预报 Web 服务,数据来源于中国气象局 htt...