微服务: 初识 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.mfbz.cn/a/778966.html

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

相关文章

Linux网络管理

一、linux网络管理 1.获取计算机的网络信息 基本语法: #ifconfig #ip address (ip a) 解析: ens33:默认网卡 lo:环回网卡,127.0.0.1作为固定ip代表本机 virbr0:虚拟网络接口&…

centos执行yum相关命令报错的可能原因

文章目录 1. 执行yum命令是报下面一大帕拉2. 安装某个包报错,找不到这个包 1. 执行yum命令是报下面一大帕拉 最后一行报错,在repo文件中找不到空baseurl:xxx / x86_64 执行这行命令把这个找不到的 xxx 禁掉即可sudo yum-config-manager --di…

Go 依赖注入设计模式

💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」…

《QT从基础到进阶·四十三》QPlugin插件多线程问题和只有插件dll没有头文件和lib文件时调用插件中的方法

1、插件和多线程问题: 创建插件对象不能放到多线程执行,不然报错:ASSERT failure in QWidget: "Widgets must be created in the GUlthread. //不能放在多线程执行 QPluginLoader pluginLoader(pluginsDir.absoluteFilePath(fileName))…

系统测试-缺陷管理学习

目录 1、什么是缺陷 2、缺陷的类型 3、缺陷的交付物 4、缺陷报告的基本格式 1、什么是缺陷 就是软件最终的功能实现跟需求不一致的现象就是缺陷 2、缺陷的类型 做少了,做错了,做多了,做差了 3、缺陷的交付物 缺陷报告:也叫…

Vue中Class数据绑定

Class数据绑定 数据绑定的一个常见需求场景是操作CSS class列表,因为class是attribute(属性),我们可以和其他attribute一样使用v-bind 将它们和动态的字符串绑定。但是,在处理比较复杂的绑定时,通过拼接生…

Wish卖家必读:如何安全有效地进行店铺测评

Wish以其独特的商业模式和先进的技术在电商领域独树一帜。作为北美和欧洲最大的移动电商平台之一,Wish拥有庞大的用户基础,其中90%的卖家来自中国,这不仅显示了其在全球电商市场中的影响力,也反映了其对中国卖家的吸引力。 Wish平…

免费去马赛克软件,亲测支持视频和图片,这AI功能逆天了!

有小伙伴私信问阿星有什么去除马赛克的免费软件,求推荐好用的去马赛克软件。 市面上去马赛克的软件多如牛毛,但真正好用的真不多,而免费的是更少。今天阿星就分享一款 AI智能去马赛克软件,免费使用。软件支持去除图片和视频的马赛…

打卡第4天----链表

通过学习基础,发现我的基本功还得需要再练练,思路得再更加清晰明了,这样子做算法题才能驾轻就熟。每天记录自己的进步。 一、两两交换 题目编号:24 题目描述: 给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本…

CS61B Data Structure-Jonathan Lecture2 using objects - OBJECTS METHODS

Recall String s1; // Step 1: declare a String variable s1 new String(); // Step 2: assign it a value, a new empty string objectString s2 new String(); // 1&2 combined今日知识点 situation: pointing to the same object s1 "Yow!";s2 s1; //…

安装 tesseract

安装 tesseract 1. Ubuntu-24.04 安装 tesseract2. Ubuntu-24.04 安装支持语言3. Windows 安装 tesseract4. Oracle Linux 8 安装 tesseract 1. Ubuntu-24.04 安装 tesseract sudo apt install tesseract-ocr sudo apt install libtesseract-devreference: https://tesseract-…

【算法专题】模拟算法题

模拟算法题往往不涉及复杂的数据结构或算法,而是侧重于对特定情景的代码实现,关键在于理解题目所描述的情境,并能够将其转化为代码逻辑。所以我们在处理这种类型的题目时,最好要现在演草纸上把情况理清楚,再动手编写代…

关于用户咨询华为擎云L410笔记本安装Windows系统的说明

同样也是单位购买的华为擎云L410 KLVU-WDU0笔记本电脑,国产UOS系统某些软件用着不是很方便,用户咨询是否能够安装Windows10或者Windows7? 带着种种疑问也做了一些查询,之前也给一些国产设备更改过操作系统,之前的国产设…

【MySQL】事务四大特性以及实现原理

事务四大特性 原子性(Atomicity) 事务中的所有操作要么全部完成,要么全部不执行。如果事务中的任何一步失败,整个事务都会被回滚,以保持数据的完整性。 一致性(Consistency) 事务应确保数据库…

Hack The Box -- Blazorized

一、准备工作 端口扫描 详细扫描 Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-06-30 21:39 EDT Nmap scan report for 10.10.11.22 Host is up (0.26s latency).PORT STATE SERVICE VERSION 53/tcp open domain Simple DNS Plus 80/tcp op…

C++--partition库函数

介绍 在C中,partition函数通常是指STL(Standard Template Library)中的std::partition算法,它用于对一个序列进行分区操作。具体来说,std::partition接受一个范围和一个谓词(predicate)作为参数…

encrypt decrypt CA

encrypt & decrypt & CA 加密解密证书

基于PHP技术的在线校园美食攻略程序设计与实现

基于PHP技术的在线校园美食攻略程序设计与实现 摘 要 网络技术正在以空前持续的速度在改变着我们的生活。利用互联网技术,人们对网上食物共享越来越关注。基于此,本文利用 PHP技术,对网上大学饮食指南应用软件进行了研究。 整个系统的设计&a…

树莓派4B学习笔记17:RBG_LED全色域灯的驱动模块编写

今日继续学习树莓派4B 4G:(Raspberry Pi,简称RPi或RasPi) 本人所用树莓派4B 装载的系统与版本如下: 版本可用命令 (lsb_release -a) 查询: ​ Python 版本3.7.3: ​ 今日学习:RBG_LED全色域灯的驱动模块编写…

并发编程(多线程)带来了哪些问题?

前面我们了解到多线程技术有很多好处,比如说多线程可以充分利用多核 CPU 的计算能力,那多线程难道就没有一点缺点吗? 有。 多线程很难掌握,稍不注意,就容易使程序崩溃。我们以在路上开车为例: 在一个单向行驶的道路上,每辆汽车都遵守交通规则,这时候整体通行是正常的…