1.单体架构:
定义:所有的功能实现都打包成一个项目
带来的后果:
①后端服务器的压力越来越大,负载越来越高,甚至出现无法访问的情况
②业务越来越复杂,为了满足用户的需求,单体应用也会越来越大,各个代码都是耦合度也会越来越高,任何一个问题都需要项目的重新构建,发布
③一个微小的问题可能导致整个应用挂掉
2.集群和分布式架构:
横向:添加机器,把单台机器变成多台机器的集群
纵向:把一个项目按业务进行拆分,拆分成多个项目,次架构被称为垂直架构
集群和分布式:
集群:将一个系统完整的部署到多个服务器上,每个服务器都能提供系统所有的任务,每个服务器都能通过负载均衡调度完成任务,每个服务器都是集群的节点
分布式:将一个系统拆分成对个子系统,多个子系统部署在多个服务器上,多个服务器上的子系统协作合作完成一个特定任务
集群和分布式的区别和联系:
1.概念上:集群是多个机器做同样的事情,分布式是多个机器做不同的事
2.功能上:集群每个节点端午功能是相同的,并且是可以替代的。分布式是多个节点组成的系统,但是每个节点完成的任务是不同的,一个节点出问题了,这个业务就不可访问了
3.从关系上:分布式和集群在实践中,很多时候是配合使用的,比如分布式的某一个节点,可能由一个集群来代替的。分布式架构大多是建立在集群上的。所以实际分布式架构设计中并不会把分布式和集群单独区分,而是统称:分布式架构
分布式架构带来的后果:
按照业务拆分后,会有一些重复的功能开发
微服务架构:
定义:当部署的服务越来越多,重复的代码会越来越多,服务的调用关系也会越来越复杂,我们可以把一些通用的,会被多个上层服务调用的共享业务,提取成独立的基础服务,组成一个个微小的服务,这就是微服务
可以认为微服务是一种经过良好架构设计的分布式架构方案
优势:
①易开发和维护②容错性高③扩展性好④技术选型灵活
挑战:
①服务依赖②运维成本③开发和测试④服务监控⑤负载均衡。。。
于是就引入了Spring Cloud来解决问题