zoukankan      html  css  js  c++  java
  • Ribbon详解

    简述

      Ribbon是 Netflflixfa 发布的一个负载均衡器,有助于控制 HTTP 和 TCP客户端行为。在 SpringCloud 中,Eureka一般配合Ribbon进行使用,Ribbon提供了客户端负载均衡的功能,Ribbon利用从Eureka中读取到的服务信息,在调用服务节点提供的服务时,会合理的进行负载。在SpringCloud中可以将注册中心和Ribbon配合使用,Ribbon自动的从注册中心中获取服务提供者的列表信息,并基于内置的负载均衡算法,请求服务。

    主要功能

    服务调用

      基于Ribbon实现服务调用, 是通过拉取到的所有服务列表组成(服务名-请求路径的)映射关系。借助

    RestTemplate 最终进行调用。
      我们只需在RestTemplate配置上方加入LoadBalanced注解即可使用Ribbon的服务调用功能
      此时的restTemplate的url的ip地址只需写调用的服务名称即可,Ribbon会自动帮我们进行映射

    负载均衡

      当有多个服务提供者时,Ribbon可以根据负载均衡的算法自动的选择需要调用的服务地址

      Ribbon是一个典型的客户端负载均衡器,Ribbon会获取服务的所有地址,根据内部的负载均衡算法获取本次请求的有效地址。

      当我们为restTemplate打上LoadBalanced注解时,Ribbon默认启动了轮询策略的负载均衡。

    负载均衡策略

      Ribbon默认的负载均衡策略是轮询策略,当然也可以自定义Ribbon的负载均衡策略。

      yml配置格式为:服务名 - ribbon - NFLoadBalancerRuleClassName :策略

    ##需要调用的微服务名称
    shop-service-product:
     ribbon:
       NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule

    Ribbon请求重试配置

      Ribbon的服务请求提供了请求重试的机制,当Ribbon请求一个服务失败时可以设定请求重试的相关机制,让客户端得到更快的响应

    service-product:
      ribbon:
        #NFLoadBalancerRuleClassName: 修改Ribbon的负载均衡策略
        ConnectTimeout: 250 # Ribbon的连接超时时间
        ReadTimeout: 1000 # Ribbon的数据读取超时时间
        OkToRetryOnAllOperations: true # 是否对所有操作都进行重试
        MaxAutoRetriesNextServer: 1 # 切换实例的重试次数
        MaxAutoRetries: 1 # 对当前实例的重试次数

      

      

     

    一点一点积累,一点一点蜕变!
  • 相关阅读:
    赛前一个月
    Barricade---hdu5889(最短路+网络流)
    Tea---hdu5881(规律)
    The Best Path---hdu5883(欧拉路径)
    Cure---hdu5879(打表+找规律)
    Python列表操作
    Zabbix在Docker中的应用和监控
    flannel网络设置
    Volume
    Service资源清单
  • 原文地址:https://www.cnblogs.com/qq2210446939/p/15075535.html
Copyright © 2011-2022 走看看