分布式、集群、微服务的区别
概念:
集群是个物理形态,分布式是个工作方式。
分布式:一个业务分拆多个子业务,部署在不同的服务器上
集群:同一个业务,部署在多个服务器上
1:分布式是指将不同的业务分布在不同的地方。而集群指的是将几台服务器集中在一起,实现同一业务。
分布式中的每一个节点,都可以做集群。而集群并不一定就是分布式的。
举例:就比如新浪网,访问的人多了,他可以做一个群集,前面放一个响应服务器,后面几台服务器完成同一业务,如果有业务访问的时候,响应服务器看哪台服务器的负载不是很重,就将给哪一台去完成。
而分布式,从窄意上理解,也跟集群差不多,但是它的组织比较松散,不像集群,有一个组织性,一台服务器垮了,其它的服务器可以顶上来。
分布式的每一个节点,都完成不同的业务,一个节点垮了,那这个业务就不可访问了。
2:简单说,分布式是以缩短单个任务的执行时间来提升效率的,而集群则是通过提高单位时间内执行的任务数来提升效率。
例如:如果一个任务由 10 个子任务组成,每个子任务单独执行需 1 小时,则在一台服务器上执行该任务需 10 小时。
采用分布式方案,提供 10 台服务器,每台服务器只负责处理一个子任务,不考虑子任务间的依赖关系,执行完这个任务只需一个小时。(这种工作模式的一个典型代表就是 Hadoop 的 Map/Reduce 分布式计算模型)
而采用集群方案,同样提供 10 台服务器,每台服务器都能独立处理这个任务。假设有 10 个任务同时到达,10 个服务器将同时工作,1 小时后,10 个任务同时完成,这样,整身来看,还是 1 小时内完成一个任务!
好的设计应该是分布式和集群的结合,先分布式再集群,具体实现就是业务拆分成很多子业务,然后针对每个子业务进行集群部署,这样每个子业务如果出了问题,整个系统完全不会受影响。
另外,还有一个概念和分布式比较相似,那就是微服务。
微服务
书本上的解释太抽象晦涩难懂,我个人认为微服务就是很小的服务,小到一个服务只对应一个单一的功能,只做一件事。这个服务可以单独部署运行,服务之间可以通过rpc来相互交互,每个微服务都是由独立的小团队开发,测试,部署,上线,负责它的整个生命周期。
微服务是一种架构风格,一个大型复杂软件应用由一个或多个微服务组成。系统中的各个微服务可被独立部署,各个微服务之间是松耦合的。每个微服务仅关注于完成一件任务并很好地完成该任务。在所有情况下,每个任务代表着一个小的业务能力。
区别:
1.分布式
将一个大的系统划分为多个业务模块,业务模块分别部署到不同的机器上,各个业务模块之间通过接口进行数据交互。区别分布式的方式是根据不同机器不同业务。
上面:service A、B、C、D 分别是业务组件,通过API Geteway进行业务访问。
注:分布式需要做好事务管理。
分布式事务可参考:微服务架构的分布式事务解决方案
2.集群模式
集群模式是不同服务器部署同一套服务对外访问,实现服务的负载均衡。区别集群的方式是根据部署多台服务器业务是否相同。
注:集群模式需要做好session共享,确保在不同服务器切换的过程中不会因为没有获取到session而中止退出服务。
一般配置Nginx*的负载容器实现:静态资源缓存、Session共享可以附带实现,Nginx支持5000个并发量。
3.分布式是否属于微服务?
答案是肯定的。微服务的意思也就是将模块拆分成一个独立的服务单元通过接口来实现数据的交互。
4.微服务架构
微服务的设计是为了不因为某个模块的升级和BUG影响现有的系统业务。微服务与分布式的细微差别是,微服务的应用不一定是分散在多个服务器上,他也可以是同一个服务器。
分布式和微服的架构很相似,只是部署的方式不一样而已。微服务重在解耦合,使每个模块都独立。分布式重在资源共享与加快计算机计算速度。
分布式、集群、微服务的区别相关推荐
- 基于Gitlab Jenkins Docker集群 微服务搭建自动化部署平台
随着公司应用系统的不断增多,原有手工部署流程越来越不满足上线的需求.为了各个系统能快速迭代与测试,减少上线流程时间和人为出错,迫切需要一套自动化部署系统. 转载原文:https://luoji.liv ...
- 集群、分布式、微服务的区别和介绍
目录 一.集群的概念 二.为什么要使用集群? 1.集群的特点 2.集群的优势 3.集群分类及不同分类的特点 三.集群分类介绍 1.负载均衡集群 2.高可用性集群 3.高性能计算集群 四.集群与分布式区 ...
- 集群,分布式和微服务的区别
一.概念 集 群: 同一个业务,部署在多个服务器上 分布式: 同一个业务,拆分成多个子业务,部署在不同的服务器上 微服务: 同一个业务,按照功能模块拆分,每一个服务只对应一个功能模块 二.区别 ...
- JavaEE架构之传统三层架构,集群架构,分布式架构,微服务架构
javaEE架构 1.传统三层架构(all in one项目) 传统三层架构大致可以分为表现层,业务层和持久层(数据访问层).其中表现层负责接受请求和转发请求.业务层负责处理请求(注:事务管理,日志记 ...
- SpringCloud(第 054 篇)简单 Quartz-Cluster 微服务,采用注解配置 Quartz 分布式集群...
2019独角兽企业重金招聘Python工程师标准>>> SpringCloud(第 054 篇)简单 Quartz-Cluster 微服务,采用注解配置 Quartz 分布式集群 一 ...
- SpringCloud(第 054 篇)简单 Quartz-Cluster 微服务,采用注解配置 Quartz 分布式集群... 1
SpringCloud(第 054 篇)简单 Quartz-Cluster 微服务,采用注解配置 Quartz 分布式集群 - 一.大致介绍 1.因网友提到有没有采用注解式配置的Quartz例子,因此 ...
- 分布式任务调度框架和微服务的区别
一.前言 分布式大行其下的时代,让大家彻底的抛弃了传统陈旧的技术框架.几乎每一个技术人都知道和掌握了微服务架构,微服务自然有它的美,但是所以技术框架都必须服务于业务,结合自身业务选取甚至自研适合自身的 ...
- .NET Core微服务之路:基于Consul最少集群实现服务的注册与发现(一)
原文:.NET Core微服务之路:基于Consul最少集群实现服务的注册与发现(一) Consul介绍 Consul是HashiCorp公司推出的开源工具[开源地址:https://github.c ...
- java集群_身为Java程序员的你知道分布式与集群的联系及区别吗?
集群 多台服务器组成的一组计算机,作为一个整体存在,向用户提供一组网络资源,这些单个的服务器就是集群的节点. 集群拥有以下两个特点: 可扩展性:集群的性能不限制于单一的服务实体,新的服务实体可以动态的 ...
最新文章
- JMS(Java消息服务)入门教程
- [USACO1.5]八皇后 Checker Challenge
- linux block挂io,linux:在qemu中运行自编译内核:VFS:无法在未知的wn-block(0,0)上挂载root fs...
- python向lt新增5个元素_Python学习第十一课-MOOC嵩天
- 经常用everything对硬盘有伤害吗?
- mysql-8.0.11安装步骤
- linux nslookup 解析不到dns_网络工程师之nslookup命令
- 博文视点大讲堂第29期——2天玩转单反相机
- 系分 02 软件工程
- TRIZ创新方法#学习笔记02# |功能分析、技术矛盾和物理矛盾
- 42pinQFN芯片焊接总结
- 蓝牙键盘常用快捷键记录
- SQL Server2012企业版与标准版比较
- 史玉柱和他老同学的一段故事
- HTML常用标签(上)
- Django @csrf_exempt不能在类视图中工作(Django @csrf_exempt not working in class View)
- python从入门到人生巅峰
- 不讨老婆之“不亦快哉”(三十三则)(李敖)
- 华为云桌面,一站式云上数字化创作深度解读
- 安全漏洞SCAP规范标准