Spring Cloud 简介
1、简介
Spring CloudLevel up your Java code and explore what Spring can do for you.
https://spring.io/projects/spring-cloud Spring Cloud 是一系列有序框架的集合,其主要的设施有,服务发现与注册,配置中心,消息总线,负载均衡,断路器,数据监控等,通过Spring Boot的方式,可以实现一键启动,和部署。
2、springboot与springcloud关系
2.1、SpringBoot
是一个快速开发框架,通过用MAVEN依赖的继承方式,帮助我们快速整合第三方常用框架,完全采用注解化(使用注解方式启动SpringMVC),简化XML配置,内置HTTP服务器(Tomcat,Jetty),最终以Java应用程序进行执行。
2.2、SpringCloud
是一套目前完整的微服务框架,它是是一系列框架的有序集合。它只是将目前各家公司开发的比较成熟、经得起实际考验的服务框架组合起来,通过SpringBoot风格进行再封装屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、易部署和易维护的分布式系统开发工具包。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用SpringBoot的开发风格做到一键启动和部署。
2.3、关系
1、SpringBoot只是一个快速开发框架,使用注解简化了xml配置,内置了Servlet容器,以Java应用程序进行执行。
2、SpringCloud是一系列框架的集合,可以包含SpringBoot。
3、SpringBoot只是一个快速开发框架,算不上微服务框架
4、SpringCloud+SpringBoot 实现微服务开发。具体的来说是,SpringCloud具备微服务开发的核心技术:RPC远程调用技术;SpringBoot的web组件默认集成了SpringMVC,可以实现HTTP+JSON的轻量级传输,编写微服务接口,所以SpringCloud依赖SpringBoot框架实现微服务开发。
3、SpringCloud五大组件
注册中心Eureka,负载均衡Ribbon,远程调用Feign,服务熔断Hystrix,网关Zuul/Gateway
3.1、注册中心Eureka
Eureak 是Netflix 开源微服务框架中一系列项目中的一个。Spring Cloud对其进行了二次封装,形成了Spring Cloud Netflix 子项目,但未对Netflix微服务实现原理进行更改,只是进行了Spring Boot化,使开发者更容易使用和整合。

- 服务注册 : 服务启动的时候会将服务的信息注册到注册中心, 比如: 服务名称 , 服务的IP , 端口号等
- 服务发现 : 服务调用方调用服务的时候, 根据服务名称从注册中心拉取服务列表 , 然后根据负载均衡策略 , 选择一个服务, 获取服务的IP和端口号, 发起远程调用
- 服务状态监控 : 服务提供者会定时向注册中心发送心跳 , 注册中心也会主动向服务提供者发送心跳探测, 如果长时间没有接收到心跳, 就将服务实例从注册中心下线或者移除
3.2、负载均衡Ribbon
Ribbon是Netflix发布的开源项目,主要功能是提供客户端的软件负载均衡算法和服务调用。Ribbon客户端组件提供一系列完善的配置项如连接超时,重试等。简单地说,就是在配置文件中列出Load Balancer(简称LB)后面所有机器,Ribbon会自动的帮助你基于某种规则(如简单轮询,随机连接等)去连接这些机器。我们很容易使用Ribbon实现自定义的负载均衡算法

3.3、远程调用Feign
Feign是Spring Cloud提供的声明式、模板化的HTTP客户端, 它使得调用远程服务就像调用本地服务一样简单,只需要创建一个接口并添加一个注解即可。
Spring Cloud集成Feign并对其进行了增强,使Feign支持了Spring MVC注解;Feign默认集成了Ribbon,所以Feign默认就实现了负载均衡的效果。
3.4、服务熔断Hystrix
在分布式系统中,每个服务都可能会调用很多其他服务,被调用的那些服务就是依赖服务,有的时候某些依赖服务出现故障也是很正常的。
Hystrix 可以让我们在分布式系统中对服务间的调用进行控制,加入一些调用延迟或者依赖故障的容错机制。Hystrix 通过将依赖服务进行资源隔离,进而阻止某个依赖服务出现故障时在整个系统所有的依赖服务调用中进行蔓延;同时 Hystrix 还提供故障时的 fallback 降级机制。
总而言之,Hystrix 通过这些方法帮助我们提升分布式系统的可用性和稳定性。
3.5、网关Zuul/Gateway
API 网关是介于客户端和服务器端之间的中间层,所有的外部请求都会先经过API 网关这一层。也就是说,API 的实现方面更多的考虑业务逻辑,而安全、性能、监控可以交由 API 网关来做,这样既提高业务灵活性又不缺安全性。
springcloud在1.x版本中采用的时Zuul网关 但在2.x版本中,zuul的升级一致跳票,pringCloud最后自己研发了一个网关代替Zuul ,这就是Spring Cloud Gateway,一句话:gateway时原zuul1.x版的替代! gateway是基于异步非阻塞模型上进行开发的,性能方面不需要担心! zuul1是基于Servlet2.5使用阻塞架构上开发的,它不支持任何长连接(如WebSocket)

相关文章:
Spring Cloud 简介
1、简介 Spring CloudLevel up your Java code and explore what Spring can do for you.https://spring.io/projects/spring-cloud Spring Cloud 是一系列有序框架的集合,其主要的设施有,服务发现与注册,配置中心,消息总…...
Redis从入门到精通(二)- 入门篇
文章目录 0. 前言1. 入门篇[【入门篇】1.1 redis 基础数据类型详解和示例](https://icepip.blog.csdn.net/article/details/134438573)[【入门篇】1.2 Redis 客户端之 Jedis 详解和示例](https://icepip.blog.csdn.net/article/details/134440061)[【入门篇】1.3 redis客户端之…...
SpringDoc基础配置和集成OAuth2登录认证教程
本期内容 学会通过注解和Java代码的方式添加SpringDoc配置。在swagger-ui提供的页面上提供OAuth2登录认证,在集成Security的情况下便捷获取access_token并在请求时按照OAuth2规范携带。 为什么集成OAuth2登录认证? 现在大部分教程是在swagger-ui页面添…...
链路聚合-静态和动态区别
链路聚合之动静态聚合方式 链路聚合组是由一组相同速率、以全双工方式工作的网口组成。 1、动态聚合: 动态聚合对接的双方通过交互LACP(链路聚合控制协议)协议报文,来协商聚合对接。 优点:对接双方相互交互端口状态信息,使端口…...
发币成功,记录一下~
N年前就听说了这样一种说法——“一个熟练的区块链工程师,10分钟就可以发出一个新的币” 以前仅仅是有这么一个认识,但当时并不特别关注这个领域。 最近系统性学习中,今天尝试发币成功啦,记录一下~ 发在 Sepolia Tes…...
一个完备的手游地形实现方案
一、地形几何方案:Terrain 与 Mesh 1.1 目前手游主流地形几何方案分析 先不考虑 LOD 等优化手段,目前地形的几何方案选择有如下几种: 使用 Unity 自带的 Terrain使用 Unity 自带的 Terrain,但是等美术资产完成后使用工具转为 M…...
vite vue3配置axios
准备 参考 安装axios yarn add axios中文官网 src下新建request文件夹,该文件下新建index.ts import axios from axios; import { ElMessage } from element-plus;// const errorCodeType function (code: number): string { // let errMessage: string 未知…...
使用 C 语言快速排序将字符串按照 ASCII 码升序排列
示例代码: #include <stdio.h> #include <string.h> #include <stdlib.h>static Comp(const void *a, const void *b) {char *pa (char *)a;char *pb (char *)b;return strcmp(a, b); }int main(void) {char strs[3][10] { "bd", &q…...
自动化运维中间件架构概况
自动化运维中间件架构概况 kubernetesjenkins 安装k8s后 设置 Jenkins 任务: 在 Jenkins 中创建一个新的任务: 配置源代码管理:选择 Git,并提供 GitLab 仓库的 URL、凭据和分支信息。配置构建步骤:选择 Maven 构建,…...
fractional Brownian Motion driven stochastic integrals
See https://mathoverflow.net/questions/304366/fractional-brownian-motion-driven-stochastic-integrals...
c++模式之单例模式详解
c模式之单例模式详解 1.概念2.懒汉模式示例(缺点)3.懒汉模式线程安全4.饿汉式创建单例5.饿汉模式线程示例 1.概念 单例模式是指在整个系统生命周期内,保证一个类只能产生一个实例,确保该类的唯一性. 使用单例两个原因:…...
【gpts】学算法题[缺失的第一个正数](https://leetcode.cn/problems/first-missing-positive/)
给出你的题解 (https://leetcode.cn/problems/first-missing-positive/) public class Solution { public int firstMissingPositive(int[] nums) {int len nums.length;for (int i 0; i < len; i) {while (nums[i] > 0 && nums[i] < len && nums…...
车牌识别 支持12种中文车牌类型 车牌数据集下载
开源代码 如果觉得有用,不妨给个Star⭐️🌟支持一下吧~ 谢谢! Acknowledgments & Contact 1.WeChat ID: cbp931126 2.QQ Group:517671804 加微信(备注:PlateAlgorithm),进讨论群可以获得10G大小的车牌检测和识…...
Servlet---上传文件
文章目录 上传文件的方法上传文件的示例前端代码示例后端代码示例 上传文件的方法 上传文件的示例 前端代码示例 <body><form action"upload" method"post" enctype"multipart/form-data"><input type"file" name&qu…...
量子计算+物流!“最后一英里”配送难题Unisys成功实时决策
(图片来源:网络) 此前,供应链行业一直致力于手工操作,严重依赖于纸质系统。后来随着客户需求的不断变化,这种传统方法逐渐显出不足之处。供应链行业正在迅速转向现代化,采用自动化和数据驱动的…...
2023年【四川省安全员A证】复审考试及四川省安全员A证考试试题
题库来源:安全生产模拟考试一点通公众号小程序 四川省安全员A证复审考试根据新四川省安全员A证考试大纲要求,安全生产模拟考试一点通将四川省安全员A证模拟考试试题进行汇编,组成一套四川省安全员A证全真模拟考试试题,学员可通过…...
C++刷题 -- 二分查找
C刷题 – 二分查找 文章目录 C刷题 -- 二分查找一、原理二、例题1.二分查找2.使用二分查找确定target左右边界3.x的平方根 一、原理 条件:数组为有序数组,数组中无重复元素,因为一旦有重复元素,使用二分查找法返回的元素下标可能…...
PHPmail 发送邮件错误 550 的原因是什么?
电子邮件错误消息链接到简单邮件传输协议 (SMTP),这是一组发送和接收电子邮件的标准化规则。因此,它也称为 SMTP 550 错误代码。在某些情况下,电子邮件错误 550 是由收件人一方的问题引起的。 以下是电子邮件错误 550 的一些可能原因&#x…...
数字化转型导师坚鹏:数字化时代银行网点厅堂营销5大难点分析
数字化时代银行网点厅堂营销存在以下5大难点: 1、识别难。识别有效的客户比较难,传统的厅堂识别主要依据客户的衣着气质等主管感受,判断客户是否为潜在中高端客户,提供相关服务。大堂经理主管识别与智能化系统识别相结合…...
www.testfire.nets渗透测试报告
www.testfire.nets渗透测试报告 一、测试综述 1.1.测试⽬的 通过实施针对性的渗透测试,发现testfire.net⽹站的安全漏洞,锻炼自己的渗透水平 1.2.测试范围 域名:www.testfire.net IP:65.61.137.117 测试时间: 2023年11月…...
可解释AI如何破解人机协同决策的信任难题?
1. 项目概述:当AI开始解释自己最近几年,我参与和观察了不少将人工智能(AI)引入关键决策流程的项目,从医疗诊断辅助到金融风控,再到工业运维。一个越来越强烈的感受是:当AI的预测或建议摆在我们面…...
Autovisor终极教程:如何用Python自动化脚本轻松完成智慧树课程学习
Autovisor终极教程:如何用Python自动化脚本轻松完成智慧树课程学习 【免费下载链接】Autovisor 2025智慧树刷课脚本 基于Python Playwright的自动化程序 [有免安装版] 项目地址: https://gitcode.com/gh_mirrors/au/Autovisor 还在为智慧树平台的繁琐学习流程…...
车载以太网之要火系列 - 番外篇4:从DoIP到SOME/IP,一个初学者的“越级碰瓷”
写在开篇今晚有点晚,来不及学多少了,但还得来凑点字数。DoIPUDS的35篇笔记,终于边学边写,搞完了。从第21篇到第35篇,说实话,学得并不轻松。有些地方到现在还是迷迷糊糊的——比如27服务那几级权限ÿ…...
iOS微信聊天记录导出终极指南:5分钟掌握WeChatExporter完整使用
iOS微信聊天记录导出终极指南:5分钟掌握WeChatExporter完整使用 【免费下载链接】WeChatExporter 一个可以快速导出、查看你的微信聊天记录的工具 项目地址: https://gitcode.com/gh_mirrors/wec/WeChatExporter 你是否曾为无法备份珍贵的微信聊天记录而烦恼…...
基于MCP协议构建Statcast棒球数据AI智能体:从原理到实践
1. 项目概述:当棒球数据遇上AI智能体如果你是一个棒球数据分析师、体育科技开发者,或者只是一个对棒球数据科学充满好奇的爱好者,那么你很可能已经对Statcast这个数据宝库垂涎已久。Statcast系统通过遍布球场的雷达和摄像头,捕捉了…...
解密C语言中的动态数组
在编程语言中,数组是非常基础的数据结构。C语言中,数组的大小在编译时通常是固定的。然而,随着需求的增加,程序员们也开始希望能在运行时动态地定义数组大小。本文将结合实例讨论在C语言中如何处理动态数组,特别是针对游戏编程中的常见需求——4-in-a-row游戏的棋盘初始化…...
终极CubeFS社区贡献指南:从新手到核心贡献者的完整路径
终极CubeFS社区贡献指南:从新手到核心贡献者的完整路径 【免费下载链接】cubefs cloud-native distributed storage 项目地址: https://gitcode.com/gh_mirrors/cu/cubefs CubeFS 作为一款云原生分布式存储系统,凭借其高可用、弹性扩展和多场景适…...
【Nginx】如何集成 Prometheus + Grafana 监控 Nginx?—— 从原理到生产落地的完整指南
如何集成 Prometheus + Grafana 监控 Nginx?—— 从原理到生产落地的完整指南 适用读者:已部署过基础 Nginx 服务、了解反向代理,但尚未系统掌握其可观测性建设的中高级后端或 SRE 工程师。 技术栈:Nginx 1.24+(开源版)、Prometheus 2.40+、Grafana 10+、Docker 24+ 一、…...
Go语言ECS框架GECS:游戏开发中的数据驱动架构实践
1. 项目概述:一个面向游戏开发的ECS框架如果你在游戏开发圈子里待过一段时间,尤其是关注性能优化和架构设计,那么“ECS”这个词对你来说一定不陌生。它代表着“Entity-Component-System”,一种将数据(组件)…...
ru-text:为AI编码助手注入专业俄语文本质量引擎
1. 项目概述:为AI编码助手注入俄语文本质量之魂 如果你是一名在俄语环境中工作的开发者、产品经理或内容创作者,并且正在使用诸如 Claude Code、GitBrains 或 Cursor 这类AI编码助手,那么你很可能面临一个共同的痛点:当助手用俄语…...
