当前位置: 首页 > news >正文

SpringBoot学习日记(九)

SpringBoot和SpringCloud之间的区别

昨天我们说了Spring和SpringBoot的区别,今天再来说一下SpringCloud的区别是什么,相信大家也并不陌生了,因为现在学Java不亚于54年入国军了Spring全家桶是必备的技能,所以大家都会去学习他们,但是大家真的了解吗?我认为并不了解因为主包之前也是这样的学是学了但不会用,就如同红烧肉一样都知道怎么做但是真让你做你会吗?归根结底还是因为我们是以完成任务的目标去学习的,并不是以掌握的为目标。所以我认为要学好还是要一层一层的和洋葱一样知道各个部分都是干什么的,有什么用慢慢学才会理解的透彻记的清楚,好了废话不多说下面是正文。

框架定位核心目标
Spring Boot用于快速构建单体应用独立微服务简化配置、内嵌服务器、开箱即用,提升开发效率。
Spring Cloud用于构建分布式系统​(微服务架构)。解决分布式系统中的常见问题(如服务发现、配置中心、熔断器等)。

我们先从定位来看,他们就不是一个级别的东西,如果SpringBoot是一辆汽车,那么SpringCloud就是车管所也就是管车的地方。那什么是分布式?什么是微服务?

 微服务(Microservices)​

特点就是将单一应用拆分为多个小型服务,每个服务独立开发、部署、扩展,通过轻量级协议(如 HTTP/REST)通信。微服务是一种架构

核心特点​:

  • 单一职责​:每个服务只解决一个业务问题(如订单服务、支付服务)。
  • 独立部署​:修改一个服务无需重新部署整个应用。
  • 技术异构​:不同服务可用不同编程语言、数据库(如MySQL + MongoDB)。
  • 去中心化治理​:团队可自主选择技术栈。

简单来说就是把一个完整的系统拆开,每个单独的功能独立为一个程序可以单独启动,然后提高Http请求或者其他方式建立通信互相协调工作,好处就是不会因为一个Bug整个系统就挂了,比如登陆出Bug了但是商场还是可以用的,这个就是化整为零的思想,相比于传统的老项目的优势,缺点就是一个就是维护成本高了、机器的性能要求高了(项目多了吃内存)。

分布式(Distributed)​

特点就是多台计算机(节点)协同工作,对外表现为一个整体,通过网络通信共享资源(如数据、计算能力)。分布式是一种系统

核心特点​:

  • 资源共享​:如分布式存储(HDFS)、计算(Spark)。
  • 容错性​:部分节点故障不影响整体可用性。
  • 透明性​:用户无需感知系统分布细节。
  • 可扩展性​:通过增加节点提升性能。

简单来说和马路一样多建几个车道,为什么要这么做的原因有2个,一个是如果全世界访问你的程序,那么永远是离你服务器近的用户最快,离的越远延迟就越高直到请求超时,大家使用网络都知道接受不了一点卡顿的因为实在是太影响使用了,所以就需要把我们的服务器在资金条件允许的情况下尽可能的各个地区设置分节点,这样保证不同地区访问的速度都差不多最起码要保证能够提供服务对不对。二是因为微服务架构的原因,上面说过因为微服务对机器的性能要求会很高,那么为了实现系统的吞吐量就会把一个服务在多个机器上部署然后利用负载均衡让每个机器都能接受和处理差不多的任务量,来保证整个系统的吞吐量,最直观的就是双十一的订单模块和商场模块不做分布式根本不可能,前几年是不是还出现过服务崩了的消息呢这个就是吞吐量不足导致的。

现在可以理解他们俩了吧,他们通常情况下是一起出现的,目的就是为了达到系统的最大吞吐量让更多地区、更多的用户可以使用自己的系统。

SpringBoot和SpringCloud功能区别

功能Spring BootSpring Cloud
服务开发提供自动配置、Starter 依赖,快速启动应用。基于 Boot,但专注于多服务协作。
服务通信支持 RESTful API(如 Spring MVC)。提供 Feign(声明式 HTTP 客户端)、Ribbon(负载均衡)。
服务发现无内置支持。集成 Eureka、Consul、Zookeeper 等注册中心。
配置管理通过 application.properties 管理配置。提供 Spring Cloud Config(集中化配置管理)。
熔断与容错无内置支持。集成 Hystrix/Sentinel 实现服务熔断和降级。
API 网关无内置支持。提供 Spring Cloud Gateway/Zuul 统一入口。
分布式事务无内置支持。提供 Seata 等解决方案。

我们可以看到其实前置更加注重于当个服务的开发,而后者就是倾向于微服务架构的管理开发了。后置是依赖于前者的,没有SpringBoot也就没有SpringCloud。

但是主包自己是这么理解的,Spring是核心框架,SpringBoot、SpringCloud以及全家桶都是基于Spring的,更像是Spring的不同衣服,是为了不同场合下传的,每个不同的项目都为不同的业务场景增加特定的功能注解,以到达目的。

总结

这篇主要讲了一下SpringBoot和SpringCloud的区别。

http://www.dtcms.com/a/333986.html

相关文章:

  • uv - 基本使用
  • 【LeetCode 热题 100】70. 爬楼梯——(解法二)自底向上
  • [1Prompt1Story] 滑动窗口机制 | 图像生成管线 | VAE变分自编码器 | UNet去噪神经网络
  • 双指针-leetcode算法题总结+练习
  • Ubuntu2204server系统安装后的初始化配置报错
  • Windows 基于ACL(访问控制列表)的权限管理
  • FTP上传文件错误
  • C# 中常用 IO 类的核心属性表格及使用示例
  • 流处理、实时分析与RAG驱动的Python ETL框架:构建智能数据管道(下)
  • FastDeploy2.0:Prometheus3.5.0通过直接采集,进行性能指标分析
  • KNN 算法详解:从电影分类到鸢尾花识别的实战指南
  • EP1C12F324I7N Altera Cyclone FPGA
  • 肖臻《区块链技术与应用》第23-26讲 - The DAO事件、BEC事件、反思和总结
  • 陪诊小程序系统开发:让就医不再是一件难事
  • UniApp 页面传参方式详解
  • 告别在线转换风险:本地运行的PDF转Word技术评测
  • Redis-plus-plus 安装指南
  • AI杀死的第一个仪式:“hello world”
  • 分享一个Oracle表空间自动扩容与清理脚本
  • 告别重复纹理:用Substance Designer构建UE5程序化地貌材质系统
  • 设计模式之静态代理
  • 基于Python3.10.6与jieba库的中文分词模型接口在Windows Server 2022上的实现与部署教程
  • 跑实验记录
  • HTTP 通信中的认证方式
  • macOS 中查看当前生效 shell 及配置文件的方法
  • Boost搜索引擎项目(详细思路版)
  • 数字化与人工智能的崛起及其社会影响研究报告
  • Navicat 为 SQLite 数据库设置密码指南
  • 学习游戏制作记录(制作系统与物品掉落系统)8.16
  • AT89C52单片机介绍