美文网首页
Ribbon (2019-01-10)

Ribbon (2019-01-10)

作者: Rondo9 | 来源:发表于2019-01-10 23:00 被阅读0次

服务调用方

Maven: 

    <dependency>

        <groupId>org.springframework.cloud</groupId>

        <artifactId>spring-cloud-starter-ribbon</artifactId>

        <version>1.4.6.RELEASE</version>

    </dependency>

配置YML文件: 

    <client>.ribbon.listOfServers: localhost:9001, localhost:9002

    <client>.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)

      本文链接:https://www.haomeiwen.com/subject/cuvarqtx.html