SpringCloud有哪些组件

什么是SpringCloud?

Spring Cloud是基于Spring Boot的分布式系统开发工具,它提供了一系列开箱即用的、针对分布式系统开发的特性和组件,用于帮助开发人员快速构建和管理云原生应用程序。

Spring Cloud的主要目标是解决分布式系统中的常见问题,例如服务发现、负载均衡、配置管理、断路器、消息总线等。

所以,单体应用使用Spring,需要快速构建,简化开发使用SpringBoot,构建分布式、微服务应用,使用SpringCloud。

Spring Cloud常用组件:

  1. Eureka:服务发现和注册中心,可以帮助服务消费者自动发现和调用服务提供者。
  2. Ribbon:负载均衡组件,可以帮助客户端在多个服务提供者之间进行负载均衡。
  3. OpenFeign:声明式HTTP客户端,可以帮助开发人员更容易地编写HTTP调用代码。
  4. Hystrix:断路器组件,可以帮助应用程序处理服务故障和延迟问题。
  5. Zuul:API网关,可以帮助应用程序处理API请求的路由、负载均衡、安全和监控等问题。
  6. Config:分布式配置管理组件,可以帮助应用程序从远程配置源获取配置信息。
  7. Bus:消息总线组件,可以帮助应用程序实现分布式事件传递和消息广播。
  8. Sleuth:Sleuth是Spring Cloud生态系统中的一个分布式追踪解决方案,可以帮助开发人员实现对分布式系统中请求链路的追踪和监控。
  9. Gateway:spring Cloud Gateway是Spring Cloud推出的第二代网关框架,取代Zuul网关。提供了路由转发、权限校验、限流控制等作用。
  10. Security:用于简化 OAuth2 认证和资源保护。

但是,有的时候我们并不一定非要全部都用SpringCloud的这些组件,有的时候我们也可以选择其他的开源组件替代。比如经常用Dubbo/gRPC来代替Feign进行服务间调用。经常使用Nacos代替Config+Eureka来实现服务发现/注册及配置中心的功能。

比较主流的SpringCloud的架构:

扩展知识

Spring Cloud Alibaba

Spring Cloud Alibaba则是由Alibaba推出的分布式开发框架,它主要针对于微服务和云原生应用的开发和部署。Spring Cloud Alibaba提供了一系列的组件和解决方案,例如服务注册、配置管理、消息驱动等。Spring Cloud Alibaba的组件通常基于阿里巴巴自研的组件,例如Nacos、Sentinel、RocketMQ等。

依托 Spring Cloud Alibaba,您只需要添加一些注解和少量配置,就可以将 Spring Cloud 应用接入阿里分布式应用解决方案,通过阿里中间件来迅速搭建分布式应用系统。

目前 Spring Cloud Alibaba 提供了如下功能:

  1. 服务限流降级:支持 WebServlet、WebFlux, OpenFeign、RestTemplate、Dubbo 限流降级功能的接入,可以在运行时通过控制台实时修改限流降级规则,还支持查看限流降级 Metrics 监控。
  2. 服务注册与发现:适配 Spring Cloud 服务注册与发现标准,默认集成了 Ribbon 的支持。
  3. 分布式配置管理:支持分布式系统中的外部化配置,配置更改时自动刷新。
  4. Rpc服务:扩展 Spring Cloud 客户端 RestTemplate 和 OpenFeign,支持调用 Dubbo RPC 服务
  5. 消息驱动能力:基于 Spring Cloud Stream 为微服务应用构建消息驱动能力。
  6. 分布式事务:使用 @GlobalTransactional 注解, 高效并且对业务零侵入地解决分布式事务问题。
  7. 阿里云对象存储:阿里云提供的海量、安全、低成本、高可靠的云存储服务。支持在任何应用、任何时间、任何地点存储和访问任意类型的数据。
  8. 分布式任务调度:提供秒级、精准、高可靠、高可用的定时(基于 Cron 表达式)任务调度服务。同时提供分布式的任务执行模型,如网格任务。网格任务支持海量子任务均匀分配到所有 Worker(schedulerx-client)上执行。
  9. 阿里云短信服务:覆盖全球的短信服务,友好、高效、智能的互联化通讯能力,帮助企业迅速搭建客户触达通道。

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

详细对比 inline 和 crossinline

在Kotlin编程中,理解inline和crossinline的使用及其区别是提高代码性能和可维护性的关键。这篇博客旨在深入探讨这两个关键字的功能,优点,以及在实际编程中的应用。 Inline 函数简介 在Kotlin中,inline关键字用于优化高阶函数&a…

SpringBoot快速入门(黑马学习笔记)

需求 需求:基于SpringBoot的方式开发一个Web应用,浏览器发起请求/hello后,给浏览器返回字符串"Hello World~"。 开发步骤 第一步:创建SpringBoot工程项目 第二步:定义HelloController类,添加方…

虚拟机JVM

虚拟机 1、定义jvm 假想计算机 运行在操作系统之上 和硬件之间没有直接交互 包括 一套字节码指令、寄存器、栈、垃圾回收、堆 一个存储方法域 jvm:承担一个翻译工作,动态的将java代码编译成操作系统可以识别的机器码。 从软件层面屏蔽了不同操作系统在底层硬件与指…

yolov9,使用自定义的数据训练推理

[源码 🐋]( GitHub - WongKinYiu/yolov9: Implementation of paper - YOLOv9: Learning What You Want to Learn Using Programmable Gradient Information) [论文 📘](arxiv.org/pdf/2402.13616.pdf) 论文摘要:本文介绍了一种新的目标检测…

计算机网络-网络互连与互联网(三)

1.地址解析协议ARP: IP查询MAC地址,询问/回答机制。ARP缓存表、ARP欺骗、ARP病毒、代理ARP、反向RARP。 ARP、RARP分组格式如下: 2.地址解析协议ARP: 缓存表:开始-运行-cmd,输入arp -a(-s(绑…

MySQL的事务与隔离级别

1. 什么是事务? 数据库中的事务是指对数据库执行一批操作,而这些操作最终要么全部执行成功,要么全部失败,不会存在部分成功的情况。这个时候就需要用到事务。 最经典的例子就是转账,你要给朋友小白转 1000 块钱&…

JMeter学习(一)工具简单介绍

一、JMeter 介绍 Apache JMeter是100%纯JAVA桌面应用程序,被设计为用于测试客户端/服务端结构的软件(例如web应用程序)。它可以用来测试静态和动态资源的性能,例如:静态文件,Java Servlet,CGI Scripts,Java Object,数据库和FTP服务…

swagger-ui.html报错404,解决办法

swagger-ui.html报错404,解决办法!现在后端开发项目中,为了节省时间,使用swagger插件,可以方便的快捷生成接口文档。但是如果你在请求前端页面路径比如:http://127.0.0.1:7777/swagger-ui.html。找不到。那是因为你的配…

GEE错误——sentinel-2数据处理过程出现‘QA60‘ did not match any bands

在GEE中出现"QA60 did not match any bands"错误的原因可能是因为在GEE中搜索的数据信息中找不到与"QA60"相匹配的波段。这可能是由于以下几个原因导致的: 1. 数据库中没有包含"QA60"波段的信息。如果影像使用的日期较为新,可能会导致无法在…

k8s 进阶实战笔记 | NFS 动态存储类的部署与使用

文章目录 NFS 动态存储类的部署与使用演示环境说明NFS subdir external provisioner准备 NFS 服务器手动部署 NFS Subdir External Provisioner部署 StorageClass验证使用更多信息 NFS 动态存储类的部署与使用 演示环境说明 演示环境信息:单机K3s 1.28.2 操作系统…

Rust-windows安装环境

文章目录 前言一、Using rustup (Recommended)二、配置vscode解决办法:在终端依次运行如下两条指令: 总结 前言 Rust学习系列,之前介绍了macOS环境下的rust安装方式macOS rust安装。这篇学习windows的rust安装方式。 提示:以下是…

注解@requestBody @requestParam@RequestHeader的区别和使用方式

总的来说,RequestBody用于接收请求体数据,RequestParam用于获取请求参数,RequestHeader用于获取请求头信息 requestBody requestBody 通常在POST请求中,用于指示一个方法参数应该绑定到Web请求的正文部分。通常用于接收JSON或XM…

几种常见的数据模型

什么式数据模型:数据如果要被存储记录或者分析,要有一个组织形式,那么,怎么把数据按照一定规律组织呢,这个就是数据模型数据模型分类 平面模型:或者称为二维模型,通过行列坐标确定数据的形式 纵…

银河麒麟桌面版操作系统密码复杂度设置

这里是桌面版的使用,资深使用者可以使用命令一键修改,这里面不涉及 1密码复杂度设置 1.1开始菜单,选择设置 快捷键wini也可以 1.2打开账户设置 1.3在安全中心的账号保护中 1.4推荐的是默认的策略 密码强度使用默认推荐的就可以&#xf…

电脑缺失XInput1_4.dll文件的解决办法

在电脑操作中,有用户遇到了XInput1_4.dll文件缺失的问题,导致一些依赖该文件的电脑应用无法正常运行,从而影响用户正常使用。接下来小编分享不同的解决方法,帮助用户轻松解决该问题,找回XInput1_4.dll文件,…

单片机文件系统

下载地址 FatFs - Generic FAT Filesystem Module (elm-chan.org)

四川尚熠电子商务有限公司抖音带货可靠吗?

在当今数字化时代,电子商务的兴起使得越来越多的企业开始涉足这一领域。四川尚熠电子商务有限公司作为其中的一员,提供抖音带货服务,吸引了众多商家的关注。那么,四川尚熠电子商务有限公司的抖音带货服务究竟可靠吗?本…

分享泰国市场的一些现状

最近和一个泰国的客户聊天,然后聊起来说从去年开始很多的中国人来到他们那边去建设工厂,因此还在当地形成了一个中国村,在这个中国村里有中国的各种商店,而且居住的也主要是中国人。 从前年开始我们都在讨论中国的一些工厂可能因为…

算法--贪心

这里写目录标题 区间问题区间选点引入算法思想例题代码 最大不相交区间的数量算法思想例题代码 区间分组算法思想例题代码 一级目录二级目录二级目录二级目录 区间问题 区间选点 引入 区间问题会给定几个区间,之后要求我们在数轴上选取尽量少的点,使得…

掌握微信小程序开发的核心要点:从基础到进阶

文章目录 掌握微信小程序开发的核心要点:从基础到进阶一、数据绑定和事件处理1.1 理解小程序的数据绑定机制,实现数据和视图的同步更新1.2 学习如何处理用户交互事件和触发相应的响应逻辑 二、网络请求和数据交互2.1 使用小程序的网络请求API与后端服务器…