Spring Cloud 概述

news2024/11/25 10:00:46

目录

​编辑一、认识微服务

1、单体架构

2、集群和分布式架构

3、微服务架构

二、Spring Cloud

1、什么是 Spring Cloud

2、Spring Cloud 版本

3、Spring Cloud 的实现方案

Spring Cloud Netflix

​编辑Spring Cloud Alibaba


一、认识微服务

1、单体架构

很多创业公司早期或者传统企业会把业务的所有功能实现都打包在⼀个项目, 这就是 单体架构 .
业务的所有功能实现都打包在⼀个war包或者Jar包中, 这种⽅式就称为 单体架构

单体架构开发和部署都比较简单,一个项目包含了所有的功能,省去了多个项目之间的交互和调用消耗,直接部署在一个服务器即可。


2、集群和分布式架构

单体架构可能会出现的问题:

1、后端服务器的压力越来越大,负载越来越高,甚至出现无法访问的情况

2、业务场景逐渐复杂,为了满足用户的需求,单体应用会越来越大,业务代码之间的耦合度也越来越高,任何一个问题都需要整个项目重新构建、发布

3、一个微小的问题可能会导致整个应用挂掉

如何解决单体架构的问题:

我们可以从横向和纵向两个角度来解决问题

横向:假如目前只有一台机器,用户却越来越多了,此时我们可以通过添加服务器来进行解决

纵向:业务需求越来越大了,代码之间耦合度越来越搞,此时我们可以把一整块业务划分成不通风的模块

假设我们最开始有一台机器,这一台机器可以承担 1000 个用户,后来发展成了 10000 个用户

横向:扩容机器,将一台机器扩容成 10 台机器,每个机器负责 10 个用户【集群】

纵向:按照功能进行划分,将一个大的项目拆分成多个小项目之后,项目与项目之间通过接口进行交互 【分布式】

集群:是将⼀个系统完整的部署到多个服务器上, 每个服务器都能提供系统的所有服务, 多个
服务器通过负载均衡调度完成任务. 每个服务器称为集群的节点(node)

分布式:是将⼀个系统拆分为多个子系统,多个子系统部署在多个服务器上,多个服务器上的子系统协同合作完成⼀个特定任务.

例如:有一个餐馆,刚开业的时候只有一个厨师,该厨师只负责做饭相关的工作

当餐馆生意变好之后,一名厨师便忙不过来了

横向:招聘一个厨师,这两个厨师都可以独立做饭

纵向:将厨师的工作分为多个细小的工作,如:切菜,洗菜,炒菜。再招聘助理,将细小的工作分配给助理完成。

集群和分布式之间的区别与联系:

1. 从概念上. 集群是多个计算机做同样的事, 分布式是多个计算机做不同的事(集群中的计算机可以相互替代,而分布式中的计算机不能相互替代)

2. 从功能上. 集群的每一个节点功能是相同的, 并且可以替代的. 分布式也是多个节点组成的系统, 但是每个节点完成的业务是不同的, ⼀个节点出现问题, 这个业务就不可访问了.

3. 从关系上. 分布式和集群在实践中, 很多时候是互相配合使用的. 比如分布式的某一个节点, 可能由一个集群来代替. 分布式架构大多是建立在集群上的. 所以实际的分布式架构设计中并不会把分布式和集群单独区分, 而是统称: 分布式架构.

4、分布式的节点可能是集群


3、微服务架构

按照业务对项目进行拆分之后,会有一些重复的功能开发。

在分布式结构下,当部署的服务越来越多,重复的代码就会越来越多,服务之间的调用关系越来越复杂。

微服务就是将一些通用的,会被多个上层服务调用的共享业务,提取成独立的基础服务,组成一个个微小的服务

微服务是没有明确的边界的

但是我们通常认为:一个服务只对应一个单一的功能,只做一件事情,且这个服务可以单独部署的服务是微服务 

微服务之间使用 REST 和 RPC 协议进行通信

微服务架构其实就是分布式架构的扩展,微服务架构下拆分粒度更小,服务更独立。

分布式架构侧重于压力的分散, 强调的是服务的分散化. 微服务侧重于能力的分散, 更强调服务的专业化和精细分工.

从实践的角度来看, 微服务架构通常是分布式服务架构, 反之则未必成立.

例如,在工作中会将岗位进行划分:前端,后端,运维等

分布式:划分了就可以了

微服务:不仅仅划分,还拆分的很细,比如后端开发还可以细分为:系统开发,数据开发等等

所以,微服务通常意味着需要解决分布式架构的各种难题

架构的发展:

那么实际开发中,应该采用哪种架构模式呢

所有的架构都是为了更好的服务产品,所以只需要选择最合适的即可

微服务的优势:

易开发和维护. 每个微服务负责的业务比较清晰, 体量小, 开发和维护成本降低.

容错性高. ⼀个服务发生故障, 可以使故障隔离在单个服务中, 不影响整体服务故障.

扩展性好. 每个服务都是独立运行的, 我们可以结合项目实际情况进行扩展, 按需伸缩.

技术选型灵活. 每个微服务都是单独的团队来运维, 可以根据业务特点和团队特点, 选择适合的技术
栈.

相应的,微服务也会面临一些挑战


二、Spring Cloud

1、什么是 Spring Cloud

Spring Cloud 的官网: spring.io

Spring Cloud 包含了很多的工具,这些工具能够让我们在分布式系统中进行比较快速的开发,Spring Cloud 提供的这些工具,也可以帮助我们解决在分布式微服务中的一系列问题。

简单来说, Spring Cloud 就是分布式微服务架构的⼀站式解决方案, 是微服务架构落地的多种技术的集合. 


2、Spring Cloud 版本

我们可以在官网上查看 SpringBoot 版本对应的 SpringCloud 版本

假设我们有一个项目,Spring Boot 的版本是 2.7.x,那么我们 Spring Cloud 版本应该使用 2021.0.x


3、Spring Cloud 的实现方案

Spring Cloud Netflix

Spring Cloud Netflix 是 Netflix OSS(Netflix Open Source Software)在 Spring Cloud 规范下的实现.
包含的组件及其主要功能⼤致如下: 


Spring Cloud Alibaba

Spring Cloud Alibaba 是阿⾥巴巴集团下的开源组件和云产品在Spring Cloud规范下的实现

官方网站:  Spring Cloud Alibaba 是什么 | https://sca.aliyun.com

如果说Spring Cloud Netflix 是 Spring Cloud 的第一代实现, 那么Spring Cloud Alibaba 也可以看做是Spring Cloud 的第⼆代实现, 主要由 Nacos、Sentinel、Seata 等组件组成.

黄色:进入维护状态的主键

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

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

相关文章

14-Django项目--文件上传-Excel

目录 前端 路由 视图函数 前端 <div class"modal-body"><form method"post" enctype"multipart/form-data" action"/pretty/asset/">{% csrf_token %}<input type"file" name"excel"><bu…

什么是失调电压/补偿电压?

目录 一、概念理解 二、仿真理解 一、概念理解 输入失调电压&#xff08;input offset voltage&#xff09;&#xff1a;当运放连接模式为跟随器时&#xff0c;同相接GND&#xff0c;输出端并不会输出GND&#xff0c;根据不同运放参数会有微弱电压输出&#xff0c;这个参数就…

一文了解“大数据招商思维”,读懂什么是大数据招商!

近年来&#xff0c;随着大数据及人工智能等新一代信息技术的快速发展&#xff0c;数据作为重要的资源和资产&#xff0c;成为推动经济发展的核心驱动力&#xff0c;广泛应用于各个领域&#xff0c;深刻的改变着我们的生产和生活方式。那么对于“招商引资”来说&#xff0c;大数…

深入探讨JavaScript中的队列,结合leetcode全面解读

前言 队列作为一种基本的数据结构&#xff0c;为解决许多实际问题提供了有效的组织和处理方式&#xff0c;对于提高系统的稳定性、可靠性和效率具有重要作用&#xff0c;所以理解队列是很重要的。 本文深入探讨JavaScript中的队列这种数据结构,结合leetcode题目讲解 题目直达…

前端笔记-day12

文章目录 01-视口02-宽度适配方案03-rem体验04-rem基本使用05-媒体查询06-rem适配07-rem布局08-less-体验09-less-注释10-less-运算11-less-嵌套12-less-变量13-less-导入14-less-导出15-less-禁止导出16-急速问诊&#xff08;不准确写法&#xff09;index.htmlindex.css 17-急…

新章节:全设备通用调度算法-通讯重构

新章节&#xff1a;全设备通用调度算法-通讯重构 文章目录 新章节&#xff1a;全设备通用调度算法-通讯重构前言一、重构了TCP和UDP通讯二、优化了OPC和OPCUA三、升级了监控客户端四、升级了通讯的图形化其他升级 前言 现在真的很懒也很少写代码了&#xff0c;写代码和更新进度…

Laravel5+mycat 报错 “Packets out of order”

背景 近期对负责项目&#xff0c;配置了一套 主从复制的 MySQL 集群 使用了中间件 mycat 但测试发现&#xff0c;替换了原来的数据连接后&#xff0c;会出现 Packets out of order 的报错 同时注意到&#xff0c;有的框架代码中竟然也会失效&#xff0c;比如 controller 类中&…

智慧园区可视化:构建全方位智能管理体系

通过图扑的 2D、 3D 和 GIS 可视化技术结合倾斜摄影、数字孪生和视频融合等技术&#xff0c;将园区各类数据集成展示&#xff0c;实时监控和分析环境与设施状况&#xff0c;提升管理效能和安全水平&#xff0c;实现智慧园区的全方位智能化运营。

vscode python调试,找不到控制调试工具栏,被隐藏了

问题&#xff1a; 如图所示&#xff0c;最开始蓝框中的调试台被莫名其妙的隐藏了&#xff0c;没法进行调试。 解决办法&#xff1a; 打开设置输入调试点击调试&#xff08;31&#xff09;找到红框选的那个选项&#xff0c;选择floating

多步预测模型大更新

往期精彩内容&#xff1a; 时序预测&#xff1a;LSTM、ARIMA、Holt-Winters、SARIMA模型的分析与比较-CSDN博客 VMD CEEMDAN 二次分解&#xff0c;Transformer-BiGRU预测模型-CSDN博客 独家原创 | 基于TCN-SENet BiGRU-GlobalAttention并行预测模型-CSDN博客 独家原创 | B…

正交的拉丁方阵(MOLS)

在组合数学中&#xff0c;如果两个同阶的拉丁方阵叠加后&#xff0c;每个位置上的有序对条目都是唯一的&#xff0c;则这两个拉丁方阵被称为正交的。 如果一组同阶的拉丁方阵中&#xff0c;任意两个方阵都是正交的&#xff0c;则这组方阵被称为一组相互正交的拉丁方阵&#xf…

SSM高校学生综合测评系统-计算机毕业设计源码16154

摘要 随着互联网时代的到来,同时计算机网络技术高速发展,网络管理运用也变得越来越广泛。因此,建立一个BS 结构的高校学生综合测评系统,会使高校学生综合测评系统工作系统化、规范化,也会提高高校学生综合测评系统平台形象,提高管理效率。 本学生综合测评系统是针对目前高校学生…

.Net C#执行JavaScript脚本

文章目录 前言一、安装二、执行 JavaScript 脚本三、与脚本交互四、JS 调用 C# 方法五、多线程使用总结 前言 ClearScript 是一个 .NET 平台下的开源库&#xff0c;用于在 C# 和其他 .NET 语言中执行脚本代码。它提供了一种方便和安全的方法来将脚本与应用程序集成&#xff0c;…

CVE-2024-6387 分析

文章目录 1. 漏洞成因2. 漏洞利用前置知识2.1 相关 SSH 协议报文格式2.2 Glibc 内存分配相关规则 3. POC3.1 堆内存布局3.2 服务端解析数据时间测量3.3 条件竞争3.4 FSOP 4. 相关挑战 原文链接&#xff1a;个人博客 近几天&#xff0c;OpenSSH爆出了一个非常严重的安全漏洞&am…

软件开发中常用的11款bug记录、跟踪、管理系统对比【2024更新】

软件开发项目的复杂性不断增加&#xff0c;有效的bug管理变得尤为关键。对开发团队而言&#xff0c;没有什么比选择一款合适的Bug跟踪工具更重要的了。工具的功能、界面友好度、整合能力及成本都是决策的关键因素。 1、PingCode 推荐指数&#xff1a;五星 简介&#xff1a;P…

常微分方程算法之编程示例十一-两点狄利克雷边值问题(紧差分法)

目录 一、研究问题 二、C++代码 三、计算结果 一、研究问题 本节我们采用紧差分法对示例八中的两点狄利克雷边值问题进行外推求解,相应的原理及推导思路请参考: 常微分方程算法之高精度算法(Richardson法+紧差分法)_richardson外推法-CSDN博客https://blog.csdn.net/L_…

python gdal 压缩栅格数据

1 压缩方法LZW 使用 LZW&#xff08;Lempel-Ziv-Welch&#xff09;&#xff0c;主要对图像数据压缩&#xff0c;可逆 2 代码 函数gdal_translate()&#xff1a;转换栅格的不同格式 我们使用的数据是GTiff格式的数据 GTiff – GeoTIFF File Format — GDAL documentation 参…

秒拿AI模型API Key!Chat2DB AI模型切换实用秘籍

智谱AI&#xff08;ZhiPu AI&#xff09; 智谱 AI 是由清华大学计算机系技术成果转化而来的公司&#xff0c;致力于打造新一代认知智能通用模型。 1.申请调用权限 智谱AI开放平台网址&#xff1a;https://open.bigmodel.cn/ 点击开始使用&#xff0c;进行登录/注册。 智谱A…

I方C是什么啊,老是听到他们说

首先说一下串口通讯&#xff0c;只能在两个设备之间进行&#xff0c;如下图&#xff1a; 若三个设备相互通讯&#xff0c;则每个设备需要两组串口。它们其实是三组相互独立的串口通讯。如下图&#xff1a; 若是四个设备相互通讯就更麻烦了&#xff0c;以此类推。这样一来&#…

【CUDA】 矩阵乘向量 matVecMul

Matrix - Vector Multiplication 矩阵-向量乘法是线性代数中的基本操作。它用于将一个矩阵与一个向量相乘。乘法的结果是与输入向量大小相同的向量。 矩阵和向量的乘法如图1所示。 图1 基础kernel与共享内存kernel 执行矩阵-向量乘法的基础kernel是使用单个线程执行输出向量…