开篇:SpringBoot与SpringCloud的那些事

news/2024/10/19 23:05:46/

在正式开始研究 SpringCloud 的技术之前,咱先简单的用比较短的篇幅聊一点概述性质的东西,让思维活跃起来。

SpringCloud与SpringBoot的关系和对比
一开始学习 SpringCloud 咱就知道,SpringCloud 的技术大多都不是自己造的,都是整合了现有的技术而来,而整合的方式和风格是采用 SpringBoot 的基础架构。所以由此可以总结出 SpringBoot 与 SpringCloud 的一个很大的、也是最重要的区别:

SpringBoot 着眼于单体应用的快速构建开发
SpringCloud 关注全局应用的构建和治理
而且还有一点,SpringBoot 是单体应用开发,开发基于 SpringBoot 的应用时完全可以不依赖 SpringCloud 的组件;而只要使用了 SpringCloud ,就离不开 SpringBoot 了。

SpringCloud是方案而不是实现
咱也知道,SpringCloud 实质上是整合了好多的技术,总结出的一套完整的微服务构建的整体解决方案,它包含的内容非常多(服务发现、负载均衡、熔断降级、服务网关、消息总线、配置中心等)。由此可以看得出来,SpringCloud 更像是定制好了一套微服务解决方案的规范,具体实现可以不是自己搞,于是就出现了好多大厂自己整合的 SpringCloud 整合方案,目前被大家熟知的一般有两种:SpringCloudNetflix 、SpringCloudAlibaba 。

前面几年,SpringCloud 一直都是主推 SpringCloudNetflix 的技术解决方案,但随着 Netflix 的产品出现这样那样的事情,搞得大家都怪别扭的,SpringCloud 官方也别扭。正巧 Alibaba 对 SpringCloud 的整体解决方案中也提供了一些解决方案(服务发现、配置中心、消息、事务等),SpringCloud 官方觉得很可以,就把 SpringCloudAlibaba 也抬到了 SpringCloud 的主页上了。

先写SpringCloudNetflix的一些小想法
既然现有的整体解决方案有 SpringCloudNetflix 与 SpringCloudAlibaba ,而我选择先写 Netflix 系的组件,这里面有几个我个人的想法吧。

先写 SpringCloudNetflix 有几个原因:从目前我对身边一些小伙伴的调查,大多数都反馈,还是 SpringCloudNetflix 用的多,SpringCloudAlibaba 刚开始成型,大多数还不是很敢用,而且前段时间面试的伙计跟我说,面试也都是问 SpringCloudNetflix 的东西,几乎不问 SpringCloudAlibaba ,这也更坚定了我的想法,还是先把 SpringCloudNetflix 的原理写出来吧。

另外一个原因,就要回归到 SpringCloudNetflix 与 SpringCloudAlibaba 的本身了,SpringCloudAlibaba 更多的是给你一些已经封装好的组件,你拿去用就可以(开箱即用),不像 SpringCloudNetflix 一样还得自己引入依赖、自己配置这个那个的,所以从这个角度来讲,SpringCloudAlibaba 的封装度更高,反而不适合刚接触 SpringCloud 原理的小伙伴快速理解内部的设计和构造。也是基于这个原因吧,我选择先搞 SpringCloudNetflix 的原理。

小册的核心内容
再说下小册的核心内容吧,这次写 SpringCloudNetflix 的内容主要围绕五大神兽来:

服务注册与服务发现:Eureka
服务调用与负载均衡:Ribbon & Feign
服务熔断与服务降级:Hystrix
服务网关与动态路由:Zuul & Gateway
分布式配置中心:Config
毕竟这些个家伙是咱平常微服务开发中最常用到的,那重点自然就放到这上面了。除此之外的一些同属于 SpringCloud 官方的其他组件,目前暂时还没有考虑到写进来,如果小伙伴的呼声比较高,我也可以在发行后继续往里面填充(没关系,发行了也可以继续往里加)。

最后也不多bb了,愿小伙伴能在 Cloud 小册的加持下,对 SpringCloud 的原理和设计有一定的理解,最理想的效果那自然是升华自己,如果能再在简历中添上非常重的一笔,那简直就是完美(滑稽)!快上车,咱准备上高速了 ~ ~ ~ 突突突突突突——————



喜欢的朋友记得点赞、收藏、关注哦!!!


http://www.ppmy.cn/news/1540358.html

相关文章

Vue快速创建工程+Element Plus

创建Vue工程 执行命令 npm init vuelatest 执行这两个绿色的命令 执行这个命令启动 npm run dev Element 打开网站https://element-plus.org/zh-CN/ npm install element-plus --save 然后在vscode中打开你的项目工程 // main.ts import { createApp } from vue import Ele…

jQuery 中的 Ajax 详解

一、概念 众所周知,jQuery 是一个跨主流浏览器的 JavaScript 库,它封装了 JavaScript 的常用功能代码,简化了 HTML DOM 操作、事件处理、动画设计和 Ajax 交互等任务。jQuery 中的 Ajax 是对 XMLHttpRequest 或 ActiveXObject(IE9…

Java 小游戏《超级马里奥》

文章目录 一、效果展示二、代码编写1. 素材准备2. 创建窗口类3. 创建常量类4. 创建动作类5. 创建关卡类6. 创建障碍物类7. 创建马里奥类8. 编写程序入口 一、效果展示 二、代码编写 1. 素材准备 首先创建一个基本的 java 项目,并将本游戏需要用到的图片素材 image…

智能体网络时代即将来临,我们需要新的连接技术

备注:如果你也对这个话题感兴趣,欢迎联系我们: email: chgaoweigmail.com Discord: https://discord.gg/CDYdTPXXMB 官网: https://pi-unlimited.com 我们的方案代码已经开源,github:https://github.com/chgaowei/…

Ubuntu卸载Mysql【ubuntu 24.04/mysql 8.0.39】

一、准备工作 查看ubuntu版本号 查看mysql版本号(如果没有安装mysql,这一步省略) 二、Ubuntu上卸载mysql(如果没有安装mysql这一步省略) 在Ubuntu上卸载MySQL可以通过以下步骤进行,确保完全移除MySQL相关的包和数据: 1. 停止MySQL服务 在卸载之前…

【MySQL】InnoDB存储引擎中的锁

实现事务隔离级别的过程中用到了锁,所谓锁就是在事务A修改某些数据时,对这些数据加一把锁,防止其他事务同时对这些数据执行修改操作;当事务A完成修改操作后,释放当前持有的锁,以便其他事务再次上锁执行对应的操作。不同…

10月18日,每日信息差

第一、现代汽车集团在上海举办了中国前瞻技术研发中心的发布及启新庆典,宣布成立其全资法人公司 —— 现代前瞻汽车技术开发(上海)有限公司。该中心是集团在海外建立的首个前瞻技术研发中心,专注于自动驾驶、智能座舱、共享出行等…

23种设计模式具体实现方法

提示:文章 文章目录 前言一、背景二、设计模式1、代理模式2、适配器模式2.1 总结 三、3.1 总结 前言 前期疑问: 本文目标: 一、背景 最近 二、设计模式 1、代理模式 参考的这篇文章,代理模式(Proxy) 同时这篇文章还引用了另…