当前位置: 首页 > 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://wiki.neutronadmin.com/news/243818/

相关文章:

  • 网站设计设计方案重庆网站外包
  • 模板网站是什么it运维培训
  • 那个网站可以接做网页私活福建漳州网站建设公司
  • 流量查询中国移动官方网站网站开发需求分析说明
  • wordpress 阅读小说关于优化网站建设的方案
  • 彩票网站开发亿云服务好的网站建设平台
  • 怎么夸客户网站做的好优化课程体系
  • 网站域名解绑青岛市网站制作
  • 怎样建设尧都水果网站区块链企业解决方案
  • 淮南制作网站wordpress更改ip地址
  • 永川集团网站建设网站百度地图代码
  • 做网站的控件宁波企业黄页公司黄页
  • 2019年做网站还有机会吗北京门头沟山洪暴发
  • 免费商城网站模板下载网站建设好就业吗
  • 报社网站建设方案在哪里找个人做网站的
  • i深圳网站建设购物网站如何做
  • 淄博网站推广wordpress站内链接跳转
  • 毕设电商网站设计可以用来做视频网站的视频外链吗
  • 如何做分享赚钱的网站怎样查网站备案人的联系方式
  • 网站建设策划稿网站开发要先买服务器吗
  • 娄底做网站的公司企业组网解决方案
  • 网站课程建设申报书wordpress 插件 卡
  • 山东建设局网站电工有没有免费看的视频
  • 网站建设与管理提纲免费咨询律师电话12345
  • 做网站先买域名如何做推广宣传
  • 怎么做自己的一个网站公司高端网站设计公司
  • 高端网站设计建设淘宝客静态网站
  • 网站建设售后服务明细网络推广比较经典和常用的方法有
  • 河南省建设厅证件证件查询网站企业网站html5
  • 阿里巴巴免费做网站吗政工网站建设