Java常见技术分享-分布式篇-SpringCloud-01-基础组件

SpringCloud 的基础概念

SpringCloud 是基于SpringBoot开发的微服务框架, 专注于让开发者更方便的搭建分布式服务。

微服务框架核心元素

  • 服务注册发现
    • 简单的说 其实就是服务通讯录, 当你作为其中一个服务要给其他只知道名称的服务通信的时候, 去通讯录里边查询一下这个名称服务对应的具体通信所需的信息,比如内部网络IP,不用记死地址。
    • SpringCloud 里负责这一块的组件 如 Nacos
  • 配置中心
    • 统一管理所有服务的配置 一般来说 服务部署时读取配置的 优先级 配置中心的配置 优先于 本地的配置。
    • SpringCloud 里负责这一块的组件 同样是Nacos
  • 服务调用
    • 虽然说已经有了通讯录, 但是 每次调用的时候 假如没有服务调用的组件, 那么你就得 自己根据服务的名称去nacos获取 服务通信信息, 根据调用的方法构造对应的Https 调用。 但是有了服务调用组件, 你直接调用对应的服务的方法就行了, 加个注解 , 就能像调用本地方法一样 调用其他服务的方法。
    • SpringCloud 里负责这一块的组件 OpenFeign
  • 网关
    • 内部服务互相调用解决了, 但是 外部服务 怎么调用系统的功能呢? 不可能单独调用一个微服务用一个新的域名 顶多 path不同, 所以根据path 把请求分发给对应的微服务处理 ,变成了至关重要的事, 而网关就是解决这个问题的, 所有来自外部的请求都会先经过网关处理,不仅是分发请求, 同时要进行安全检查,日志记录,对请求进行筛选等。
    • SpringCloud 里负责这块的组件是 Gateway
  • 服务容错
    • 现在服务之间的调用算是打通了, 此时 假如某个微服务挂了, 或者 处理比较慢, 其他微服务由于链式调用都在等待这个微服务, 对应的资源一直得不到释放, 全都卡死, 或者 调用某个接口太频繁导致服务器 负载过高, 整体性能降低, 此时需要给 这个微服务调用 进行 限流 或者熔断。 监控服务状态。
    • SpringCloud 里负责这块的组件是 Sentinel
  • 链路追踪
    • 主要是为了排查问题, 毕竟一个请求涉及到多个微服务, 出问题了, 得排查看是哪一块出现了问题。 或者是耗时记录。
    • 一般这块用的是Skywalking, 是独立的开源的链路追踪工具,能够集成到SpringCloud里头。
  • 分布式事务
    • 多个微服务都在操作数据库, 如果服务部署在k8s上,属于不同的容器, Spring的事务管理只能保证单个进程的事务ACID, 但是多个微服务 一个链式的调用, 确保一起整体分布式事务的ACID 就成了问题。
    • SpringCloud里负责这块的是Seata.
相关推荐
这个DBA有点耶5 小时前
2026年分布式数据库有哪些主流选择?先评估这5个维度再决定
数据库·分布式·dba
古法安卓5 小时前
Android-日志系统源码解析
android·java·android studio
小夏coding7 小时前
从"一把梭"到"精妙拆解" —— 滑动窗口计时框架的设计演进
java·后端
MacroZheng8 小时前
同事问我:"Claude Code经常失忆,不怕它把项目搞炸?",我:"怕,三个Markdown文件给它装个永不丢失的外置大脑!"
java·人工智能·后端
十年Java程序媛9 小时前
深度实战:JDK21 虚拟线程 + HikariCP 生产正确配比、坑点、监控全套
java·spring boot
xiaoqiMikko9 小时前
有人在搜一个不存在的 Tomcat 版本
java·tomcat
用户31268748772013 小时前
ConcurrentHashMap 怎么保证线程安全?从分段锁到 CAS+synchronized
java
vipxieliang13 小时前
ValidX vs Apache Commons Validator:功能与性能对比
java·spring boot
SimonKing13 小时前
升级Spring Boot 4后,从 Jackson 2 到 3,到底有哪些变化
java·后端·程序员
吃饱了得干活13 小时前
一篇讲清楚Spring Boot:自动装配、启动器、过滤器、拦截器、设计模式
java·spring boot·后端