概述
springcloud的微服务分布式架构对于springboot的服务集成开发最大的优点就是解决了,springboot中模块之间的高耦合度,springcloud进行高粒度的拆分服务之后就可以降低在高并发下会出现的所有模块服务不可用。同理springcloud就是拆分出不同的模块成为一个项目防止一死全死,是一种针对于大流量高并发之下的有效的解决方案。
分布式架构
根据业务功能对系统进行拆分,每个业务模块作为独立项目开发,称为一个服务。
优点:有效降低服务之间的耦合度,有利于服务升级拓展。
微服务是一种经过良好架构设计的分布式架构方案,微服务架构特征:
•单一职责:微服务拆分粒度更小,每一个服务都对应唯一的业务能力,做到单一职责,避免重复业务开发
•面向服务:微服务对外暴露业务接口
•自治:团队独立、技术独立、数据独立、部署独立
•隔离性强:服务调用做好隔离、容错、降级,避免出现级联问题
单体架构
•简单方便,高度耦合,扩展性差,适合小型项目。例如:学生管理系统
分布式架构特点?
•松耦合,扩展性好,但架构复杂,难度大。适合大型互联网项目,例如:京东、淘宝
微服务:一种良好的分布式架构方案
•优点:拆分粒度更小、服务更独立、耦合度更低
缺点:架构非常复杂,运维、监控、部署难度提高
微服务的架构体系:
![](https://i-blog.csdnimg.cn/blog_migrate/04214a1aac81b3bf1ea53fe3484eed97.png)
对于相对应的技术,目前使用最广泛的就是springcloud,对应的springcloud集成了大量的功能,基于springboot的成熟的自动装配机制从而更好的进行微服务的开发。
springcloud多种丰富的功能:
![](https://i-blog.csdnimg.cn/blog_migrate/cc753c960457f128aaf7511b90c050dc.png)
服务的拆分
单一职责:不同微服务,不要重复开发相同业务
数据独立:不要访问其它微服务的数据库
面向服务:将自己的业务暴露为接口,供其它微服务调用
1.微服务需要根据业务模块拆分,做到单一职责,不要重复开发相同业务
2.微服务可以将业务暴露为接口,供其它微服务使用
3.不同微服务都应该有自己独立的数据库