时间5.13号,最近确定了考研复试通过了,提前了找了老师,早早联系上了我希望我接手实验室的工作,所以开始学习Spring Cloud相关的知识。
1.什么是Spring Cloud?
之前有Spring Boot开发经验的人都知道,项目初期使用Spring Boot开发是相当轻松的,配置、依赖、数据库、服务的实现可以说是一气呵成的。但这是业务比较简单的情况,随着业务的复杂,单个项目的结构也会越来越复杂,主要体现在以下几点:
- 代码结构混乱:多个业务需要多种服务,服务的复杂导致代码量增大,代码的管理越来越复杂,版本的迭代也越来越复杂。
- 开发效率降低:多个开发人员开发同一套代码很难避免代码冲突。开发过程会伴随着不断解决冲突的过程,这会严重的影响开发效率。
- 排查解决问题成本高:线上业务发现 bug,修复 bug 的过程可能很简单。但是,由于只有一套代码,需要重新编译、打包、上线,成本很高。
Spring Cloud是一系列框架的集合,它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、智能路由、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署。
2.集群/分布式/微服务/SOA是什么?
2.1.集群
- 通过多台计算机完成同一个工作,达到更高的效率。
- 两机或多机内容、工作过程等完全一样。如果一台死机,另一台可以起作用。
2.2.分布式
一个业务分拆多个子业务,部署在不同的服务器上(不同的服务器,运行不同的代码,为了同一个目的)。
2.3.分布式集群
既差分业务,也使用多台计算机完成同一个工作。
2.4.微服务
在分布式集群的基础上,各服务之间的隔离度自治度更高,各服务可独立应用,组合服务也可系统应用。
3.和Spring Boot的关系
- Spring Boot 是 Spring 的一套快速配置脚手架,可以基于Spring Boot 快速开发单个微服务,Spring Cloud是一个基于Spring Boot实现的云应用开发工具。Spring -> Spring Boot > Spring Cloud 这样的关系。
- Spring Boot可以离开Spring Cloud独立使用开发项目,但是Spring Cloud离不开Spring Boot,属于依赖的关系
- Spring Boot专注于快速、方便集成的单个个体微服务,Spring Cloud是关注全局的服务治理框架
- Spring Boot使用了默认大于配置的理念,很多集成方案已经帮你选择好了,能不配置就不配置,Spring Cloud很大的一部分是基于Spring Boot来实现的
参考资料
- Spring Cloud入门-十分钟了解Spring Cloud -CSDN
https://blog.csdn.net/ThinkWon/article/details/103715146 - Spring cloud应该怎么入门? - 知乎
https://www.zhihu.com/question/283286745