• feign


        feign

    l  整合ribbon和hystrix

    l  声明式客户端

    n  只需要定义一个远程调用接口,不需要写远程调用代码

    1  声明式客户端

    声明远程调用接口,不用写远程调用的代码

    @FeignClient(name="service-id")
    
    interface A {
    
       @GetMapping("/{orderId}")
    
       void a(@PathVariable String orderId);
    
    }
    
     

    2  feign+ribbon

    不用配置,默认启动负载均衡和重试

    重试参数的默认值:

    ConnectTimeout: 1000
    
    ReadTimeout: 1000
    
    MaxAutoRetries: 0
    
    MaxAutoRetriesNextServer: 1
    
     

    3  feign+hystrix

    降级

    启用hystrix: feign.hystrix.enabled=true

    实现远程调用接口,在子类中添加降级代码

    @Component
    
    class AFb implements A {
    
       public void a() {
    
          降级代码
    
        }
    
    }
    
     
    
    @FeignClient(name="...", fallback=AFb.class)
    
    interface A {
    
    }
    
     

    熔断

    l  hystrix的完整依赖

    l  actuator依赖

    l  @EnableCircuitBreaker

    l  暴露 hystrix.stream 监控端点

    4  feign 整合ribbon+hystrix

    项目中,不会单独使用ribbon和hystrix,都是用 Feign

    Feign用来在服务之间互相调用

      turbine

    聚合监控

    从多台服务器获取监控数据,把数据聚合后,交给仪表盘展示

    turbine:
    
      app-config: feign, order-service
    
     

    turbine不使用actuator暴露监控端点,它自己暴露的监控端点是 /turbine.stream

  • 相关阅读:
    【C语言天天练(二二)】位操作
    远程调用内核接口的封装类(RCKObjs)
    03010_防止SQL注入
    PHP 5 SimpleXML 函数
    PHP 5 String 函数
    PHP 5 MySQLi 函数
    PHP 杂项 函数
    PHP PDO
    PHP 5 时区
    分享海量 iOS 及 Mac 开源项目和学习资料
  • 原文地址:https://www.cnblogs.com/B1ackWall/p/11611016.html
Copyright © 2020-2023  润新知