开篇:SpringBoot与SpringCloud的那些事

embedded/2024/10/20 8:51:50/

在正式开始研究 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/embedded/128947.html

相关文章

MySQL的并行复制原理

1. 并行复制的概念 并行复制(Parallel Replication)是一种通过同时处理多个复制任务来加速数据复制的技术。它与并发复制的区别在于,并行复制更多关注的是数据块或事务之间的并行执行,而不是单纯的任务并发。在数据库主从复制中&…

基于netty实现简易版rpc服务-理论分析

1.技术要点 1.1 rpc协议 定义一个rpc协议类,用于rpc服务端和客户端数据交互。 1.2 netty粘包半包处理 由于数据传说使用tcp协议,rpc协议的数据在网络传输过程中会产生三种情况: 1)刚好是完整的一条rpc协议数据 2)不…

如何给手机换ip地址

在当今数字化时代,IP地址作为设备在网络中的唯一标识,扮演着举足轻重的角色。然而,有时出于隐私保护、网络访问需求或其他特定原因,我们可能需要更改手机的IP地址。本文将详细介绍几种实用的方法,帮助您轻松实现手机IP…

苍穹外卖学习笔记(二十三)

拒单 OrderController /*** 拒单*/PutMapping("/rejection")ApiOperation("拒单")public Result rejection(RequestBody OrdersRejectionDTO ordersRejectionDTO) throws Exception {orderService.rejection(ordersRejectionDTO);return Result.success(…

记录一个容易混淆的 Spring Boot 项目配置文件问题

记录一个容易混淆的 Spring Boot 项目配置文件问题 去年,我遇到了这样一个问题: 在这个例子中,由于密码 password 以 0 开头,当它被 Spring Boot 的 bean 读取时,前导的 0 被自动去掉了。这导致程序无法正确读取密码。…

探索GenAI/大模型评估与对比:AutoArena开源框架及产品介绍

在生成式人工智能(GenAI)和大型语言模型(LLM)快速发展的今天,如何准确、高效地评估这些模型的性能变得尤为重要。为此,社区中的朋友询问是否有专门用于GenAI和大模型评估与对比的工具。本文将介绍一个强大的开源框架——AutoArena,它专为自动化GenAI评估设计,特别适合于…

源码编译方式安装htppd软件

一.源码编译安装httpd软件 1.安装阿帕奇的依赖,安装apr软件,阿帕奇正常运行的环境这个环境就是apr。 2.安装apr-util软件,主要提供针对apr环境的管理工具, 3.安装阿帕奇软件即httpd软件。 如上图所示,就是三个软件的…

animator及metahuman dna解析

复现原始dna文件转成174 bs dna文件 METAHUMAN51/Source/MetaHumanMeshTracker/Private/api/FaceTrackingAPI.cpp的 pcaRigCreator是将原始dna转为gui control的pca的dna对象 METAHUMAN51/Source/MetaHumanMeshTracker/Private/nls/src/rig/RigLogic.cpp 是读取原始dna文件的…