互联网项目---3(Ribben优化)

3.3 负载均衡策略

  • {服务名称}.ribbon.NFLoadBalancerRuleClassName=具体策略

    service:	#服务名
      ribbon:
        NFLoadBalancerRuleClassName : com.netflix.loadbalancer.RandomRule             #随机
    #    NFLoadBalancerRuleClassName : com.netflix.loadbalancer.BestAvailableRule           #并发最少
    #    NFLoadBalancerRuleClassName : com.netflix.loadbalancer.WeightedResponseTimeRule    #请求时间权重
    

3.4 优化:重试机制

  • 当一次服务调用失败后,不会立即抛出异常,而是再次重试另一个服务

  • 步骤一: 修改pom文件

    <dependency>
        <groupId>org.springframework.retry</groupId>
        <artifactId>spring-retry</artifactId>
    </dependency>
    
  • 步骤二: 修改yml文件,开启重试机制,并配置参数

    spring:
      cloud:
        loadbalancer:
          retry:
            enabled: true	#开启重试机制
            
    service:	#服务名
      ribbon:
        NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule  #随机
        #NFLoadBalancerRuleClassName : com.netflix.loadbalancer.BestAvailableRule          #并发最少
        #NFLoadBalancerRuleClassName : com.netflix.loadbalancer.WeightedResponseTimeRule       #请求时间权重
        ConnectTimeout: 250               # Ribbon的连接超时时间
        ReadTimeout: 1000                 # Ribbon的数据读取超时时间
        OkToRetryOnAllOperations: true  # 是否对所有操作都进行重试
        MaxAutoRetriesNextServer: 1     # 切换实例的重试次数
        MaxAutoRetries: 1                 # 对当前实例的重试次数
    
发布了31 篇原创文章 · 获赞 0 · 访问量 182

猜你喜欢

转载自blog.csdn.net/weixin_46759279/article/details/105713370
今日推荐