• springcloud总结篇


    一.整体结构

    • springcloud总体架构
      在这里插入图片描述
    • 对比学习
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述

    二.具体

    1.场景模拟

    • 订单服务调用库存服务来更新数据库中的库存

    2.springcloud问题解析

    Eureka +OpenFeign (Ribbon+RestTemplate)+ Hystrix + Gateway + config + Bus

    1. 订单服务只知道库存服务的名称,如何获得地址?
      Eureka:服务注册与发现(名字+地址)
    2. 此时订单服务获取了库存服务的地址,但是每次都需要建立连接,发送请求,释放连接,需要高效的通过地址调用服务?
      OpenFeign:服务调用(被调用服务映射为一个service)
    3. 此时库存服务是一个集群,在服务注册中心同一个名称注册了多个地址,订单服务如何找到具体的哪一个服务?
      Ribbon:负载均衡(可以采用轮询方法)
    4. 如果订单服务此时访问了库存服务,订单服务本身业务逻辑出问题,用户无法知晓,怎么办?
      Hystrix:服务降级(如果当前方法挂掉,有兜底方法来提示用户)
    5. 前端兄弟要调用订单服务,他必须要知道订单服务在注册中心的名字?
      Gateway:服务网关(通过参数解析地址)
    6. 其他问题
      库存服务每个都有一个配置数据库的,更改数据库需要更改很多?
      Config + Bus :服务配置和服务总线(全体动态刷新和全部从github上获取配置)

    3.spring cloud alibaba 解析

    Nacos + OpenFeign (Ribbon+RestTemplate)+ sentinel + Gateway + Seata

    1. 订单发现库存服务,库存服务统一配置管理(解决上述1+6)
      Nacos=Eureka+config+bus:服务注册中心和配置中心
    2. 此时订单服务获取了库存服务的地址,但是每次都需要建立连接,发送请求,释放连接,需要高效的通过地址调用服务?
      OpenFeign:服务调用(被调用服务映射为一个service)
    3. 此时库存服务是一个集群,在服务注册中心同一个名称注册了多个地址,订单服务如何找到具体的哪一个服务?
      Ribbon:负载均衡(可以采用轮询方法)
    4. 如果订单服务此时访问了库存服务,订单服务本身业务逻辑出问题,用户无法知晓,怎么办?
      Sentinel:服务降级
    5. 分布式的事务管理
      seata:分布式事务管理

    4.springcloud alibaba的组件

    • Nacos = Eureka+config+bus
    • Sentinel = Hystrix
    • Seata 解决分布式事务问题
  • 相关阅读:
    K8s 部署 Nginx
    华为新设备升级示例
    leetocode 29. 两数相除-java
    2022最全的 App 应 用 测 试 技 巧
    前端标注开源库
    现货黄金的价格如何变动
    XXE-XML外部实体注入-知识点
    基于java+SpringBoot+HTML+SqlServer游戏饰品交易网站的设计与实现(程序+论文)
    MongoDB基础【学习笔记】
    Erdos-Renyi随机图的生成方式及其特性
  • 原文地址:https://blog.csdn.net/qq_44724899/article/details/128065136