SpringBoot和SpringCloud的关系:
1.SpringBoot专注于快速方便的开发单个个体微服务。
2.SpringCloud是关注全局的微服务协调整理治理框架,它将SpringBoot开发的一个个单体微服务整合并管理起来,为各个微服务之间提供:配置管理、服务发现、断路器、路由、微代理、事件总线、全局锁、决策竞选,分布式会话等等集成服务。
3.SpringBoot可以离开SpringCloud单独使用,开发项目,但是SpringCloud离不开SpringBoot,属于依赖关系。
4.SpringBoot专注于速度、方便的开发单个个体微服务,SpringCloud关注全局的服务治理框架。
单体架构特点:
简单方便,高度耦合,扩展性差,适合小型项目。如:学生管理系统。
分布式架构特点:
松耦合,扩展性好,但架构复杂,难度大。适合大型互联网项目。如:京东,淘宝。
微服务:
一种良好的分布式架构方案
优点:拆分粒度更小、服务更独立】耦合度更低
缺点:架构非常复杂,运维、监控、部署难度提高
什么是微服务?
微服务是一种经过良好架构设计的分布式架构方案,微服务架构特征:
1.单一职责:微服务拆分粒度更小,每一个服务都对应唯一的业务能力,做到单一职责,避免重复业务开发。(会员服务,用户服务,积分服务,这些都属于会员模块中的功能,但是我们不能把他们都包含在一起,应该进一步拆分为单独的模块,这样每一个服务业务更少了,影响的范围更少了。)
2.面向服务:微服务对外暴露服务接口。(但是属于同一功能模块之间的服务需要互相调用,就需要对外暴露服务接口。)
3.自治:
团队独立:一个小团队开发一个服务
技术独立:一个团队负责一个服务,技术可以根据业务去选择合适的,也可选择自己熟练的技术。
数据独立:每一个微服务可以有自己独立的数据库,以前大家的数据都在同一个数据库中,万一有人操作错了数据库,就会出现问题了。
部署独立:数据独立了,部署也可以独立,用户可以基于自己的需求去访问任意的业务服务,当然要有一个统一的入口(网关)
4.隔离性强:服务调用做好隔离、容错、降级,避免出现级联问题。(如:用户服务调用积分服务,但是发现积分服务出错了,用户服务需要提前做好容错措施,避免积分服务出错导致用户服务出错。