深入浅出 -- 系统架构之Spring、SpringBoot、SpringCloud的区别

首先我们做技术,尤其是java开发人员,应该对Spring、SpringBoot、SpringCloud 三个家伙一点不陌生。

结合发展史Spring出现的最早,后面为了可以让开发人员偷懒,简化配置,就是约定犹于配置或者说大于,进而出现可SpringBoot,再往后就是要进入SpringCloud时代了。

1、Spring:是一个生态体系(也可以说是技术体系),是集大成者,它包含了Spring Framework、Spring Boot、Spring Cloud等(还包括Spring Cloud data flow、spring data、spring integration、spring batch、spring security、spring hateoas),是一站式的轻量级的java开发框架,核心是控制反转(IOC)和面向切面(AOP),针对于开发的WEB层(springMvc)、业务层(Ioc)、持久层(jdbcTemplate)等都提供了多种配置解决方案;

2、 其实还有一个SpringMvc:是spring基础之上的一个MVC框架,是基于Servlet 的主要解决WEB开发的问题路径映射和视图渲染等;

3、SpringBoot:使用了默认大于配置的理念,集成了快速开发的spring多个插件,同时自动过滤不需要配置的多余的插件,简化了项目的开发配置流程,一定程度上取消xml配置,是一套快速配置开发的脚手架,能快速开发单个微服务;

4、SpringCloud:大部分的功能插件都是基于springBoot去实现的,springCloud关注于全局的微服务整合和管理,将多个springBoot单体微服务进行整合以及管理; springCloud依赖于springBoot开发,而springBoot可以独立开发;

到这里大家也是对这四个家伙有了大致了解,但是,前面有说SpringCloud时代,也是是名声大了去的为更高效的解决大数据,高可用,大并发······等问题的分布式,微服务模式时代!

说到这里我就要谈谈我的个人看法了,首先Spring是核心,然后是SpringBoot,严格意义上来讲这俩是父子关系,是一类,而SpringCloud更像一个由SpringBoot组建起来的一个家庭,用了近两年的SpringCloud慢慢发现其实他的噱头成分越来越大,在当下互联网大环境下,其实SpringCloud只能说是为分布式微服务提供了一套参考方案,可以说不是唯一特有的不可取而代之的

SpringCloud的相关组件:

Spring Cloud Config:它是一个配置中心解决方案,还必须依靠Bus总线,RabbitMQ等实现,配置起来相对复杂,但是数据一致性可靠性还是比较高的,另外携程的apollo、还是百度的disconf,貌似都远比它强大好用的多

Spring Cloud Eureka:他是一个注册中心的组件,同类的可以有ZK,Nacos等;

Spring Cloud Zuul:网关也并不是非Spring Cloud netflix下的zuul不可

···

总而言之,言而总之:

1.在针对性的学习技术上,重点应放在Spring,SpringBoot方向,尤其SpringBoot可以说是当下java web项目的支柱技术;

2.从成本考虑,可分为大小公司,在项目架构色选择上,整体来说采用SpringCloud架构的的项目代价成本相对较高,不管是从开发,还是运维都是这样

3.就算是项目架构采用分布式,微服务,前后端分离,SpringCloud生态模式,也不应该把眼观局限在SpringCloud的极大组件上,可以考虑集成同类的开源的相关组件也不似不错的选择

相关推荐
qq_2518364571 分钟前
基于springboot vue3 在线考试系统设计与实现 源码数据库 文档
数据库·spring boot·后端
2401_8581205322 分钟前
古典舞在线交流平台:SpringBoot设计与实现详解
java·spring boot·后端
潘多编程3 小时前
Spring Boot微服务架构设计与实战
spring boot·后端·微服务
2402_857589363 小时前
新闻推荐系统:Spring Boot框架详解
java·spring boot·后端
原机小子3 小时前
Spring Boot框架下的新闻推荐技术
服务器·spring boot·php
2401_857622663 小时前
新闻推荐系统:Spring Boot的可扩展性
java·spring boot·后端
北极无雪3 小时前
Spring源码学习(拓展篇):SpringMVC中的异常处理
java·开发语言·数据库·学习·spring·servlet
winkee4 小时前
在 git commit 中使用 gpg key 进行签名
架构·前端框架·代码规范
Amagi.4 小时前
Spring中Bean的作用域
java·后端·spring
Dylanioucn4 小时前
【分布式微服务云原生】掌握 Redis Cluster架构解析、动态扩展原理以及哈希槽分片算法
算法·云原生·架构