微服务: 初识 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 | 管理分布式系统中的事务,确保数据的一致性。 | 解决在分布式系统中多个服务之间的数据一致性问题。 |
各组件之间的关系
这些组件各自有自己的职责,但在一个完整的微服务系统中,它们是如何协同工作的呢?可以用一个公司的部门运作来比喻:
- Nacos 就像公司的通讯录,记录了所有部门(服务)的联系方式,方便大家互相联系。
- Spring Cloud Loadbalancer 就像前台的调度员,负责把来访者(请求)分配给不同的员工(服务实例)。
- Sentinel 就像公司的安全系统,监控各个部门的工作状态,如果发现某个部门出现异常,就会隔离该部门,防止影响全公司。
- Spring Cloud Gateway 就像公司的大门,所有来访者(请求)都要经过这里,然后再被转发到相应的部门。
- Nacos(配置中心) 就像公司的行政部门,负责管理所有的规章制度和配置文件,并且可以随时更新。
- Spring Cloud OpenFeign 就像公司的内部联系系统,让各个部门之间可以方便地互相沟通。
- Skywalking 就像公司的监控系统,记录每个部门的工作流程,帮助找到并解决问题。
- Seata 就像公司的财务部门,确保各个部门之间的交易和数据一致性。
总的来说,在微服务系统中,Nacos帮我们找到服务,Loadbalancer分配请求,Sentinel保护系统稳定,Gateway是入口大门,配置中心Nacos管理配置,OpenFeign让服务互相打电话,Skywalking监控系统,Seata确保数据一致。它们一起合作,保证微服务系统高效、稳定地运行。
再举个例子
- Nacos 就像快递公司内部的物流管理系统,记录了所有配送员(服务)的位置信息,方便调度和管理。
- Spring Cloud Loadbalancer 就像调度中心,负责将包裹(请求)分配给不同的配送员(服务实例),确保每个配送员的工作量均衡。
- Sentinel 就像快递公司的安全系统,实时监控每个配送员的状态,如果发现某个配送员出现问题,就会暂停其工作,防止影响其他配送员。
- Spring Cloud Gateway 就像快递公司的总仓库,所有包裹(请求)都要先到这里,然后再被分发到各个区域的配送员。
- Nacos(配置中心) 就像快递公司的规章制度和操作手册,规定了每个配送员的工作流程,并且可以随时更新这些规定。
- Spring Cloud OpenFeign 就像快递公司内部的通讯系统,让各个配送员之间可以方便地互相联系和协调工作。
- Skywalking 就像快递公司的监控系统,记录每个包裹的配送过程,帮助公司找到并解决配送中的问题。
- 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系统究竟有哪些功能…...
C++ 多态和虚函数
参考C:多态 详解_c多态-CSDN博客 C多态——虚函数_c的a* a new b()是什么意思-CSDN博客 一.多态的概念 多态是在不同继承关系的类对象,去调用同一函数,产生了不同的行为。比如 Student 继承了 Person。 Person 对象买票全价,…...
七月记录上半
7.5 运行mysql脚本 mysql -u root -p 数据库名 < 脚本名 7.6 使用screen在服务器后台长期运行一个程序: screen -S 窗口名:创建窗口 执行程序脚本 ctrlad:退出窗口 screen -ls :查看所有窗口 screen -r 窗口号 &#…...
Wing FTP Server
文章目录 1.Wing FTP Server简介1.1主要特点1.2使用教程 2.高级用法2.1Lua脚本,案例1 1.Wing FTP Server简介 Wing FTP Server,是一个专业的跨平台FTP服务器端,它拥有不错的速度、可靠性和一个友好的配置界面。它除了能提供FTP的基本服务功能以外&#…...
【Linux进阶】文件系统6——理解文件操作
目录 1.文件的读取 1.1.目录 1.2.文件 1.3.目录树读取 1.4.文件系统大小与磁盘读取性能 2.增添文件 2.1.数据的不一致(Inconsistent)状态 2.2.日志式文件系统(Journaling filesystem) 3.Linux文件系统的运行 4、文件的删…...
Python编译器的选择
了解如何使用一个集成开发环境(IDE)对于 Python 编程是非常重要的。IDE 提供了代码编辑、运行、调试、版本控制等多种功能,可以极大地提升开发效率。以下是一些流行的 Python IDE 和代码编辑器的介绍,以及如何开始使用它们&#x…...
Swift Core ML Stable Diffusion架构设计:打造高性能移动端AI绘画引擎
Swift Core ML Stable Diffusion架构设计:打造高性能移动端AI绘画引擎 【免费下载链接】swift-coreml-diffusers Swift app demonstrating Core ML Stable Diffusion 项目地址: https://gitcode.com/gh_mirrors/sw/swift-coreml-diffusers 想要在iPhone和Mac…...
告别手动整理!Qwen3-ASR-1.7B帮你自动转写会议录音,5分钟部署即用
告别手动整理!Qwen3-ASR-1.7B帮你自动转写会议录音,5分钟部署即用 1. 语音识别的新选择 还在为会议录音转写而烦恼吗?传统的手动转写不仅耗时耗力,而且准确率难以保证。Qwen3-ASR-1.7B语音识别模型的出现,彻底改变了…...
BiliTools终极指南:三步掌握B站视频批量下载与音频提取
BiliTools终极指南:三步掌握B站视频批量下载与音频提取 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …...
利用快马平台快速构建ccswitch功能演示原型,十分钟搞定交互界面
最近在做一个网络工具的小项目,需要快速验证ccswitch的核心功能原型。作为一个独立开发者,时间有限但又想做出像样的演示效果,于是尝试了InsCode(快马)平台,没想到十分钟就搞定了交互界面。这里分享一下我的实现思路和具体操作步骤…...
CC 开源版完整安装部署指南
CC(Claude-Code-Compiled)开源版完整安装部署指南 前言 CC(Claude-Code-Compiled)是一款基于 Claude 生态的轻量化命令行代码助手工具,基于 Bun 运行时实现高效编译与执行。本文将手把手带你完成环境依赖安装 → 项目构…...
通义千问3-Reranker-0.6B开箱即用:国产信创服务器上的语义裁判快速搭建
通义千问3-Reranker-0.6B开箱即用:国产信创服务器上的语义裁判快速搭建 1. 为什么需要专业的语义重排序模型? 在信息爆炸的时代,我们每天都要面对海量的文本数据。无论是企业知识库、电商搜索还是智能客服,传统的关键词匹配就像…...
damaihelper:智能票务自动化系统 - 重新定义公平抢票技术范式
damaihelper:智能票务自动化系统 - 重新定义公平抢票技术范式 【免费下载链接】damaihelper 支持大麦网,淘票票、缤玩岛等多个平台,演唱会演出抢票脚本 项目地址: https://gitcode.com/gh_mirrors/dam/damaihelper 一、技术赋能&#…...
SEO创始人有哪些著名的代表人物
SEO创始人有哪些著名的代表人物? 在互联网时代,搜索引擎优化(SEO)已经成为数字营销中不可或缺的一部分。无论是小型企业还是大型跨国公司,都在通过SEO提升网站在搜索引擎结果页面的排名,从而获得更多的流量…...
C#实战:5步搞定阿里健康药品追溯码接口对接(附完整签名源码)
C#实战:5步高效对接阿里健康药品追溯码API 在医院和药店管理系统中,药品追溯功能已成为刚需。阿里健康提供的药品追溯码查询接口,能帮助医疗机构快速获取药品全流程信息。作为.NET开发者,你可能需要将这个功能集成到现有ERP系统中…...
5分钟快速上手:用LeaguePrank打造你的专属英雄联盟游戏形象
5分钟快速上手:用LeaguePrank打造你的专属英雄联盟游戏形象 【免费下载链接】LeaguePrank 项目地址: https://gitcode.com/gh_mirrors/le/LeaguePrank LeaguePrank是一款基于官方LCU API开发的开源工具,让你能够安全、合规地修改英雄联盟游戏界面…...
