当前位置: 首页 > news >正文

网站建设公司哪些主要哪些wordpress文章页宽度

网站建设公司哪些主要哪些,wordpress文章页宽度,城固城乡建设规划网站,官方网站建设维护合作协议Ribbon负载均衡策略定义 IRule其实就只做了一件事情Server choose(Object key)#xff0c;可以看到这个功能是在LB中定义#xff08;要求#xff09;的#xff0c;LB把这个功能委托给IRule来实现。不同的IRule可以向LB提供不同的负载均衡算法。 public interface IRule{ pu…Ribbon负载均衡策略定义 IRule其实就只做了一件事情Server choose(Object key)可以看到这个功能是在LB中定义要求的LB把这个功能委托给IRule来实现。不同的IRule可以向LB提供不同的负载均衡算法。 public interface IRule{ public Serverchoose(Object key); public void setLoadBalancer(ILoadBalancerlb); public ILoadBalancergetLoadBalancer(); }com.netflix.loadbalancer包下面的提供了常用的几种策略。有RoundRobinRule、RandomRule这样的不依赖于Server运行状况的策略也有AvailabilityFilteringRule、WeightedResponseTimeRule等多种基于收集到的Server运行状况决策的策略。判断运行状况时有判断单个server的也有判断整个zone的适用于各种不同场景需求。 实现上有些策略可以继承一个既存的简单策略用于某些启动时候也可以包含一个简单策略。甚至有ZoneAvoidanceRule这样的可以包含复合谓词的条件判断。TODOTODO IRue hireachy Ribbon自带负载均衡策略比较 策略名策略声明策略描述实现说明BestAvailableRulepublic class BestAvailableRule extends ClientConfigEnabledRoundRobinRule选择一个最小的并发请求的server逐个考察Server如果Server被tripped了则忽略在选择其中ActiveRequestsCount最小的serverAvailabilityFilteringRulepublic class AvailabilityFilteringRule extends PredicateBasedRule过滤掉那些因为一直连接失败的被标记为circuit tripped的后端server并过滤掉那些高并发的的后端serveractive connections 超过配置的阈值使用一个AvailabilityPredicate来包含过滤server的逻辑其实就就是检查status里记录的各个server的运行状态WeightedResponseTimeRulepublic class WeightedResponseTimeRule extends RoundRobinRule根据相应时间分配一个weight相应时间越长weight越小被选中的可能性越低。一个后台线程定期的从status里面读取评价响应时间为每个server计算一个weight。Weight的计算也比较简单responsetime 减去每个server自己平均的responsetime是server的权重。当刚开始运行没有形成statas时使用roubine策略选择server。RetryRulepublic class RetryRule extends AbstractLoadBalancerRule对选定的负载均衡策略机上重试机制。在一个配置时间段内当选择server不成功则一直尝试使用subRule的方式选择一个可用的serverRoundRobinRulepublic class RoundRobinRule extends AbstractLoadBalancerRuleroundRobin方式轮询选择server轮询index选择index对应位置的serverRandomRulepublic class RandomRule extends AbstractLoadBalancerRule随机选择一个server在index上随机选择index对应位置的serverZoneAvoidanceRulepublic class ZoneAvoidanceRule extends PredicateBasedRule复合判断server所在区域的性能和server的可用性选择server使用ZoneAvoidancePredicate和AvailabilityPredicate来判断是否选择某个server前一个判断判定一个zone的运行性能是否可用剔除不可用的zone的所有serverAvailabilityPredicate用于过滤掉连接数过多的Server。Ribbon自带负载均衡策略实现解析 1. com.netflix.loadbalancer.BestAvailableRule 功能选择一个最小的并发请求的server 主要代码逐个考察Server如果Server被tripped了则忽略在选择其中ActiveRequestsCount最小的server for (Serverserver: serverList) { ServerStatsserverStats loadBalancerStats.getSingleServerStat(server); if (!serverStats.isCircuitBreakerTripped(currentTime)) { int concurrentConnections serverStats.getActiveRequestsCount(currentTime); if (concurrentConnections minimalConcurrentConnections) { minimalConcurrentConnections concurrentConnections; chosen server; } }2 com.netflix.loadbalancer.AvailabilityFilteringRule 功能过滤掉那些因为一直连接失败的被标记为circuit tripped的后端server并过滤掉那些高并发的的后端serveractive connections 超过配置的阈值 主要代码使用一个AvailabilityPredicate来包含过滤server的逻辑其实就就是检查status里记录的各个server的运行状态过滤掉那些高并发的的后端serveractive connections 超过配置的阈值 boolean com.netflix.loadbalancer.AvailabilityPredicate.shouldSkipServer(ServerStatsstats) { if ((CIRCUIT_BREAKER_FILTERING.get() stats.isCircuitBreakerTripped()) || stats.getActiveRequestsCount() activeConnectionsLimit.get()) { return true; } return false; }3 com.netflix.loadbalancer.WeightedResponseTimeRule 功能根据相应时间分配一个weight相应时间越长weight越小被选中的可能性越低。 ” 主要代码一个后台线程定期的从status里面读取评价响应时间为每个server计算一个weight。Weight的计算也比较简单responsetime 减去每个server自己平均的responsetime是server的权重。当刚开始运行没有形成statas时使用roubine策略选择server。 class DynamicServerWeightTask extends TimerTask { public void run() { ServerWeightserverWeight new ServerWeight(); serverWeight.maintainWeights(); } }maintainWeights(){ ListDouble finalWeights new ArrayListDouble(); for (Serverserver : nlb.getAllServers()) { ServerStatsss stats.getSingleServerStat(server); double weight totalResponseTime – ss.getResponseTimeAvg(); weightSoFar weight; finalWeights.add(weightSoFar); } setWeights(finalWeights);}Serverchoose(ILoadBalancerlb, Object key) { double randomWeight random.nextDouble() * maxTotalWeight; // pick the server index based on the randomIndex int n 0; for (Double d : currentWeights) { if (d randomWeight) { serverIndex n; break; } else { n; } }server allList.get(serverIndex);}4 com.netflix.loadbalancer.RetryRule 功能对选定的负载均衡策略机上重试机制。 主要代码在一个配置时间段内当选择server不成功则一直尝试使用subRule的方式选择一个可用的server answer subRule.choose(key); if (((answer null) || (!answer.isAlive()))(System.currentTimeMillis() deadline)) { InterruptTasktask new InterruptTask(deadline - System.currentTimeMillis()); while (!Thread.interrupted()) { answer subRule.choose(key); if (((answer null) || (!answer.isAlive()))(System.currentTimeMillis() deadline)) { /* pause and retry hoping it’s transient */ Thread.yield(); } else { break; } } task.cancel();5 com.netflix.loadbalancer.RoundRobinRule 功能roundRobin方式轮询选择server 主要代码轮询index选择index对应位置的server ListServer allServers lb.getAllServers(); int upCount reachableServers.size(); int serverCount allServers.size(); int nextServerIndex incrementAndGetModulo(serverCount); server allServers.get(nextServerIndex);6 com.netflix.loadbalancer.RandomRule 功能随机选择一个server 主要代码在index上随机选择index对应位置的server ListServer upList lb.getReachableServers(); ListServer allList lb.getAllServers(); int serverCount allList.size(); int index rand.nextInt(serverCount); server upList.get(index);7 com.netflix.loadbalancer.ZoneAvoidanceRule 功能复合判断server所在区域的性能和server的可用性选择server 主要代码使用ZoneAvoidancePredicate和AvailabilityPredicate来判断是否选择某个server前一个以一个区域为单位考察可用性对于不可用的区域整个丢弃从剩下区域中选可用的server。判断出最差的区域排除掉最差区域。在剩下的区域中将按照服务器实例数的概率抽样法选择从而判断判定一个zone的运行性能是否可用剔除不可用的zone的所有serverAvailabilityPredicate用于过滤掉连接数过多的Server。 public com.netflix.loadbalancer.PredicateBasedRule.Serverchoose(Object key) { ILoadBalancerlb getLoadBalancer(); OptionalServer server getPredicate().chooseRoundRobinAfterFiltering(lb.getAllServers(), key); if (server.isPresent()) { return server.get(); } }参照现有的若干中rule的实现风格根据我们自己需要也可以开发出自定义的负载均衡策略。完。     参考资料 http://www.tuicool.com/articles/7zIbIb3  转载于:https://www.cnblogs.com/junneyang/p/6379486.html
http://www.yutouwan.com/news/243818/

相关文章:

  • 织梦57网站的友情链接怎么做印象笔记同步wordpress
  • 网站开发一次性费用网站建设与数据库管理
  • artisteer 做的网站青岛设计优化公司
  • 上海网站建设yuue广告设计公司宁波
  • 网盘可以做网站空间吗Wordpress写文章贴代码
  • 基本的网站开发技术深圳工业产品设计公司
  • 用php建网站工业产品设计流程
  • 如何在自己电脑上建网站为什么wordpress模板
  • 学做室内效果图的网站吉林省建设信息网工程招投标
  • 珠海中企网站建设公司wordpress 网站 图标
  • 怎么判断网站建设年龄站酷网电脑版
  • 宁乡电商网站建设报价python在线编程软件
  • wordpress有哪些网站图片墙网站代码
  • 网站开发流程可规划为哪三个阶段出口网站制作
  • 网站优缺点分析网页制作收入
  • 广东网站推广公司一个域名多个网站
  • 农业信息中心网站建设公众号微信商城
  • 网页设计介绍北京网站网站建设6135678
  • 重庆网站维护制作wordpress只允许vip可以推广
  • 绵阳网站建设报价网站空间ip是一个域名
  • 净化科技网站建设毕业设计网站开发的中期报告
  • 小型公司网站建设知乎网站开发语言有几种
  • 济南做网站得多少钱美食网站建设毕业设计
  • 免费成品网站江苏常州武进区建设局网站
  • 天津网站开发建设咸宁网站建设解决方案
  • 做汽车行业必须注册际零件网站网站遭攻击
  • 高端网站开发建设新民正规网站建设价格咨询
  • 福田附近公司做网站建设多少钱电商门户网站
  • 网站制作培训多少钱app开发制作全过程
  • 网站空间服务吴江城乡建设局网站