专注app软件定制开发高频面试之Ribbon

1、简介

实现

2、专注app软件定制开发负载均衡策略

专注app软件定制开发负载均衡的权重策略较为特殊,可重点查看:

  • RandomRule,随机策略,通过 ThreadLocalRandom.current().nextInt(serverCount) 实现,保证随机性和线程隔离性
  • RoundRobinRule,轮询策略,通过 int next = (current + 1) % modulo(所有服务器数) 实现
  • BestAvailableRule,最小并发请求策略,通过 getActiveRequestsCount() 函数选择一个最小的并发请求的server
  • AvailabilityFilteringRule,过滤掉那些因为一直连接失败的被标记为circuit tripped的后端server,并过滤掉那些高并发的的后端
  • WeightedResponseTimeRule,权重策略:
    • 实现原理:
      • 1、假设有4台服务器:A(wt=10), B(wt=30), C(wt=40), D(wt=20)
      • 2、那么4台服务器的权重值区间依次为[1,10],[11,40],[41,80],[81-100]
      • 3、生成[1,权重和]的一个随机数,随机数落在哪个区间则调用哪台服务器
    • 实现依赖:权重会通过动态计算响应时间得出
      • 1、通过DynamicServerWeightTask以定时任务的方式计算响应时间,调度的时间间隔为30秒,
      • 2、首先计算所有服务器的平均响应时间之和,记为totalResponseTime
      • 3、计算单个服务器权重,weight = totalResponseTime - 服务器平均响应时间,计算完后,更新权重列表
    • 调用过程:
      • 1、判断权重列表是否已初始化,如果没有,则暂时使用轮询策略
      • 2、生成随机数,并判断随机并判断随机数落在哪个权重区间,返回对应的服务器即可
      • 3、其他的例如判断服务器可用性等于随机、轮询一致
网站建设定制开发 软件系统开发定制 定制软件开发 软件开发定制 定制app开发 app开发定制 app开发定制公司 电商商城定制开发 定制小程序开发 定制开发小程序 客户管理系统开发定制 定制网站 定制开发 crm开发定制 开发公司 小程序开发定制 定制软件 收款定制开发 企业网站定制开发 定制化开发 android系统定制开发 定制小程序开发费用 定制设计 专注app软件定制开发 软件开发定制定制 知名网站建设定制 软件定制开发供应商 应用系统定制开发 软件系统定制开发 企业管理系统定制开发 系统定制开发