集群、分布式、微服务的理解以及区别

集群

什么是集群

集群:计算机集群简称集群是一种计算机系统,它通过一组松散集成的计算机软件或者硬件连接起来高度紧密地协作完成计算机工作。提高了服务的稳定和可持续,但增加了成本

集群技术的特点

通过多台计算机完成同一个工作,达到更高的效率,提高可持续和提高服务器的性能
两机或多机内容、工作过程等完全一样。如果一台服务器死机,另外一个也完全可以起作用。

比如写了多级分销系统发布到服务器上,现在访问的人越来越多,速度越来越慢怎么办?很简单,加配置(只要充钱就能变得更强),加CPU,内存和磁盘;然后加完之后虽然提高了服务器的效率,现在随着人越来越多,加配置已经解决不了现在的问题了。然后怎么办呢?加一个服务器呗(只要充钱就能变得更强);我再买一个服务器,把我们的多级分销系统再部署到这台服务器上,如果不够,再买…

特点:这些服务器都是运行了同一个系统
好处
1、提高了服务器的性能,从一台服务器到多台服务器,分担了服务器的压力,提高性能;
2、如果其中一台服务器死机,但还有其他服务器提供服务,提高服务器的稳定性

坏处
1、增加了成本了

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

集群同一个业务,部署在多个服务器上(不同的服务器运行了同样的代码,干同一件事)

分布式

什么是分布式

分布式系统是一组计算机,通过网络相互连接传递信息与通信后并协调他们的行为而形成的系统 。组件彼此进行交互以实现一个共同的目标
(前后端服务器的分离,如静态资源使用Nginx,动态资源使用Tomcat)

比如我的多级经销已经部署到多台服务器上了,但是也随着用户的增加服务器的需求已经不能满足我了。虽然说充钱就能变强,但是对于理智的程序员来说,应该得想想哪里出现了问题。发现我们后台的不同的模块访问的频率是不一样的。 比如我们的后台管理信息系统,就是访问频率很低。那么我们可不可以这样做?把每个模块进行抽取独立,访问频率高的用一个或多台高性能的服务器装着,而访问频率低的则用配置差的服务器装着。

好处

1、资源合理利用;访问频率高的使用配置高的服务器,访问频率低的使用配置低的服务器;
2、耦合度降低;每个模块独立出来,各做个事,便于以后的扩展

:分布式要做好事务管理。
特点:将我们的多级分销系统的功能拆分,模块之间独立,在使用的时候在将这些独立的模块组成在一起就是一个系统了。

好处
1、模块之间独立、各做各事,便于扩展,复用性高
2、高吞吐量,某个任务需要一个机器运行10个小时,将该任务用10台分布的服务器进行不同模块的运行,可能2个小时就能运行完。
3、资源的合理利用;对高低频率的模块进行划分,降低了成本

坏处
相对于集群,降低我们系统的稳定性,当我们某个模块的服务器挂掉,那么这个模块就不能使用了。

分布式:一个系统分成不同的子模块,部署在不同的服务器上(不同的服务器运行了不同的代码,为了同一个目的);

集群和分布式并不冲突,好的设计应该是集群和分布式的结合先分布式后集群,具体实现为业务拆分成多个业务,然后对每个子业务进行集群部署,这样又能够提高我们系统的运行效率,又能当我们系统出了问题,整个系统不会受到影响。

微服务

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

分布式是否属于微服务?

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

微服务架构

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

在这里插入图片描述
分布式和微服务架构相似,只是部署的方式不一样而已。

发布了9 篇原创文章 · 获赞 8 · 访问量 442

猜你喜欢

转载自blog.csdn.net/One_hundred_nice/article/details/103707670
今日推荐