(五)SpringBoot+SpringCloud —— Ribbon负载均衡与配置

负载均衡

Ribbon是Netflix 发布的开源项目,主要功能是提供客户端的软件负载均衡算法,将Netflix的中间层服务链接在一块儿。Ribbon客户端组 件提供一系列完善的配置项如链接超时,重试等。简单的说,就是在配置文件中列出Load Balancer后面全部的机器,Ribbon会自动的帮助你基于某种规则(如简单轮询,随即链接等)去链接这些机器。咱们也很容易使用Ribbon实现 自定义的负载均衡算法。git

Ribbon提供了7个自带的负载均衡器:github

策略 说明
BestAvailableRule 选择一个最小的并发请求的服务。
AvailabilityFilteringRule 过滤掉一直链接失败服务, 过滤掉那些高并发的服务( 超过配置阈值 )。
WeightedResponseTimeRule 根据权重负载(基于相应时间),权重越小,被选中的可能性越低。
RetryRule 在配置时间内当选择的服务调用不成功, 在选定的负载均衡策略机上重试。
RoundRobinRule 按顺序轮训选择服务。
RandomRule 随机选择一个服务。
ZoneAvoidanceRule 对服务所在的区域和可用性,进行复杂的判断后选择一个服务。

配置简介

在引入Spring Cloud Ribbon的依赖以后,就可以自动化构建下面这些接口的实现:算法

  • IClientConfig:Ribbon的客户端配置;
  • IRule:负载均衡策略;
  • IPing:实例检查策略;
  • ServerList:服务实例清单维护策略;
  • ServerListFilter:服务实例清单过滤策略;
  • ILoadBalancer:负载均衡器策略;

参数配置

对于Ribbon的参数配置分为局部和全局两种:spring

全局:ribbon.<key>=<value>;并发

局部:<服务签名>.ribbon.<key>=<value>;负载均衡

重试机制

  • spring.cloud.loadbalancer.retry.enable:开启重试;
  • ribbon.ConnectTimeout:请求链接的超时时间;
  • ribbon.ReadTimeout:请求处理的超时时间;
  • ribbon.OkToRetryOnAllOperations:对全部操做请求都重试;
  • ribbon.MaxAutoRetriesNextServer:切换实例的重试次数;
  • ribbon.MaxAutoRetries:对当前实例的重试次数;

Github:https://github.com/XuePeng87/owl-bookstoredom

相关文章
相关标签/搜索