• 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 解决分布式事务问题
  • 相关阅读:
    刷脸支付对旅游行业的影响
    Docker-nginx简单实用(启动停止)
    java 桥接方法
    shell运算符
    一个方法中两个参数列表和整数,列表相邻相差绝对值与比较输入false和true
    [Linux打怪升级之路]-秒懂进程地址空间
    Windows中执行C语言编译的程序乱码的解决方法
    产品百度百科如何创建?产品类百度百科怎么做?
    讯优随身Wi-Fi(410)折腾
    双周总结#002 - 红树林
  • 原文地址:https://blog.csdn.net/qq_44724899/article/details/128065136