• Ribbon重试


    由于Eureka的剔除延迟,导致一个服务挂了以后(未从列表剔除期间),访问到这台宕机服务器的请求就会报错,而此时明明有可以提供相同服务的其他服务器在正常运行,这不是我们想看到的。

    第一步:引入依赖

      

    第二步:在服务消费方添加配置(yaml文件中的元素不能重复,举例:如果文件中已经配置了spring:开头的配置,开启重试功能的配置请添加到该配置下否则项目无法启动)

    spring:
    cloud:
    loadbalancer:
    retry:
    enabled: true # 开启Spring Cloud的重试功能


    user-service:
    ribbon:
    ConnectTimeout: 250 # 毫秒 Ribbon的连接超时时间
    ReadTimeout: 1000 # 毫秒 Ribbon的数据读取超时时间
    OkToRetryOnAllOperations: true # 是否对所有操作都进行重试
    MaxAutoRetriesNextServer: 1 # 切换实例的重试次数
    MaxAutoRetries: 1 # 对当前实例的重试次数

    这样当访问到宕机且没来得及剔除的服务,就会去尝试切换服务实例,重试次数取决于MaxAutoRetriesNextServer。尝试指定次数后还是找不到能正常响应的服务实例才会报错。

    参考:https://www.jianshu.com/p/d0c07a072773

  • 相关阅读:
    问题 A: C#抽象类Vehicles
    最短路练习
    BFS
    poj 1083 Moving Tables
    组合数
    hdu 1443 Joseph【约瑟夫环】
    poj 2449 Remmarguts' Date【第K短路】
    hdu 1695 GCD 【莫比乌斯函数】
    hdu 2178 猜数字
    bzoj 2440 完全平方数 【莫比乌斯函数】
  • 原文地址:https://www.cnblogs.com/zou-rong/p/12582709.html
Copyright © 2020-2023  润新知