Ribbon (2019-01-10)

服务调用方

Maven: 

    

        org.springframework.cloud

        spring-cloud-starter-ribbon

        1.4.6.RELEASE

    

配置YML文件: 

    .ribbon.listOfServers: localhost:9001, localhost:9002

    .ribbon.NFLoadBalancerRuleClassName: IRule实现类名称

过程:

    实现IRule接口, 重写(1) Server choose(Object var1); (2) void setLoadBalancer(ILoadBalancer var1); (3) ILoadBalance getLoadBalancer(), 三个方法;

    配置服务器列表, ConfigurationManager.getConfigInstance().setProperty("my-client.ribbon.listOfServers","localhost:9001, localhost:9002");

    配置规则类, ConfigurationManager.getConfigInstance().setProperty("my-client.ribbon.NFLoadBalancerRuleClassName", MyRule.class.getName());

Ribbon自带的负载规则

    RoundRobinRule(默认): 轮询

    AvailabilityFilteringRule: 忽略无法连接的服务器和并发数过高的服务器

    WeightedResponseTimeRule: 权重值会决定服务器的选择(服务器响应时间越长, 权重值越少)

    ZoneAvoidanceRule: 使用Zone对服务器进行分类

    BestAvailableRule: 忽略"短路的服务器", 并选择并发数较低的服务器

    RandomRule: 随机选择可用的服务器

    RetryRule: 含重试选择逻辑, 如果RoundRobinRule选择的服务器无法连接时, 重新选择服务器

你可能感兴趣的:(Ribbon (2019-01-10))