SpringCloud系列(一)| SpringCloud简介

上个系列中,我们已经介绍完了SpringBoot的用法,简单概述 springBoot = Spring + X, 就是对于Spring和其他技术的融合 进行了简化开发,所以x可以代表任何技术,比如 mybtis, mybatisPlus, redis.... 对于集成这些常用框架,springBoot本身就预设了一些常用技术的集成方案,对于没有预设的,也可以通过自动化配置功能,快捷融入进来。

而springCloud就是 多个SpringBoot的融合,通过多个SpringBoot模块,完成一套微服务体系的搭建,并使其具备了服务发现与注册,服务治理,服务网关,服务监控,服务间调用等等一系列功能的集合,方便开发者们很容易的搭建一套微服务框架,只需把更多的精力投入到业务层的开发当中。

SpringCloud本身不是新的框架,他是一系列框架的有机组合,利用SpringBoot 的开发便利性巧妙地简化了分布式系统基础设施的开发。并非所有的组件都是Spring提供,Netflix扮演了重要角色。

一、SpringBoot和SpringCloud区别

  • SpringBoot专注于开发方便的开发单个个体微服务;
  • SpringCloud是关注全局的微服务协调整理治理框架,它将SpringBoot开发的一个个单体微服务,整合并管理起来,为各个微服务之间提供:配置管理、服务发现、断路器、路由、为代理、事件总栈、全局锁、决策竞选、分布式会话等等集成服务;
  • SpringBoot可以离开SpringCloud独立使用,开发项目,但SpringCloud离不开SpringBoot,属于依赖关系;
  • SpringBoot专注于快速、方便的开发单个个体微服务,SpringCloud关注全局的服务治理框架;

二、SpringCloud Netflix

netflix是收费视频网站公司的名字,全球十大视频网站之一。NetFlix公司针对SpringCloud提出的规范,定义了一套自己的组件化实现,迅速在社区中得到响应并被广泛使用。 Spring Cloud Netflix是SpringCloud中的一个组件库,Spring Cloud Netflix通过自动配置和绑定到Spring环境和其他Spring编程模型习惯用法,为Spring Boot应用程序提供Netflix OSS集成。

Netflix组件提供包括服务发现(Eureka)、熔断器(Hystrix)、智能路由(Zuul)和客户端负载均衡器(Ribbon)。

但是从2016年以来,组件库中的大部分组件相继进入了维护模式,就目前来看,继续使用Sprng Cloud Netflix问题不大,但长期来看,显然是不合适的。

例如网关的组件zuul。由于Zuul持续跳票1年多,Spring Cloud索性自己开发了Spring Cloud Gateway。

但是现在很多Netflix的组件使用的热度还是很高的。例如eureka,histrix,ribbon,feign等,甚至也是可以混合使用的。

三、SpringCloud Alibaba

2019年7月24日Spring官方社区官方博文中宣布了Spring Cloud Alibaba正式从 Spring Cloud Incubator 孵化器毕业,成为了Spring社区的正式项目。同时国内版Github码云也提供了Spring Cloud Alibaba极速下载镜像。

Spring Cloud alibaba 主要功能及对应组件

  1. 服务的注册与发现(对标Netflix的Eureka译音尤睿卡): Nacos
  2. SpringCloud-dubbo: 基于dubbo协议的rpc框架,对标feign(http)
  3. 服务限流降级(即熔断限流,对标Hystrix):Sentinel:把流量作为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。
  4. 消息驱动RocketMQ,可选消息队列,阿里出品并开源
  5. Spring Cloud Gateway: 新一代服务网关,Spring提供。
  6. 配置管理Nacos:将配置文件统一管理,支持试试刷新,灰度发布,回滚等功能
  7. 调用链监控Sleuth(不是阿里的,属于SpringCloud体系)

SpringCloud alibaba的主要技术组件我们可从官方文档的目录中查看到: 大致有如下几种,只不过我们在项目中不见得都得到。

两个技术架构比较:

由于Netflix的停止维护,所以未来的大趋势还是看好SpringCloud alibaba。 所以本系列文章主要侧重SpringCloud Alibaba的使用。后面如果有时间,也会给大家介绍一下Netflix系列组件的用法。

SpringCloud 与 SpringBoot 版本对应关系:

Spring Cloud

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

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

相关文章

SpringBoot之请求的详细解析

1. 请求 在本章节呢,我们主要讲解,如何接收页面传递过来的请求数据。 1.1 Postman 之前我们课程中有提到当前最为主流的开发模式:前后端分离 在这种模式下,前端技术人员基于"接口文档",开发前端程序&…

电流测量原理

由于直接测量电流信号是很难的,但是测试电压信号比较容易,因此通常都是先将电流信号转换为电压信号,将电压信号进行调理后送至 CPU,CPU 通过 AD 转换得到一个码值,软件读出该码值,先根据主控的硬件设计参数…

【送书活动】探究AIGC、AGI、GPT和人工智能大模型

文章目录 前言01 《ChatGPT 驱动软件开发》推荐语 02 《ChatGPT原理与实战》推荐语 03 《神经网络与深度学习》推荐语 04 《AIGC重塑教育》推荐语 05 《通用人工智能》推荐语 后记赠书活动 前言 人工智能技术在过去几年中发展迅猛,得益于大数据、云计算、深度学习等…

爬虫 scrapy (十一)

目录 一、scrapy shell 1.什么是scrapy shell? 2.安装 ipython 3.使用scrapy shell 二、当当网案例 1.在items.py中定义数据结构 2.在dang.py中解析数据 3.使用pipeline保存 4.多条管道的使用 5.多页下载 参考 一、scrapy shell 1.什么是scrapy shell&am…

设计模式(2)--对象创建(3)--工厂方法

1. 意图 定义一个用于创建对象的接口,让子类决定实例化哪一个类。 工厂方法使一个类的实例化延迟到其子类。 2. 四种角色 抽象产品、具体产品、抽象构造者、具体构造者 3. 优点 3.1 仅处理抽象产品(Product)接口 3.2 给子类一个钩子(hook)以提供对象的扩展版本(父…

C/C++ 快乐数: 编写一个算法来判断一个数n是不是快乐数

题目: 编写一个算法来判断一个数n是不是快乐数。 快乐数的定义: 对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和。 然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到 1。 如果这个过…

面试必备的Linux常用命令

「作者主页」:士别三日wyx 「作者简介」:CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 「推荐专栏」:对网络安全感兴趣的小伙伴可以关注专栏《网络安全入门到精通》 Linux常用命令 1、文件及内容2、网络3、进程服务4、…

C++寻找特殊年号 2023年3月C++一级 电子学会中小学生软件编程C++等级考试一级真题答案解析

目录 C/C寻找特殊年号 一、题目要求 1、编程实现 2、输入输出 二、算法分析 三、程序编写 四、程序说明 五、运行结果 六、考点分析 C寻找特殊年号 2023年3月 C编程等级考试一级编程题 一、题目要求 1、编程实现 年号中的每个数之和为20的年号是特殊年号。例如: 2…

计算机操作系统-第十四天

目录 前言 线程 线程机制带来的变化 线程的属性 前言 在还没有引入进程的概念时,系统中的各个程序只能串行执行,即不能边听音乐边QQ聊天,在引入了进程的概念后,就可以实现边听音乐边QQ聊天。 但是我们在使用QQ时除了聊天还会进…

Python实现多种图像去噪方法

Python实现多种图像去噪方法:中值滤波,均值滤波,高通滤波,低通滤波,高斯滤波,同态滤波 图像和视频逐渐成为人们生活中信息获取的重要来源。人们准确地获取信源发出的图像和视频信息需要保证在传输过程中的…

性能优化 vue2/vue3 通过CDN 减少项目启动时间

其实更多可以通过压缩图片等文件大小 也会让项目运行快一些 以及尽量使用异步或者懒加载 使用CDN可以避免在项目中使用npm导入Vue的依赖项&#xff0c;从而减少项目启动时的加载时间 使用方法如下 <!-- Vue 2 --> <script src"https://cdn.jsdelivr.net/npm/vue…

[Linux] Tomcat

一、Tomcat相关知识 1.1 Tomcat的简介 Tomcat 是 Java 语言开发的&#xff0c;Tomcat 服务器是一个免费的开放源代码的 Web 应用服务器&#xff0c;是 Apache 软件基金会的 Jakarta 项目中的一个核心项目&#xff0c;由 Apache、Sun 和其他一些公司及个人共同开发而成。 …

防职业掉坑必看,电商设计主要做什么?

今年双十一刚结束&#xff0c;各电商平台不公布总销售额的新闻就上了热搜。外行人乍一看可能觉得消费意愿下降&#xff0c;消费水平降级&#xff0c;电商行业不景气&#xff0c;但实际上电商领域在国内突飞猛进了10几年后&#xff0c;仍然还有很大的上升空间。很多人说&#xf…

shiro入门demo(二)授权

在前面认证的基础上&#xff0c;认证通过后一般还有个授权的操作。授权根据业务需求有两种维度&#xff0c;基于角色的授权和基于资源的授权。 一、授权-基于角色授权&#xff1a; shiro中授权实现方式&#xff1a;有三种 1、编程式 Subject subject SecurityUtils.getSubje…

电路中的repeater是什么?

最近在看interlaken协议&#xff0c;有一个单词&#xff0c;repeater&#xff0c;不知道是什么含义&#xff0c;查了一下发现它的功能是提高数据的完整性&#xff0c;要么是修复时钟&#xff0c;要么是提高信号裕量等。总之是让信号变好的一个东西。 具体可以参见TI的说明。 【…

企业资产负债表API:获取企业资产负债表数据的重要工具

前言 在当今的数字化时代&#xff0c;信息的获取和整合对于企业的决策和规划至关重要。企业资产负债表API是一种强大的工具&#xff0c;可以帮助企业快速、准确地获取资产负债表数据&#xff0c;从而更好地分析财务状况、做出投资决策以及评估经营绩效。本文将介绍企业资产负债…

【Linux | C++ 】生产者消费者模型(Linux系统下C++ 代码模拟实现)

阅读导航 引言一、生产者消费者问题&#x1f341;将生产者消费者模型比喻为超市的顾客和供货商 二、C queue模拟阻塞队列的生产消费模型&#xff08;伪代码&#xff09;三、RAII风格的加锁方式1. 简介2. 示例 四、基于Linux操作系统使用C代码&#xff0c;采用RAII风格的加锁方式…

flutter的ListView和SingleChildScrollView有什么区别?他们的使用场景有什么不一样?

文章目录 简介ListViewSingleChildScrollView使用场景的不同 简介 ListView和SingleChildScrollView都是在Flutter中用于处理滚动内容的组件&#xff0c;但它们有一些关键的区别。 ListView 多个子元素&#xff1a; ListView是一个滚动的可滚动组件&#xff0c;通常用于包含多…

写字基本功 - 正确握笔姿势

写字基本功 - 正确握笔姿势 1. 写字基本功 郑文彬 (布衣) 先生 2. 正确握笔步骤 握笔姿势教学 http://www.bebosspen.com/index.php/correct 3. 正确握笔姿势 - 重点解说图 握笔姿势教学 http://www.bebosspen.com/index.php/correct 3.1. 食指 食指低于拇指 两段弯曲勿三…

【价值几十万的仿抖音直播电商系统源码共享】

当下&#xff0c;传统的图文电商模式已经走向没落&#xff0c;以抖音为首的直播电商模式备受用户追捧&#xff0c;它具有实时直播和强互动的特点&#xff0c;是传统电商所不具备的优势。而且&#xff0c;当前正是直播电商的红利期&#xff0c;很多主播和品牌商都通过直播电商业…