• 微服务之间相互调用问题


    RestTemplate :是一个访问Restful风格的第三方服务的 网络请求框架

    使用 :  1.使用配置类配置一个RestTemplate的bean

        2.在要使用的服务中自动注入

    Nacos:一个微服务的服务注册中心(nacos关闭后服务的链接不会失效)

    Ribbon:一个springcloud组件,用来实现服务调用的负载均衡

     使用:在restTemplate 的bean上加上@LoadTemplate注解就能使用默认的均衡算法 来均衡

    ribbon还提供了重试机制

    几个参数:建立连接的超时时间(connectTimeout),处理请求的超时时间,同一实例的最大重试次数,所有其他实例(不包括第一次链接)的最大重试次数

    OpenFeign: 一个伪http客户端,集成了 ribbon和resttemplate 

    feign 中ribbon的关键属性

      OkToRetryOnAllOperations 

        :true  //所有请求都会重试 (不安全,可能会想数据库插入两个相同记录)

        :false //只有get类型,也就是查询才会出发重试机制(推荐)

      

      feign参数传递:

        get:服务调用方接口中的feign方法    传递对象的参数   前面要加@SpringQueryMap注解

        post:服务提供方 的controller中参数要加  @RequestBody

    服务雪崩:下游的服务不可用导致上游的不可用

      

    解决方案:隔离 超时 限流 熔断 降级 

    sentinel  : 一套服务容错的综合性解决方案

      sentinel配置限流  qps ,该controller  1秒钟内可以被访问的次数

      sentinel配置熔断降级(以后请求不再执行) RT 和时间窗口  该controller执行平均时间不能超过  如(RT) 100ms  ,否则在 30s(时间窗口)内不再处理请求,

      而是抛出异常,30s后恢复

    限流,降级等会导致被保护的controller抛出FlowException ,DegradeException等异常

      这类异常无法被普通的异常切面捕获到,需要一个实现UrlBlockHandler的类来处理该类型异常

      

  • 相关阅读:
    Pycharm中导入Python包的方法
    关于SOA架构设计的案例分析
    浅谈12306核心模型设计思路和架构设计
    美图数据统计分析平台架构演进
    有赞搜索系统的架构演进
    美团云的网络架构演进之路
    数据蜂巢架构演进之路
    1号店电商峰值与流式计算
    京东B2B业务架构演变
    饿了么:业务井喷时订单系统架构的演进
  • 原文地址:https://www.cnblogs.com/javarook/p/13574558.html
Copyright © 2020-2023  润新知