Spring Cloud 是什么?(Spring Cloud 组件介绍)

什么是 Spring Cloud?

Spring Cloud 是微服务系统架构的一站式解决方案,是各个微服务架构落地技术的集合体,让架构师、 开发者在使用微服务理念构建应用系统的时候, 面对各个环节的问题都可以找到相应的组件来处理,比如我们构建微服务的过程中需要用到的注册中心、配置中心、负载均衡、断路器、网关等,Spring Cloud 都给我们提供了成熟的组件供我们来使用。

Spring Cloud 官网传送门

Spring Cloud 官网

Spring Cloud 和 Spring Boot 的版本对应关系

在这里插入图片描述

Spring Cloud 的组件

Spring Cloud 的组件非常多,其中有部分组件已经不在更新,不在更新的组件是可以继续使用的,不过不在更新的组件基本都有比较好的替代组件,由于 Spring Cloud 的组件非常多,这里简单的分享一些热门常用的组件。

Spring Cloud Netflix 的五大组件:

  • Eureka:注册中心,用于服务注册和发现,它提供了一个服务注册中心、服务发现的客户端,提供了一个可以查看所有注册的服务的界面,早期的微服务基本都是使用 Eureka 作为注册中心,现在基本被 Nacos 取代。
  • Zuul:网关,客户端请求通过网关访问后台的服务,它可以使用一定的路由配置来判断某一个 URL 由哪个服务来处理,并从 Eureka 获取注册的服务来转发请求,早期的微服务基本都是使用 Zuul 作为网关,现在基本被 Gateway 取代。
  • Ribbon:负载均衡,网关将一个请求转发给某一个服务的时候,如果这个服务启动了多个实例,就会通过 Ribbon 来通过一定的负载均衡策略来发送给某个服务实例。
  • Feign:微服务之间的相互访问,使用 Feign 客户端来访问,如果某一个服务有多个实例的时候,默认会使用Ribbon来实现负载均衡。
  • Hystrix:微服务容错组件,提供了开箱即用的服务降级、熔断、监控等能力,Hystrix 可以通过短路器监控,返回一个可以处理的响应结果,保证服务调用线程不会长时间被占用,避免故障蔓延引发雪崩。

Spring Cloud Alibaba 组件

  • Nacos:我们使用 Nacos 最常用的功能就是注册中心,Nacos 除了注册中心之外还可以当配置中心、DNS服务来使用,也就是说 Nacos 可以完成服务发现、配置管理、DNS服务,一个组件可以完成 Config、Eureka、Bus 三个组件的功能。
  • Sentinel:直译是哨兵的意思,Sentinel 主要以流量为切入点,从流量控制、熔断降级、系统负载等多个维度来帮助用户提升服务的稳定性。
  • dubbo:Alibaba 提供了spring-cloud-starter-dubbo,对 dubbo 进行了封装,方便我们更好的让 dubbo 和 Spring Cloud 其他组件进行集成使用。
  • RocketMQ:Alibaba 开源的分布式消息系统,它基于高可用分布式集群技术,提供低延迟、高稳定性的消息发布和订阅服务,Alibaba 提供了spring-cloud-starter-stream-rocketmq,方便让 RocketMQ 和 Spring Cloud 的其他组件集成。

其他组件

  • Spring Cloud Gateway:网关组件,目前市场上最流行的网关服务,功能强大丰富,性能好,官方测试性能是 Zuul 的1.6倍,能与 SpringCloud 生态很好兼容,深得广大开发者的喜爱。
  • Spring Cloud OpenFeign:同Feign是一样的,是一个远程调用框架,Feign 已经停止更新,OpenFeign 在 Feign的基础上添加了对 Spring MVC 注释的支持,OpenFeign 的功能更加强大。
  • Spring Cloud Consul:Consul 是 HashiCorp 公司推出的开源工具,用于服务发现与配置,可以用作注册中心和配置中心,与其它分布式服务注册与发现的方案,Consul 更加全面,内置了服务注册与发现框架、分布一致性协议实现、健康检查、Key/Value 存储、多数据中心方案,不再需要依赖其它工具, 并且使用起来也非常简单,Consul 安装包含一个可执行文件,部署简单,因为 Consul 是使用 go 语言编写的,移植性强。
  • Spring Cloud Config:Config 是一个配置中心组件,它包含了 client 和 server 两个部分,server 端提供配置文件的存储、以接口的形式将配置文件的内容提供出去,client 端通过接口获取数据、并依据此数据初始化自己的应用。
  • Spring Cloud Bus:Bus 服务总线组件,使用轻量级的消息代理来连接微服务架构中的各个服务,可以将其用于广播状态更改(例如配置中心配置更改)或其他管理指令。
  • Spring Cloud Sleuth:Sleuth 是 Spring Cloud 提供的分布式跟踪解决方案,Sleuth 提供了链路追踪、性能分析、数据分析、优化链路、可视化错误分析等。

总结:本篇简单简单列出 Spring Cloud 相关组件,先对 Spring Cloud 组件有一个简单的认知,方面我们继续深入学习 Spring Cloud 知识。

如有不正确的地方请各位指出纠正。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/776807.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C语言中32位浮点数的格式

以 GNU C为例,它遵循 IEEE 754-2008标准中制定的浮点表示规范。在该规范中定义了 5种不同大小的基础二进制浮点格式,包括:16位,32位,64位,128位,256位。其中,32位的格式被用作标准 C…

springboot马拉松赛事志愿者管理系统-计算机毕业设计源码80251

摘 要 随着马拉松运动的兴起和发展,马拉松赛事的组织和管理面临着越来越多的挑战,其中志愿者的招募、培训和管理是至关重要的一环。传统的人力资源管理方式已经无法满足大型马拉松赛事对志愿者团队的需求,因此基于现代信息技术的马拉松赛事志…

MongoDB如何安装并配置公网地址实现Navicat远程连接本地数据库

文章目录 前言1. 安装Docker2. 使用Docker拉取MongoDB镜像3. 创建并启动MongoDB容器4. 本地连接测试5. 公网远程访问本地MongoDB容器5.1 内网穿透工具安装5.2 创建远程连接公网地址5.3 使用固定TCP地址远程访问 前言 本文主要介绍如何在Linux Ubuntu系统快速部署MongoDB&#…

ssm“落雪”动漫网站-计算机毕业设计源码81664

目 录 摘要 1 绪论 1.1 研究背景 1.2 研究意义 1.3论文结构与章节安排 2系统分析 2.1 可行性分析 2.2 系统流程分析 2.2.1 数据新增流程 3.2.2 数据删除流程 2.3 系统功能分析 2.3.1 功能性分析 2.3.2 非功能性分析 2.4 系统用例分析 2.5本章小结 3 系统总体设…

开发必备基础知识【Linux环境变量文件合集】

开发必备基础知识【Linux环境变量文件合集】 在Linux系统中,环境配置文件用于定制用户的Shell环境,包括定义环境变量、设置命令别名、定义启动脚本等。不同的Shell(如bash、zsh)有着各自对应的配置文件。 .bashrc:每新…

使用myCobot280和OAK-D OpenCV DepthAI摄像头制作一个实时脸部跟踪的手机支架!

引言 由于YouTube和Netflix的出现,我们开始躺着看手机。然而,长时间用手拿着手机会让人感到疲劳。这次我们制作了一个可以在你眼前保持适当距离并调整位置的自动移动手机支架,让你无需用手拿着手机。请务必试试! 准备工作 这次我们…

[FreeRTOS 基础知识] 互斥量 概念

文章目录 基础知识互斥量互斥量与信号量区别优先级反转优先级继承小结 基础知识 [FreeRTOS 基础知识] 信号量 概念 互斥量 互斥量(Mutex,全称:Mutual Exclusion),在计算机科学中,是一种用于防止多个进程同…

C++20中的指定初始化器(designated initializers)

指定初始化器(designated initializers, 指定初始值设定项)语法如下:C风格指定初始化器语法,初始化数据成员的一种便捷方式 T object { .des1 arg1, .des2 { arg2 } ... }; T object { .des1 arg1, .des2 { arg2 } ... }; 说明: 1.每个指…

leetcode力扣_排序问题

215.数组中的第K个最大元素 鉴于已经将之前学的排序算法忘得差不多了,只会一个冒泡排序法了,就写了一个冒牌排序法,将给的数组按照降序排列,然后取nums[k-1]就是题目要求的,但是提交之后对于有的示例显示”超出时间限制…

竞赛 深度学习LSTM新冠数据预测

文章目录 0 前言1 课题简介2 预测算法2.1 Logistic回归模型2.2 基于动力学SEIR模型改进的SEITR模型2.3 LSTM神经网络模型 3 预测效果3.1 Logistic回归模型3.2 SEITR模型3.3 LSTM神经网络模型 4 结论5 最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 …

C++deque容器

文章目录 deque容器概念deque操作deque对象的带参数构造deque头部和末尾的添加移除操作deque的数据存取deque与迭代器deque赋值deque插入deque删除 deque容器概念 deque是双端数组,而vector是单端的。 deque头部和尾部添加或移除元素都非常快速, 但是在中部安插元…

Ros2中goal_handle状态SUCCEED及ACCEPTED及CANCLED在rclpy中的死循环(彻底解决版本)

承接上文,遇到了在动作通信开发中,使用rclpy编写代码进行feedback等操作,但所有逻辑均编写完后,却无法将goal_handle提交为succeed状态,之前的解决方案是更改自己重写的execute()函数名为my_execute()并且在提交SUCCEE…

树莓派学习笔记18:IIC驱动_PCA9685(16路舵机驱动模块)误发

今日继续学习树莓派4B 4G:(Raspberry Pi,简称RPi或RasPi) 本人所用树莓派4B 装载的系统与版本如下: 版本可用命令 (lsb_release -a) 查询: ​ Python 版本3.7.3: ​ IIC驱动_PCA9685(16路舵机驱动模块) 文章提供测试代码讲解,整体代码贴出、测试效果图 目录 开启树莓…

ASP.NET Web应用中的 Razor Pages/MVC/Web API/Blazor

如果希望使用ASP.NET Core创建新的 Web 应用程序,应该选择哪种方法?Razor Pages还是 MVC(模型-视图-控制器),又或者使用Web API Vue/React/......。 每种方法都有各自的优点和缺点。 什么是 MVC? 大多数服…

一款免费的PDF编辑软件,内置了OCR功能,识别效果好

主要是想分享给大家他的OCR功能,面对无法编辑的PDF或者图片,如何批量的转成文字或者带有格式的word文档,很多时候或者很多工具做的不理想,今天分享的这款工具应该是目前为止,我遇到的最好的批量OCR工具。他不是简单的O…

NASA和IBM推出INDUS:高级科学研究的综合大模型

在最近的一项研究中,来自美国宇航局和IBM的一组研究人员合作开发了一种模型,该模型可应用于地球科学,天文学,物理学,天体物理学,太阳物理学,行星科学和生物学以及其他多学科学科。当前的模型&am…

Zynq系列FPGA实现SDI视频编解码,基于GTX高速接口,提供5套工程源码和技术支持

目录 1、前言工程概述免责声明 2、相关方案推荐本博已有的 SDI 编解码方案本方案在Xilinx--Kintex系列FPGA上的应用 3、详细设计方案设计原理框图SDI 输入设备Gv8601a 均衡器GTX 解串与串化SMPTE SD/HD/3G SDI IP核BT1120转RGB图像缓存视频读取控制HDMI输出RGB转BT1120Gv8500 驱…

Win11右键默认显示更多选项的方法

问题描述 win11系统默认右键菜单显示选项太少,每次需要点一下“显示更多选项”才能得到想要内容。比方说我用notepad打开一个文档,在win11上要先点一下"显示更多选项“,再选择用notepad打开,操作非常反人类。 Win11右键默…

前端面试题18(js字符串特定内容查找方法)

在JavaScript中,有多种方法可以用来查找字符串中的特定内容。以下是一些常用的方法,包括它们的用途和示例代码: 1. indexOf() indexOf() 方法返回指定文本在字符串中第一次出现的索引(位置),如果没有找到…

使用nohup和CUDA_VISIBLE_DEVICES进行GPU训练的教程

文章目录 1. 在单个GPU上训练模型1.1 使用nohup命令运行Python脚本1.2 查看运行中的进程1.3 查看输出日志 2. 在多个GPU上训练模型2.1 启动第一个程序,指定使用第0号GPU2.2 启动第二个程序,指定使用第1号GPU2.3 查看运行中的进程2.4 查看输出日志 3. 总结…