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

相关推荐

  1. 服务

    2024-07-10 18:28:05       39 阅读
  2. 服务Cloud-预习】

    2024-07-10 18:28:05       38 阅读
  3. 服务: Spring Cloud

    2024-07-10 18:28:05       11 阅读
  4. 前端

    2024-07-10 18:28:05       57 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-10 18:28:05       5 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-10 18:28:05       5 阅读
  3. 在Django里面运行非项目文件

    2024-07-10 18:28:05       4 阅读
  4. Python语言-面向对象

    2024-07-10 18:28:05       6 阅读

热门阅读

  1. 【C++与python】| splice语法对比列表切片

    2024-07-10 18:28:05       8 阅读
  2. 从IBM ESB升级到RestCloud iPaaS的全面指南

    2024-07-10 18:28:05       10 阅读
  3. css之transform-origin

    2024-07-10 18:28:05       9 阅读
  4. LeetCode题练习与总结:乘积最大子数组--152

    2024-07-10 18:28:05       9 阅读
  5. Kafka发送对象消息

    2024-07-10 18:28:05       10 阅读
  6. 【C++】Google Test(gtest)单元测试

    2024-07-10 18:28:05       9 阅读
  7. 中国在生成式人工智能专利方面处于领先地位

    2024-07-10 18:28:05       8 阅读
  8. Perl中的文件系统守卫:实现自定义访问控制

    2024-07-10 18:28:05       9 阅读
  9. wpf 自定义 一个事件聚合自定义示例

    2024-07-10 18:28:05       8 阅读
  10. socketserver

    2024-07-10 18:28:05       9 阅读