【Springcloud】如何理解springcloud,集群,分布式,微服务概念以及区别和联系

文章目录

    • 1.集群的概念
    • 2.分布式的概念
    • 3.分布式和集群的区别与联系
      • (1)分布式:
      • (2)集群:
    • 4.微服务架构
    • 5.分布式与微服务的区别

1.集群的概念

【Springcloud】如何理解springcloud,集群,分布式,微服务概念以及区别和联系_第1张图片

1.它通过一组松散集成的计算机软件和/或硬件连接起来高度紧密地协作完成计算工作。在某种意义上,他们可以被看作是一台计算机,集群系统中的单个计算机通常称为节点,通常通过局域网连接,但也有其它的可能连接方式。
2.集群计算机通常用来改进单个计算机的计算速度/可靠性。一般情况下集群计算机比单个计算机,比如工作站或超级计算机性能价格比要高得多。
3.集群模式是不同服务器部署同一套服务对外访问,实现服务的负载均衡。区别集群的方式是根据部署多台服务器业务是否相同。

注:集群模式需要做好session共享,确保在不同服务器切换的过程中不会因为没有获取到session而中止退出服务。一般配置Nginx*的负载容器实现:静态资源缓存、Session共享可以附带实现,Nginx支持5000个并发量。



2.分布式的概念

【Springcloud】如何理解springcloud,集群,分布式,微服务概念以及区别和联系_第2张图片

1.将一个大的系统划分为多个业务模块,业务模块分别部署到不同的机器上,各个业务模块之间通过接口进行数据交互。
2.区别分布式的方式是根据不同机器不同业务
上面:service A、B、C、D 分别是业务组件,通过API Geteway进行业务访问。



3.分布式和集群的区别与联系

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

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

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

(1)分布式:

1.分布式将不同子业务分布在不同地方,分布式中的每一个节点,都可以做集群。而集群并不一定就是分布式的。
2.分布式,从窄意上理解,也跟集群差不多,但是它的组织比较松散,不像集群,有一个组织性,一台服务器垮了,其它的服务器可以顶上来。分布式的一个节点垮了,那这个业务就不可访问了。
3.分布式是以缩短单个任务的执行时间来提升效率的,而集群则是通过提高单位时间内执行的任务数来提升效率。
4.例如:如果一个任务由 10 个子任务组成,每个子任务单独执行需 1 小时,则在一台服务器上执行该任务需 10 小时。

  • 采用分布式方案,提供 10 台服务器,每台服务器只负责处理1个子任务,1小时完成1个服务。(这种工作模式的一个典型代表就是 Hadoop 的 Map/Reduce 分布式计算模型)
  • 而采用集群方案,同样提供 10 台服务器,每台服务器都能独立处理这个任务。假设有 10 个任务同时到达,10 个服务器将同时工作,10小时完成10个服务。

(2)集群:

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



4.微服务架构

【Springcloud】如何理解springcloud,集群,分布式,微服务概念以及区别和联系_第3张图片

1.微服务是一种面向服务的架构(SOA)风格(Java开发人员最重要的技能之一),其中,应用程序被构建为多个不同的小型服务的集合而不是单个应用程序。与单个程序不同的是,微服务让你可以同时运行多个独立的应用程序,而这些独立的应用程序可以使用不同的编码或编程语言来创建。庞大而又复杂的应用程序可以由多个可自行执行的简单而又独立的程序所组成。这些较小的程序组合在一起,可以提供庞大的单程序所具备的所有功能。
2.微服务具备两个特点
(1)灵活性:由于这些较小的应用程序无需使用相同的编程语言,因此,开发人员可以使用他们最熟悉的语言,这是灵活性.
(2)低成本:由于他们都用自己擅长的语言去开发,所以效率会高,相应的开发成本会降低.



5.分布式与微服务的区别

1.分布式一定是微服务,微服务不一定是分布式。
2.分布式的定义:把一个服务拆分成多个子服务,分别放在不同的服务器上。
3.微服务的设计是为了不因为某个模块的升级和BUG影响现有的系统业务,微服务可以放在同一个服务器上,也可以放在不同的服务器上。

你可能感兴趣的:(java,并发编程,后端)