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

相关推荐
天空属于哈夫克34 天前
企业微信二次开发:精准实现关键词自动回复
架构·企业微信
晨米酱4 天前
AGENTS.md:Agent 的上下文策略层
面试·架构·agent
这个DBA有点耶4 天前
MVCC深入:Read View、版本链与快照读——InnoDB并发控制的内核
数据库·mysql·架构
vipxieliang4 天前
ValidX 在 DDD 领域驱动设计中的实践
java·spring boot
码流子4 天前
高速公路安全监测实践:碰撞监测预警+物联网底座,从感知到处置的闭环
大数据·人工智能·物联网·算法·架构
kybs19914 天前
全球灾害数据分析可视化 毕业设计-附源码66794
vue.js·spring boot·mysql·安全·django·c#·asp.net
Bingo_BIG4 天前
Java Spring框架:单表的查询、新增、修改、删除、导入、导出
java·spring·前后端
moMo4 天前
从固定流程到问题路由:让 LangGraph RAG 按需检索
架构
白远山4 天前
上海24小时自助健身房解决方案实战指南与经验分享
java·数据库·架构·需求分析
LorryJovens4 天前
【LAAP科研】双系统具身AGI范式研究——基于LAAP认知架构与Jev概率决策模型的系统性技术调研与范式验证
人工智能·gpt·安全·架构