微服务: 初识 Spring Cloud

什么是微服务?

微服务就像把一个大公司拆成很多小部门,每个部门各自负责一块业务。这样一来,每个部门都可以独立工作,即使一个部门出了问题,也不会影响整个公司运作。

什么是Spring Cloud?

Spring Cloud 是一套工具包,帮助你管理和协调这些“小部门”(微服务)。比如后续提到的 Spring Cloud 各组件。

微服务和Spring Cloud之间的关系?

微服务是一种架构思想,而 Spring Cloud 是对于微服务实现的一种规范。当然很多地方也把 Spring Cloud 用来代指微服务,但二者还是不同的,前者是思想,或者是规范。

Spring Cloud 组件概述

Spring Cloud 第二代核心组件如下:

微服务功能第二代 (Spring Cloud Alibaba, SCA)

功能

作用
注册中心Nacos管理和发现服务,类似于一个目录,记录了所有微服务的地址和信息。帮助服务之间找到对方。
客户端负载均衡Spring Cloud Loadbalancer分配请求到不同的服务实例,确保负载均衡。避免单个服务实例过载,提升系统性能。
熔断器Sentinel监控服务的流量和响应,自动熔断异常的服务,防止故障扩散。保护系统在高并发或异常情况下的稳定性。
网关Spring Cloud Gateway充当服务之间的中介,处理所有进入的请求并将它们转发到相应的服务。提供统一的访问入口和安全管理。
配置中心Nacos集中管理应用配置,支持动态配置更新。简化配置管理,提高系统的灵活性和可维护性。
服务调用Spring Cloud OpenFeign简化服务之间的调用,提供HTTP客户端的声明式接口。让服务之间的通信变得更加简单和直观。
链路追踪Skywalking追踪和监控分布式系统中的请求链路,帮助诊断性能问题。提供全面的系统监控和故障排查能力。
分布式事务Seata管理分布式系统中的事务,确保数据的一致性。解决在分布式系统中多个服务之间的数据一致性问题。

各组件之间的关系

这些组件各自有自己的职责,但在一个完整的微服务系统中,它们是如何协同工作的呢?可以用一个公司的部门运作来比喻:

  1. Nacos 就像公司的通讯录,记录了所有部门(服务)的联系方式,方便大家互相联系。
  2. Spring Cloud Loadbalancer 就像前台的调度员,负责把来访者(请求)分配给不同的员工(服务实例)。
  3. Sentinel 就像公司的安全系统,监控各个部门的工作状态,如果发现某个部门出现异常,就会隔离该部门,防止影响全公司。
  4. Spring Cloud Gateway 就像公司的大门,所有来访者(请求)都要经过这里,然后再被转发到相应的部门。
  5. Nacos(配置中心) 就像公司的行政部门,负责管理所有的规章制度和配置文件,并且可以随时更新。
  6. Spring Cloud OpenFeign 就像公司的内部联系系统,让各个部门之间可以方便地互相沟通。
  7. Skywalking 就像公司的监控系统,记录每个部门的工作流程,帮助找到并解决问题。
  8. Seata 就像公司的财务部门,确保各个部门之间的交易和数据一致性。

总的来说,在微服务系统中,Nacos帮我们找到服务,Loadbalancer分配请求,Sentinel保护系统稳定,Gateway是入口大门,配置中心Nacos管理配置,OpenFeign让服务互相打电话,Skywalking监控系统,Seata确保数据一致。它们一起合作,保证微服务系统高效、稳定地运行。

再举个例子

  1. Nacos 就像快递公司内部的物流管理系统,记录了所有配送员(服务)的位置信息,方便调度和管理。
  2. Spring Cloud Loadbalancer 就像调度中心,负责将包裹(请求)分配给不同的配送员(服务实例),确保每个配送员的工作量均衡。
  3. Sentinel 就像快递公司的安全系统,实时监控每个配送员的状态,如果发现某个配送员出现问题,就会暂停其工作,防止影响其他配送员。
  4. Spring Cloud Gateway 就像快递公司的总仓库,所有包裹(请求)都要先到这里,然后再被分发到各个区域的配送员。
  5. Nacos(配置中心) 就像快递公司的规章制度和操作手册,规定了每个配送员的工作流程,并且可以随时更新这些规定。
  6. Spring Cloud OpenFeign 就像快递公司内部的通讯系统,让各个配送员之间可以方便地互相联系和协调工作。
  7. Skywalking 就像快递公司的监控系统,记录每个包裹的配送过程,帮助公司找到并解决配送中的问题。
  8. Seata 就像快递公司的财务系统,确保每个包裹的收费和支付过程一致,不会出现差错。

在这个快递公司中,Nacos 记录了所有配送员的位置,Loadbalancer 负责调度包裹,Sentinel 监控配送员的工作状态,Gateway 是总仓库,配置中心 Nacos 管理规章制度,OpenFeign 让配送员互相联系,Skywalking 监控配送过程,Seata 确保收费一致。它们一起协作,确保快递公司高效、稳定地运作。

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

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

相关文章

Oracle RAC 19c 打补丁至最新版本-19.23.0.0.0

实验环境-我是从19.0.0.0直接打到19.23.0.0.0,适合刚部署好的集群打补丁直接到最新版本。 查看当前环境 查询集群中运行的 Oracle Clusterware 软件的 activex 版 查询本地节点上二进制文件中存储的 Oracle Clusterware 软件的版本 查询本地服务器上 OHAS 和 Oracle…

U.S.News发布全美最佳本科AI专业排名

10 加州大学圣迭戈分校 University of California, San Diego UCSD的人工智能项目从事广泛的理论和实验研究,学校的优势领域包括机器学习、不确定性下的推理和认知建模。除了理论学习,UCSD教授非常注重把计算机知识运用到自然语言处理、数据挖掘、计算…

20240707 每日AI必读资讯

🧠中国生成式AI专利数量超过美国 6 倍 - 中国在2014年至2023年期间申请的生成式AI专利数量达到38210个,超过了美国的6倍。 - 腾讯、平安保险集团和百度是GenAI专利数量最多的中国公司。 - 中国的顶级学术机构和技术生态为生成式AI的发展提供了强大支持…

CC2530寄存器编程学习笔记_点灯

下面是我的CC2530的学习笔记之点灯部分。 第一步:分析原理图 找到需要对应操作的硬件 图 1 通过这个图1我们可以找到LED1和LED2连接的引脚,分别是P1_0和P1_1。 第二步 分析原理图 图 2 通过图2 确认P1_0和P1_1引脚连接到LED,并且这些引…

一体化运维:某省电力公司实现集中统一监控

在当今信息化高速发展的时代,电力公司作为国家基础设施的重要组成部分,其IT系统的稳定性和高效性直接关系到电力供应的安全与稳定。为了提升运维效率,确保电力系统的持续稳定运行,某省电力公司采购十多套“监控易”运维软件&#…

高算力智能监控方案:基于瑞芯微RK3576核心板开发NVR网络视频录像机

近年来,随着人工智能和物联网技术的不断发展,网络视频录像机(NVR)在智能监控领域中的应用越来越广泛。本文将围绕RK3576核心板展开讨论,探讨其在NVR开发中的潜力和优势。 一、RK3576核心板 RK3576是瑞芯微的新一代中…

14-35 剑和诗人9 - 普及 Agentic RAG

好吧,让我们直接进入正题——了解 Agentic RAG(检索增强生成)方法以及它如何彻底改变我们处理信息的方式。系好安全带,因为这将变得疯狂! Agentic RAG 的核心在于为 RAG 框架注入智能和自主性。这就像对常规 RAG 系统…

《Windows API 每日一练》8.4 edit控件

编辑类是最简单的预定义窗口类,而另一方面却又是最复杂的。当你用“edit”作为类名创建子窗口时,可以基于CreateWindow调用的x坐标、y坐标、宽度和高度参数定义一个矩形。这个矩形包含可编辑的文本。一旦子窗口控件获得输入焦点,你就可以输入…

【文献解析】Voxelmap——一种自适应体素地图

Efficient and Probabilistic Adaptive Voxel Mapping for Accurate Online LiDAR Odometry 论文地址:https://ieeexplore.ieee.org/stamp/stamp.jsp?tp&arnumber9813516 代码:GitHub - hku-mars/VoxelMap: [RA-L 2022] An efficient and probabili…

制冷软件SOLKANE单级制冷循环计算

SOLKANE软件下载 单级制冷循环参数介绍 输入数据: 1.蒸发器: 温度:蒸发温度t6(露点温度)。 过热:制冷剂t6-t6在蒸发器中过热。 压力损失:蒸发器入口和出口之间的压力下降。 制冷量&#x…

Android12 MultiMedia框架之MediaExtractorService

上节学到setDataSource()时会创建各种Source,source用来读取音视频源文件,读取到之后需要demux出音、视频、字幕数据流,然后再送去解码。那么负责进行demux功能的media extractor模块是在什么时候阶段创建的?这里暂时不考虑APP创建…

深圳晶彩智能ESP32-2432S028R实时观察LVGL9效果

深圳晶彩智能ESP32-2432S028R概述: 深圳晶彩智能出品ESP32-32432S028R为2.8寸彩色屏采用分辨率320x240彩色液晶屏,驱动芯片是ILI9431。板载乐鑫公司出品ESP-WROOM-32,Flash 4M。型号尾部“R”标识电阻膜的感压式触摸屏,驱动芯片是…

基于MATLAB对线阵天线进行泰勒加权

相控阵天线——基于MATLAB对线阵进行泰勒加权 目录 前言 一、泰勒综合 二、单元间距的改变对泰勒阵列方向图的影响 三、单元数的改变对泰勒阵列激励分布的影响 四、副瓣电平SLL对泰勒阵列激励幅度的影响 五、副瓣电平SLL对泰勒阵列方向图的影响 六、泰勒阵列和切比雪夫阵…

量化交易在不同经济周期中的表现

量化交易,作为一种基于算法和数学模型的交易方法,其在不同经济周期中的表现受到了市场参与者的广泛关注。量化交易策略的设计使其能够在多种市场环境中寻找投资机会,无论是经济扩张期还是衰退期,都能够展现出其独特的适应性和效率…

7.6数据结构作业

// 练习一 struct K { double a; //8 char b; //1 char c; //1 double d; //8 };//24 // 练习二 struct L { int a; //4 double b; //8 char c; //1 };//24 // 练习三 struct M { char a;//1 int b; //4 char c; //1 double d; //8 };//24 /…

(5) 深入探索Python-Pandas库的核心数据结构:Series详解

目录 前言1. Series 简介2. Series的特点3. Series的创建3.1 使用列表创建Series3.2 使用字典创建Series3.3 使用列表和自定义索引创建Series3.4 指定数据类型和名称 4. Series的索引/切片4.1 下标索引:基于整数位置的索引4.2 基于标签的索引4.3 切片4.4 使用.loc[]…

触感网络:WebKit 振动(Vibration API)的交互新维度

触感网络:WebKit 振动(Vibration API)的交互新维度 在数字化时代,用户体验的追求已经不仅限于视觉和听觉,触觉反馈也逐渐成为网页交互设计的重要组成部分。WebKit 作为众多现代浏览器的核心技术引擎,对振动…

Linux 文件描述符 fd

当然,以下是一些关于 Linux 文件描述符(fd)的示例,以清晰、分点表示和归纳的形式给出: 1. 文件描述符的基本概念和用途 定义:文件描述符是一个非负整数,用于指代被进程所打开或使用的文件、套…

Leetcode 59. 螺旋打印矩阵

题目描述 给你一个正整数 n ,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix 。 示例 1: 输入:n 3 输出:[[1,2,3],[8,9,4],[7,6,5]] 示例 2: 输入:n…

c++中new和delete重载的一点介绍

通义千问中作答的,感觉回答的比自己总结的好: 实际上,你可以在C中重载new和delete运算符。重载new和delete允许你自定义内存分配和释放的行为,这对于实现特殊的内存管理策略非常有用,例如: 内存池&#xf…