最近在了解一些概念思想,如果有不对的地方欢迎指出。

系统演变过程:单机结构–主从(高可用、读写分离)–集群结构(负载均衡)–分布式(高并发)

单机结构
举例:一个清扫阿姨,可以打扫一间屋子。

项目应用场景:一个系统业务量很小,所有代码都放到一个项目中,部署在一台服务器上。整个项目都由这一台服务器提供,这就是单机结构。

缺点:处理能力有限,业务增长到一定程度,单机的硬件资源将无法满足业务需求,所以就演变出了集群模式。

主从结构
举例:有一天阿姨请假了,怎么办?再聘用一个阿姨,B是A的备份。

项目应用场景:主从结构,一主一从,从是主的备份。为了达到高可用,主负责写,从负责读,实现读写分离。

集群结构
举例:随着屋子增多,一个阿姨打扫搞不定了,又招来几个阿姨,一起打扫。

项目应用场景:单机处理达到瓶颈的时候,就把单机复制几份,这样就构成“集群”。集群中每台服务器就叫做这个集群的一个“节点”,所有节点构成一个集群。每个节点都提供相同的服务,那么这样系统的能力就提升了好几倍。但问题是用户请求究竟由哪个节点来处理呢?最好能够让此时此刻负载较小的节点来处理,这样使得每个节点的压力都比较平均。要实现这样的功能,就需要在所有的节点之前增加一个“调度者”的角色,用户的请求都先交给他,然后他根据当前所有节点的负载情况,决定将这个请求交给哪个节点处理。这个“调度者”就是【负载均衡服务器】。

优点:系统扩展非常容易,随着业务扩展,集群增加节点就好了,弹性扩容。

缺点:业务到达一定程度,不管如何增加节点都无法提升整个系统的性能。这个时候就引入了微服务结果了。

分布式
举例:请了很多工人,给他们分工,有清扫楼道卫生间的、有擦玻璃的、维修的……构成了保洁公司,大家为了一个目标,就是承包整个大厦的保洁工作。

改变服务要需要思考的点:从单机结构到集群结构,代码基本无需要做任何修改,仅仅是需要部署多台服务器,每台服务器上运行相同的代码就行。但是,当你要从集群结构演进到微服务结构的时候,之前的那套代码要发生较大的改动。所以对于新系统我们建议,系统设计之初就采用微服务架构,这样后期运维的成本更低。但如果老系统需要升级成微服务结构的话,那就得对代码进行大幅度的改造了。所以,对于老系统而言,究竟是继续保持集群模式,还是升级成微服务架构,需要深思熟虑,权衡投入产出比。

项目应用场景:分布式结构就是将一个完整的系统,按照业务功能,拆分成一个个独立的子系统,在分布式结构中,每个子系统就被称为“服务”。这些子系统能够独立运行在web容器中,它们之间通过RPC方式通信。

优点:
1、系统之间耦合度大大降低,可以实现独立开发、独立部署、独立测试,系统与系统之间的边界非常明确,排查错误定位准确,开发效率大大提升。
2、系统耦合度降低,更易于扩展。可以根据业务灵活的对每个服务的节点扩展。
3、服务的复用性更高。


微服务
优点:业务解耦方便扩容,模块重用,方便代码管理和优化。
缺点:系统之间的关系变得复杂,业务增多,底层的模块需要高可用和并发,需要分布式Session框架的支持,分层后也增加测试的复杂度(分布式服务框架要解决的问题)
所以分布式框架都会且不仅限于实现下列功能:
微服务发布(HTTP/RPC)
服务调用代理及客户端软负载
基于Token的安全认证框架
服务治理(服务注册/管理/配置推送等)
服务监控(调用链分析)
测试平台

分布式:不同模块部署在不同服务器上
作用:分布式解决网站高并发带来问题

集群:多台服务器部署相同应用构成一个集群
作用:通过负载均衡设备共同对外提供服务

SOA:业务系统分解为多个组件,让每个组件都独立提供离散,自治,可复用的服务能力,通过服务的组合和编排来实现上层的业务流程
作用:简化维护,降低整体风险,伸缩灵活

微服务:架构设计概念,各服务间隔离(分布式也是隔离),自治(分布式依赖整体组合)其它特性(单一职责,边界,异步通信,独立部署)是分布式概念的跟严格执行SOA到微服务架构的演进过程

参考资料:https://www.zhihu.com/question/20004877
https://blog.csdn.net/heatdeath/article/details/79038795

分布式与集群的区别?相关推荐

  1. [架构] 分布式和集群的区别

    一次在群里面看到群友们在讨论这个的区别,看了他们发表的言论,觉得很有道理,很通俗易懂,就当做学习的笔记记录在这里: 用两个例子看清楚分布式和集群的区别: 例子1: 如果一个任务由10个子任务组成,每个 ...

  2. 分布式精华问答 | 秒懂分布式与集群的区别

    布式的处理方式越来越受到业界的青睐--计算机系统正在经历一场前所未有的从集中式向分布式架构的变革.今天,我们就来看看关于分布式的精华问答吧! 1 Q:什么是分布式系统? A:要理解分布式系统,主要需要 ...

  3. 什么是分布式,分布式和集群的区别又是什么?

    1. 什么是分布式 ? 分布式系统一定是由多个节点组成的系统. 其中,节点指的是计算机服务器,而且这些节点一般不是孤立的,而是互通的. 这些连通的节点上部署了我们的节点,并且相互的操作会有协同. 分布 ...

  4. 架构-分布式与集群的区别

    架构-分布式与集群的区别 先说区别: 一句话:分布式是并联工作的,集群是串联工作的.   简单说:分布式是以缩短单个任务的执行时间来提升效率的,而集群则是通过提高单位时间内执行的任务数来提升效率. [ ...

  5. 什么是分布式,分布式和集群的区别又是什么?这一篇让你彻底明白!

    1. 什么是分布式 ? 分布式系统一定是由多个节点组成的系统. 其中,节点指的是计算机服务器,而且这些节点一般不是孤立的,而是互通的. 这些连通的节点上部署了我们的节点,并且相互的操作会有协同. 分布 ...

  6. java中集群和分布式的区别_java 分布式与集群的区别和联系

    java 分布式与集群的区别和联系 一.先说区别: 一句话:分布式是并联工作的,集群是串联工作的. 1.分布式是指将不同的业务分布在不同的地方. 而集群指的是将几台服务器集中在一起,实现同一业务. 分 ...

  7. 需要单机还是集群部署_单机、分布式、集群的区别与联系

    一.单机结构 一个系统业务量很小的时候所有的代码都放在一个项目中,然后这个项目部署在一台服务器上就好了,整个项目所有的服务都由这台服务器提供.这就是单机结构.单机结构的缺点是显而易见的,单机的处理能力 ...

  8. 分布式 和 集群的区别

    简单说,分布式是以缩短单个任务的执行时间来提升效率的,而集群则是通过提高单位时间内执行的任务数来提升效率. 例如: 如果一个任务由10个子任务组成,每个子任务单独执行需1小时,则在一台服务器上执行改任 ...

  9. 分布式与集群的区别到底是什么?

    零基础自学java,点击了解:https://how2j.cn 本文章转载自(如有侵权联系我删除):微信公众号Java技术栈 分布式 在IDF05(Intel Developer Forum 2005 ...

  10. 分布式与集群的区别 .

    简单说,分布式是以缩短单个任务的执行时间来提升效率的,而集群则是通过提高单位时间内执行的任务数来提升效率. 例如: 如果一个任务由10个子任务组成,每个子任务单独执行需1小时,则在一台服务器上执行改任 ...

最新文章

  1. 【报名】杨植麟 :从学习的角度看NLP的现状与未来
  2. 802.1x 客户端获取ip过程 很详细
  3. 转载CopyOnWriteArrayList
  4. 工作中常用的第三放的框架
  5. 对象的克隆(clone方法)
  6. 解题:POI 2013 Triumphal arch
  7. 【VMware vSAN 6.6】6.2.启用性能服务:vSAN硬件服务器解决方案
  8. [渝粤教育] 西北大学 仪器分析 参考 资料
  9. 订单编号的数据类型是什么_领域模型与代数数据类型(第三期)
  10. An internal error occurred during: Android Library Update.
  11. matlab2c使用c++实现matlab函数系列教程-rot90函数
  12. JSTL—fn使用方法总结
  13. MFC中获取各个窗口(对话框)之间的指针、对象、句柄
  14. theano java_Theano多个张量作为输出
  15. CSS中字体响应式的设置 rem与px的转换
  16. IDEA-快捷键noob
  17. 全天星图应用软件介绍(四季星座VB6源码)
  18. 赴日IT的昨日和今朝
  19. php怎么改字体大小,phpstorm修改字体和大小
  20. 向SVN提交项目时显示提交成功却没有上传

热门文章

  1. Dell T40和Dell T140有啥区别?
  2. 数据事务及ACID特性、事务回滚
  3. 深度学习入门之神经网络的学习
  4. Java 处理字符串中的换行
  5. 动态规划问题(凑硬币)理解总结
  6. JVM---数据存储和访问(类文件结构)
  7. 人工神经网络(ANN)
  8. C/C++植物大战僵尸之CE找基址+修改器制作(基础版)
  9. 关于xftp和xshell 软件评估期已过的解决办法
  10. c# WPF中System.Windows.Interactivity的使用