深入浅出 -- 系统架构之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的极大组件上,可以考虑集成同类的开源的相关组件也不似不错的选择

相关推荐
程序员泠零澪回家种桔子22 分钟前
Spring AI框架全方位详解
java·人工智能·后端·spring·ai·架构
GIOTTO情30 分钟前
舆情监测系统选型与技术落地:Infoseek 字节探索全栈架构解析与实战
架构
island13141 小时前
CANN ops-nn 算子库深度解析:神经网络计算引擎的底层架构、硬件映射与融合优化机制
人工智能·神经网络·架构
C澒1 小时前
前端整洁架构(Clean Architecture)实战解析:从理论到 Todo 项目落地
前端·架构·系统架构·前端框架
roman_日积跬步-终至千里1 小时前
【架构实战-Spring】动态数据源切换方案
架构
C澒1 小时前
Remesh 框架详解:基于 CQRS 的前端领域驱动设计方案
前端·架构·前端框架·状态模式
韩立学长2 小时前
基于Springboot泉州旅游攻略平台d5h5zz02(程序、源码、数据库、调试部署方案及开发环境)系统界面展示及获取方式置于文档末尾,可供参考。
数据库·spring boot·旅游
晚霞的不甘2 小时前
CANN 编译器深度解析:UB、L1 与 Global Memory 的协同调度机制
java·后端·spring·架构·音视频
C澒2 小时前
前端分层架构实战:DDD 与 Clean Architecture 在大型业务系统中的落地路径与项目实践
前端·架构·系统架构·前端框架
摇滚侠2 小时前
在 SpringBoot 项目中,开发工具使用 IDEA,.idea 目录下的文件需要提交吗
java·spring boot·intellij-idea