当前位置: 首页 > news >正文

微服务: 初识 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 确保收费一致。它们一起协作,确保快递公司高效、稳定地运作。

相关文章:

微服务: 初识 Spring Cloud

什么是微服务? 微服务就像把一个大公司拆成很多小部门,每个部门各自负责一块业务。这样一来,每个部门都可以独立工作,即使一个部门出了问题,也不会影响整个公司运作。 什么是Spring Cloud? Spring Cloud 是一套工具包&#x…...

探索InitializingBean:Spring框架中的隐藏宝藏

​🌈 个人主页:danci_ 🔥 系列专栏:《设计模式》《MYSQL》 💪🏻 制定明确可量化的目标,坚持默默的做事。 ✨欢迎加入探索MYSQL索引数据结构之旅✨ 👋 Spring框架的浩瀚海洋中&#x…...

JVM专题之垃圾收集算法

标记清除算法 第一步:标记 (找出内存中需要回收的对象,并且把它们标记出来) 第二步:清除 (清除掉被标记需要回收的对象,释放出对应的内存空间) 缺点: 标记清除之后会产生大量不连续的内存碎片,空间碎片太多可能会导致以后在程序运行过程中需 要分配较大对象时,无法找到…...

2024年6月后2周重要的大语言模型论文总结:LLM进展、微调、推理和对齐

本文总结了2024年6月后两周发表的一些最重要的大语言模型论文。这些论文涵盖了塑造下一代语言模型的各种主题,从模型优化和缩放到推理、基准测试和增强性能。 LLM进展与基准 1、 BigCodeBench: Benchmarking Code Generation with Diverse Function Calls and Com…...

大数据面试题之数仓(1)

目录 介绍下数据仓库 数仓的基本原理 数仓架构 数据仓库分层(层级划分),每层做什么?分层的好处? 数据分层是根据什么? 数仓分层的原则与思路 知道数仓建模常用模型吗?区别、优缺点? 星型模型和雪花模型的区别?应用场景?优劣对比 数仓建模有哪些方式…...

[机器学习]-4 Transformer介绍和ChatGPT本质

Transformer Transformer是由Vaswani等人在2017年提出的一种深度学习模型架构,最初用于自然语言处理(NLP)任务,特别是机器翻译。Transformer通过自注意机制和完全基于注意力的架构,核心思想是通过注意力来捕捉输入序列…...

基于深度学习的电力分配

基于深度学习的电力分配是一项利用深度学习算法优化电力系统中的电力资源分配、负荷预测、故障检测和系统管理的技术。该技术旨在提高电力系统的运行效率、稳定性和可靠性。以下是关于这一领域的系统介绍: 1. 任务和目标 电力分配的主要任务是优化电力系统中的电力…...

飞书 API 2-4:如何使用 API 将数据写入数据表

一、引入 上一篇创建好数据表之后,接下来就是写入数据和对数据的处理。 本文主要探讨数据的插入、更新和删除操作。所有的操作都是基于上一篇(飞书 API 2-4)创建的数据表进行操作。上面最终的数据表只有 2 个字段:序号和邮箱。序…...

系统设计题-日活月活统计

一、题目描述 根据访问日志统计接口的日活和月活。日志格式为 yyyy-mm-dd|clientIP|url|result 其中yyyy-mm-dd代表年月日,一个日志文件中时间跨度保证都在同一个月内,但不保证每行是按照日期顺序。 clientIP为合法的点分十进制ipv4地址(1.1.1.1和1.01.…...

在CentOS7云服务器下搭建MySQL网络服务详细教程

目录 0.说明 1.卸载不要的环境 1.1查看当前环境存在的服务mysql或者mariadb 1.2卸载不要的环境 1.2.1先关闭相关的服务 1.2.2查询曾经下载的安装包 1.2.3卸载安装包 1.2.4检查是否卸载干净 2.配置MySQLyum源 2.1获取mysql关外yum源 2.2 查看当前系统结合系统配置yum…...

【数据结构与算法】快速排序霍尔版

💓 博客主页:倔强的石头的CSDN主页 📝Gitee主页:倔强的石头的gitee主页 ⏩ 文章专栏:《数据结构与算法》 期待您的关注 ​...

无人机5公里WiFi低延迟图传模组,抗干扰、长距离、低延迟,飞睿智能无线通信新标杆

在科技日新月异的今天,我们见证了无数通信技术的飞跃。从开始的电报、电话,到如今的4G、5G网络,再到WiFi的广泛应用,每一次技术的革新都极大地改变了人们的生活方式。飞睿智能5公里WiFi低延迟图传模组,它以其独特的优势…...

Kappa架构

1.Kappa架构介绍 Kappa架构由Jay Kreps提出,不同于Lambda同时计算和批计算并合并视图,Kappa只会通过流计算一条的数据链路计算并产生视图。Kappa同样采用了重新处理事件的原则,对于历史数据分析类的需求,Kappa要求数据的长期存储能…...

护网在即,助力安服仔漏洞扫描~

整合了个漏扫系统,安服仔必备~ 使用场景 网前布防,漏洞扫描,资产梳理 使用方法: 启动虚拟机后运行命令: ./StartSystemScript.sh 输入密码attack 启动完成后浏览器打开网站: http://IP:5000 相关账户…...

3C电子制造行业MES系统,提高企业生产效率

随着科技的不断进步,3C电子制造行业正迎来传统工厂向数字化工厂转型的阶段。在这场变革中,MES系统发挥着重要的作用,成为了企业变革的“智慧大脑”,引领着生产流程的优化和升级。 那么,MES系统究竟有哪些功能&#xf…...

C++ 多态和虚函数

参考C:多态 详解_c多态-CSDN博客 C多态——虚函数_c的a* a new b()是什么意思-CSDN博客 一.多态的概念 多态是在不同继承关系的类对象,去调用同一函数,产生了不同的行为。比如 Student 继承了 Person。 Person 对象买票全价,…...

七月记录上半

7.5 运行mysql脚本 mysql -u root -p 数据库名 < 脚本名 7.6 使用screen在服务器后台长期运行一个程序&#xff1a; screen -S 窗口名&#xff1a;创建窗口 执行程序脚本 ctrlad&#xff1a;退出窗口 screen -ls &#xff1a;查看所有窗口 screen -r 窗口号 &#…...

Wing FTP Server

文章目录 1.Wing FTP Server简介1.1主要特点1.2使用教程 2.高级用法2.1Lua脚本,案例1 1.Wing FTP Server简介 Wing FTP Server&#xff0c;是一个专业的跨平台FTP服务器端&#xff0c;它拥有不错的速度、可靠性和一个友好的配置界面。它除了能提供FTP的基本服务功能以外&#…...

【Linux进阶】文件系统6——理解文件操作

目录 1.文件的读取 1.1.目录 1.2.文件 1.3.目录树读取 1.4.文件系统大小与磁盘读取性能 2.增添文件 2.1.数据的不一致&#xff08;Inconsistent&#xff09;状态 2.2.日志式文件系统&#xff08;Journaling filesystem&#xff09; 3.Linux文件系统的运行 4、文件的删…...

Python编译器的选择

了解如何使用一个集成开发环境&#xff08;IDE&#xff09;对于 Python 编程是非常重要的。IDE 提供了代码编辑、运行、调试、版本控制等多种功能&#xff0c;可以极大地提升开发效率。以下是一些流行的 Python IDE 和代码编辑器的介绍&#xff0c;以及如何开始使用它们&#x…...

第19节 Node.js Express 框架

Express 是一个为Node.js设计的web开发框架&#xff0c;它基于nodejs平台。 Express 简介 Express是一个简洁而灵活的node.js Web应用框架, 提供了一系列强大特性帮助你创建各种Web应用&#xff0c;和丰富的HTTP工具。 使用Express可以快速地搭建一个完整功能的网站。 Expre…...

云原生核心技术 (7/12): K8s 核心概念白话解读(上):Pod 和 Deployment 究竟是什么?

大家好&#xff0c;欢迎来到《云原生核心技术》系列的第七篇&#xff01; 在上一篇&#xff0c;我们成功地使用 Minikube 或 kind 在自己的电脑上搭建起了一个迷你但功能完备的 Kubernetes 集群。现在&#xff0c;我们就像一个拥有了一块崭新数字土地的农场主&#xff0c;是时…...

UDP(Echoserver)

网络命令 Ping 命令 检测网络是否连通 使用方法: ping -c 次数 网址ping -c 3 www.baidu.comnetstat 命令 netstat 是一个用来查看网络状态的重要工具. 语法&#xff1a;netstat [选项] 功能&#xff1a;查看网络状态 常用选项&#xff1a; n 拒绝显示别名&#…...

跨链模式:多链互操作架构与性能扩展方案

跨链模式&#xff1a;多链互操作架构与性能扩展方案 ——构建下一代区块链互联网的技术基石 一、跨链架构的核心范式演进 1. 分层协议栈&#xff1a;模块化解耦设计 现代跨链系统采用分层协议栈实现灵活扩展&#xff08;H2Cross架构&#xff09;&#xff1a; 适配层&#xf…...

C++.OpenGL (10/64)基础光照(Basic Lighting)

基础光照(Basic Lighting) 冯氏光照模型(Phong Lighting Model) #mermaid-svg-GLdskXwWINxNGHso {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-GLdskXwWINxNGHso .error-icon{fill:#552222;}#mermaid-svg-GLd…...

用机器学习破解新能源领域的“弃风”难题

音乐发烧友深有体会&#xff0c;玩音乐的本质就是玩电网。火电声音偏暖&#xff0c;水电偏冷&#xff0c;风电偏空旷。至于太阳能发的电&#xff0c;则略显朦胧和单薄。 不知你是否有感觉&#xff0c;近两年家里的音响声音越来越冷&#xff0c;听起来越来越单薄&#xff1f; —…...

佰力博科技与您探讨热释电测量的几种方法

热释电的测量主要涉及热释电系数的测定&#xff0c;这是表征热释电材料性能的重要参数。热释电系数的测量方法主要包括静态法、动态法和积分电荷法。其中&#xff0c;积分电荷法最为常用&#xff0c;其原理是通过测量在电容器上积累的热释电电荷&#xff0c;从而确定热释电系数…...

初探Service服务发现机制

1.Service简介 Service是将运行在一组Pod上的应用程序发布为网络服务的抽象方法。 主要功能&#xff1a;服务发现和负载均衡。 Service类型的包括ClusterIP类型、NodePort类型、LoadBalancer类型、ExternalName类型 2.Endpoints简介 Endpoints是一种Kubernetes资源&#xf…...

Unity UGUI Button事件流程

场景结构 测试代码 public class TestBtn : MonoBehaviour {void Start(){var btn GetComponent<Button>();btn.onClick.AddListener(OnClick);}private void OnClick(){Debug.Log("666");}}当添加事件时 // 实例化一个ButtonClickedEvent的事件 [Formerl…...

C++实现分布式网络通信框架RPC(2)——rpc发布端

有了上篇文章的项目的基本知识的了解&#xff0c;现在我们就开始构建项目。 目录 一、构建工程目录 二、本地服务发布成RPC服务 2.1理解RPC发布 2.2实现 三、Mprpc框架的基础类设计 3.1框架的初始化类 MprpcApplication 代码实现 3.2读取配置文件类 MprpcConfig 代码实现…...