栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

hystrix 和 ribbon超时&feign日志

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

hystrix 和 ribbon超时&feign日志

server:
  port: 8090
spring:
  application:
    name: springcloud-service-consume

eureka:
  client:
    service-url:
      defaultZone: http://eureka8762.com:8762/eureka/,http://eureka8763.com:8763/eureka/
  instance:
    prefer-ip-address: true

springcloud-service-provider: #可以争对单个服务加配置
  ribbon:
    NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RoundRobinRule
    ReadTimeout: 5000 #读取接口超时时间设置  如果是hystrix超时生效 则不会开始ribbon重试
    ConnectTimeout: 4000
    OkToRetryOnAllOperations: false # 对所有操作请求都进行重试 只对get请求重试
    MaxAutoRetries: 2 # 对当前实例的重试次数 不包含第一调用
    MaxAutoRetriesNextServer: 0 # 当前实例如果还是无响应则切换实例的重试次数
  #  ribbon是在调用的时候才会去创建RibbonClient
  #  这样一来如果创建时间速度较慢,同时设置的超时时间又比较短的话,很容易就会出现第一次访问会有报错的情况发生
    eager-load:
      enabled: true #开启Ribbon的饥饿加载模式  启动的时候就立即初始化
      clients: springcloud-service-provider #指定需要饥饿加载的服务名
# 开启Feign的熔断功能
feign: #Feign的超时时⻓设置那其实就上⾯Ribbon的超时时⻓设置
  hystrix:
    enabled: true
  #通过 Gzip 压缩算法,提升网络通信速度
  compression:
    request:
      enabled: true #配置请求 GZIP 压缩
      mime-types: text/xml,application/xml,application/json #配置压缩支持的 MIME TYPE
      min-request-size: 512 #配置压缩数据大小的最小阀值,默认 2048
    response:
      enabled: true #配置响应 GZIP 压缩
  #使用HttpClient替换默认的HttpURLConnection   HttpClient自带连接池 连接池能提升性能
  httpclient:
    enabled: true
    max-connections: 100 #连接池个数,默认200
    max-connections-per-route: 30 #单个路径的最大连接数,默认50

#  针对超时这⼀点,当前有两个超时时间设置(ribbon/hystrix),熔断的时候是根
#  据这两个时间的最⼩值来进⾏的,即处理时⻓超过最短的那个超时时间了就熔断进⼊回退降级逻辑
hystrix:
  command:
    default:
      execution:
        #        enabled设置为true,ribbon,hystrix都有对请求超时的控制权
        #        如果enabled设置为false,则请求超时交给ribbon控制
#        timeout:
#          enabled: true
        isolation:
          #线程池隔离和信号量隔离的区别  线程池:请求并发量大,并且耗时长  信号量: 请求并发大耗时短
#          THREAD: THREAD #必须为大写
          thread:
            #            Hystrix的熔断时间必须大于Ribbon超时时间
            #            5000 + 10000 = 15000
            #            todo 超时设置 ReadTimeout+(MaxAutoRetries * ReadTimeout)
            timeoutInMilliseconds: 5000 #该配置需要比ribbon超时时间长
# springboot中暴露健康检查等断点接⼝
management:
  endpoints:
    web:
      exposure:
        include: "*"
  # 暴露健康接⼝的细节
  endpoint:
    health:
      show-details: always
logging:
  level:
    # Feign⽇志只会对⽇志级别为debug的做出响应
    com.lx.consume.service.UserFacde: debug
// Feign的⽇志级别(Feign请求过程信息)
// NONE:默认的,不显示任何⽇志----性能最好
// BASIC:仅记录请求⽅法、URL、响应状态码以及执⾏时间----⽣产问题追踪
// HEADERS:在BASIC级别的基础上,记录请求和响应的header
// FULL:记录请求和响应的header、body和元数据----适⽤于开发及测试环境定位问题
@Bean
Logger.Level feignLevel(){
    return Logger.Level.BASIC;
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/458575.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号